Function at 0x47260f
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
mov di, word [esi]
xor ebx, ebx
mov dword [ebp - 0x34], ecx
mov byte [ebp - 1], bl
mov byte [ebp - 2], bl
mov dword [ebp - 8], 0xffff0000
mov dword [ebp - 0x10], ebx
mov eax, edi
call fcn.004b1b03
test al, al
je 0x472652
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], 1
jmp 0x472772
push 4
push esi
push str._UNI
call fcn.00441220
add esp, 0xc
test al, al
je 0x472672
mov dword [ebp - 8], 0x4b0
jmp 0x472772
push 8
push esi
push str._UNICODE
call fcn.00441220
add esp, 0xc
test al, al
jne 0x472666
push 5
push esi
push str._UNIB
call fcn.00441220
add esp, 0xc
test al, al
je 0x4726a6
mov dword [ebp - 8], 0x4b1
jmp 0x472772
push 9
push esi
push str._UNICODEB
call fcn.00441220
add esp, 0xc
test al, al
jne 0x47269a
push 5
push esi
push str._ANSI
call fcn.00441220
add esp, 0xc
test al, al
je 0x4726d6
mov dword [ebp - 8], ebx
jmp 0x472772
push 4
push esi
push str._GBK
call fcn.00441220
add esp, 0xc
test al, al
je 0x4726f3
mov dword [ebp - 8], 0x3a8
jmp 0x472772
push 5
push esi
push str._BIG5
call fcn.00441220
add esp, 0xc
test al, al
je 0x472710
mov dword [ebp - 8], 0x3b6
jmp 0x472772
push 5
push esi
push str._UTF8
call fcn.00441220
add esp, 0xc
test al, al
je 0x47272d
mov dword [ebp - 8], 0xfde9
jmp 0x472772
push 5
push esi
push str._UTF7
call fcn.00441220
add esp, 0xc
test al, al
je 0x47274a
mov dword [ebp - 8], 0xfde8
jmp 0x472772
cmp di, 0x2d
jne 0x472772
xor eax, eax
add esi, 2
mov ax, word [esi]
push eax
call fcn.00414d24
add esp, 4
test al, al
je 0x472772
push esi
mov dword [ebp + 8], esi
call fcn.00447254
pop ecx
mov dword [ebp - 8], eax
lea eax, [ebp + 8]
push eax
call fcn.00408f31
pop ecx
mov byte [ebp - 0x2c], 0
jmp 0x4727d7
push 4
lea eax, [ebp + 8]
push eax
push 0x4d1a00
call fcn.004485c7
add esp, 0xc
test al, al
je 0x47279f
or byte [ebp - 0x2c], 2
jmp 0x4727d7
push 3
lea eax, [ebp + 8]
push eax
push 0x4ccb10
call fcn.004485c7
add esp, 0xc
test al, al
je 0x4727bc
or byte [ebp - 0x2c], 4
jmp 0x4727d7
push 5
lea eax, [ebp + 8]
push eax
push 0x4d19f8
call fcn.004485c7
add esp, 0xc
test al, al
je 0x4727e0
or byte [ebp - 0x2c], 0xc
mov eax, dword [ebp + 8]
cmp word [eax], 0x2a
je 0x472782
mov al, byte [ebp - 0x2c]
and al, 0xc
push 0x4c6a64
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x51], al
call fcn.004505eb
push 0x4d19e4
lea ecx, [ebp - 0x30]
call fcn.004505eb
mov ecx, dword [ebp - 0x34]
push ebx
push 0x2c
lea eax, [ebp - 0x40]
push eax
xor edi, edi
lea eax, [ebp + 8]
inc edi
push eax
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x70], ebx
call fcn.0043ae93
mov esi, dword [ebp - 0x40]
push esi
push 0x4d19e0
mov dword [ebp + 8], eax
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x472848
mov byte [ebp - 1], 9
mov dword [ebp - 0x70], edi
push esi
push 0x4d19dc
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x4728cf
mov dword [ebp - 0x70], edi
or byte [ebp - 1], 1
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x20], ebx
call fcn.0044658e
mov ecx, dword [ebp - 0x34]
push edi
push ebx
lea eax, [ebp - 0x74]
push eax
push dword [ebp + 8]
call fcn.00457f62
mov eax, dword [ebp - 0x74]
mov dword [ebp + 8], eax
cmp word [eax], 0x2c
jne 0x472996
lea ecx, [ebp - 0x1c]
call fcn.0044658e
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.004494ac
mov esi, dword [ebp - 0x1c]
push esi
push 0x4d19d8
mov dword [ebp - 0xc], esi
call fcn.004412b6
add esp, 0x14
test al, al
je 0x47290b
mov byte [ebp - 2], 2
mov dword [ebp - 0x20], 0x4d19d4
jmp 0x47298e
cmp word [esi], bx
je 0x47285c
push esi
push 0x4c8014
call fcn.004412b6
test al, al
pop ecx
pop ecx
jne 0x47285c
push esi
push 0x4c7a50
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x472860
or byte [ebp - 0x2c], 0x10
mov byte [ebp - 1], 2
jmp 0x472860
push esi
push 0x4d19d0
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x472922
mov byte [ebp - 2], 3
jmp 0x47298e
push esi
push 0x4d19cc
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x472945
mov byte [ebp - 2], 3
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
jmp 0x47298e
push esi
push 0x4cb448
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x472963
mov byte [ebp - 2], 1
mov dword [ebp - 0x20], 0x4d19c8
jmp 0x47298e
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.00453c1f
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x47298e
add dword [ebp - 0xc], 2
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.00453c1f
pop ecx
pop ecx
lea ecx, [ebp - 0x1c]
call fcn.0043fe25
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x4729b5
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 8]
push eax
call fcn.004494ac
add esp, 0xc
mov ecx, dword [ebp - 0x34]
push ebx
lea eax, [ebp - 0x30]
push eax
call fcn.00402f5e
push 8
lea ecx, [ebp - 0x24]
call fcn.00446437
cmp dword [ebp - 8], ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
mov word [eax], bx
mov dword [ebp - 0x18], edi
jl 0x473599
lea ecx, [ebp - 0x68]
call fcn.0044641a
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
cmp word [eax], 0x75
jne 0x472b87
cmp word [eax + 2], 0x64
jne 0x472b87
cmp word [eax + 4], 0x3a
jne 0x472b87
mov ecx, dword [ebp + 8]
push 0x22
add eax, 6
pop esi
mov word [ecx], bx
cmp word [eax], si
mov dword [ebp - 0xc], eax
mov byte [ebp - 1], 5
jne 0x472a2f
inc eax
inc eax
mov dword [ebp - 0xc], eax
mov edi, eax
push 0x3a
lea eax, [ebp - 0xc]
call fcn.00414c4e
mov eax, dword [ebp - 0xc]
cmp eax, edi
pop ecx
je 0x472a4d
cmp word [eax - 2], si
jne 0x472a4d
mov word [eax - 2], bx
cmp word [eax], 0x3a
jne 0x472a58
mov word [eax], bx
inc eax
inc eax
cmp word [eax], si
mov ecx, eax
jne 0x472a71
lea ecx, [eax + 2]
inc eax
inc eax
cmp word [eax], si
jne 0x472a6c
mov word [eax], bx
cmp word [eax], bx
jne 0x472a62
push ebx
push ebx
push 0x10000
push ecx
lea eax, [ebp - 0x68]
push eax
push edi
call fcn.0043da08
mov esi, dword [ebp - 0x64]
add esp, 0x18
cmp esi, ebx
jle 0x472a9a
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x68]
add eax, ecx
mov dword [ebp + 8], eax
jmp 0x472a9d
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
mov edi, 0xff
xor ecx, ecx
cmp edx, edi
mov dword [ebp - 0x58], ebx
jne 0x472ac1
movsx ebx, byte [eax + 1]
cmp ebx, 0xfe
jne 0x472ac1
mov ebx, 0x4b0
jmp 0x472ad6
cmp edx, 0xfe
jne 0x472ada
movsx ebx, byte [eax + 1]
cmp ebx, edi
jne 0x472ada
mov ebx, 0x4b1
push 2
jmp 0x472b01
cmp edx, 0xef
jne 0x472b08
movsx edx, byte [eax + 1]
cmp edx, 0xbb
jne 0x472b08
movsx edx, byte [eax + 2]
cmp edx, 0xbf
jne 0x472b08
mov ebx, 0xfde9
push 3
and dword [ebp - 0x58], 0
pop ecx
jmp 0x472b0b
mov ebx, dword [ebp - 8]
sub esi, ecx
cmp ebx, 0x4b1
lea edi, [ecx + eax]
jne 0x472b35
and esi, 0xfffffffe
add esi, edi
cmp edi, esi
mov ecx, edi
ja 0x472b81
mov al, byte [ecx]
mov dl, byte [ecx + 1]
mov byte [ecx], dl
mov byte [ecx + 1], al
inc ecx
inc ecx
cmp ecx, esi
jbe 0x472b23
jmp 0x472b7e
cmp ebx, 0x4b0
je 0x472b81
cmp dword [ebp - 0x10], 0
je 0x472b4e
push esi
push edi
call fcn.00457a70
pop ecx
pop ecx
mov ebx, eax
mov eax, dword [ebp - 0x68]
and dword [ebp - 0x68], 0
mov dword [ebp - 0x44], eax
lea eax, [esi + esi + 0x20]
push eax
lea ecx, [ebp - 0x68]
call fcn.0044645c
push ebx
push esi
push edi
lea ecx, [ebp - 0x68]
call fcn.00446649
mov eax, dword [ebp - 0x68]
lea ecx, [ebp - 0x44]
mov dword [ebp + 8], eax
call fcn.0043fe25
mov eax, dword [ebp + 8]
or dword [ebp - 0x10], 4
jmp 0x472bc0
mov eax, dword [ebp - 0x30]
cmp word [eax], bx
je 0x47323d
cmp byte [ebp - 1], 1
mov eax, dword [ebp + 8]
jne 0x472bae
cmp word [eax], 0x2c
je 0x472bae
mov dword [ebp - 0x18], 0x80070057
jmp 0x473591
inc eax
inc eax
test byte [ebp - 1], 1
mov dword [ebp + 8], eax
je 0x472f0a
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x70]
xor edi, edi
xor edx, edx
or ecx, edx
mov dword [ebp - 0xc], edi
je 0x472cc0
lea eax, [ebp + 8]
push eax
call fcn.0043fe57
mov esi, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.00405c44
mov eax, dword [ebp + 8]
cmp word [eax], di
pop ecx
pop ecx
je 0x472bf7
mov word [eax], di
mov eax, dword [ebp + 8]
cmp word [esi], di
je 0x472cc0
mov ecx, dword [ebp - 0x34]
push edi
push 0xffffffffffffffff
push edi
push esi
call fcn.00411019
cmp eax, edi
je 0x472cbd
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 4]
xor edx, edx
xor ecx, ecx
test byte [ebp - 1], 8
je 0x472c8f
mov al, byte [esi]
cmp al, 0xff
jne 0x472c38
cmp byte [esi + 1], 0xfe
jne 0x472c38
mov ebx, 0x4b0
jmp 0x472c47
cmp al, 0xfe
jne 0x472c4b
cmp byte [esi + 1], 0xff
jne 0x472c4b
mov ebx, 0x4b1
push 2
jmp 0x472c62
cmp al, 0xef
jne 0x472c66
cmp byte [esi + 1], 0xbb
jne 0x472c66
cmp byte [esi + 2], 0xbf
jne 0x472c66
mov ebx, 0xfde9
push 3
pop ecx
mov dword [ebp - 0x10], edx
sub edi, ecx
add esi, ecx
cmp ebx, 0x4b1
je 0x472c8f
cmp ebx, 0x4b0
je 0x472c8f
cmp dword [ebp - 0x10], edx
je 0x472c8c
push edi
push esi
call fcn.00457a70
pop ecx
pop ecx
mov ebx, eax
xor edx, edx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edx
jg 0x472ca9
cmp ebx, 0x4b0
je 0x472ca9
push ebx
push edi
push esi
lea ecx, [ebp - 0xc]
call fcn.00446649
jmp 0x472cb5
shr edi, 1
push edi
push esi
lea ecx, [ebp - 0xc]
call fcn.004466b2
mov eax, dword [ebp - 0xc]
mov dword [ebp + 8], eax
jmp 0x472cc0
mov eax, dword [ebp + 8]
cmp byte [ebp - 2], 3
mov edi, eax
jne 0x472cce
push eax
jmp 0x472e1e
cmp byte [ebp - 2], 0
je 0x472d66
cmp byte [ebp - 2], 1
mov ebx, 0x4ca640
je 0x472ce8
mov ebx, 0x4c7100
lea ecx, [ebp - 0x1c]
call fcn.0044658e
mov eax, dword [ebp + 8]
mov esi, eax
xor edi, edi
jmp 0x472d3f
cmp cx, 0xd
jne 0x472d0f
cmp word [eax + 2], 0xa
jne 0x472d15
mov word [eax], di
add dword [ebp + 8], 2
jmp 0x472d18
cmp cx, 0xa
jne 0x472d3a
mov word [eax], di
cmp byte [ebp - 2], 0
jne 0x472d27
push ebx
lea ecx, [ebp - 0x1c]
call fcn.004465fa
push esi
lea ecx, [ebp - 0x1c]
mov byte [ebp - 2], 0
call fcn.004465fa
mov eax, dword [ebp + 8]
lea esi, [eax + 2]
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
cmp cx, di
jne 0x472cf9
cmp word [esi], di
je 0x472dc8
cmp byte [ebp - 2], 0
jne 0x472d5b
push ebx
lea ecx, [ebp - 0x1c]
call fcn.004465fa
push esi
lea ecx, [ebp - 0x1c]
call fcn.004465fa
jmp 0x472dc8
mov edx, dword [ebp - 0x4c]
test edx, edx
jg 0x472dde
jl 0x472d75
cmp dword [ebp - 0x50], 0
jae 0x472dde
mov cx, word [eax]
xor esi, esi
xor ebx, ebx
test cx, cx
je 0x472dab
cmp cx, 0xa
jne 0x472d8d
add esi, 1
adc ebx, 0
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
test cx, cx
jne 0x472d81
cmp eax, edi
jbe 0x472dab
cmp word [eax - 2], 0xa
je 0x472dab
add esi, 1
adc ebx, 0
push 0x20
lea ecx, [ebp - 0x1c]
call fcn.004465ac
push ebx
push esi
push 0x4c72f0
push dword [ebp - 0x1c]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
call fcn.00445c44
lea ecx, [ebp - 0x1c]
jmp 0x472ef6
mov esi, dword [ebp - 0x50]
mov ecx, esi
or ecx, edx
jne 0x472e4f
mov dx, word [eax]
test dx, dx
push 0xa
mov ecx, eax
mov esi, eax
pop ebx
je 0x472e3d
cmp dx, bx
jne 0x472dff
mov esi, ecx
mov ecx, eax
inc eax
inc eax
mov dword [ebp + 8], eax
mov dx, word [eax]
test dx, dx
jne 0x472df6
cmp eax, edi
jbe 0x472e2e
cmp word [eax - 2], bx
je 0x472e2e
cmp word [ecx], bx
jne 0x472e1d
inc ecx
inc ecx
push ecx
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
call fcn.00445c44
jmp 0x472efb
cmp ecx, edi
jbe 0x472e3d
lea eax, [ecx - 2]
cmp word [eax], 0xd
jne 0x472e3d
mov ecx, eax
cmp word [esi], bx
jne 0x472e44
inc esi
inc esi
sub ecx, esi
sar ecx, 1
push ecx
push esi
jmp 0x472edd
test edx, edx
jl 0x472e79
jle 0x472e74
mov cx, word [eax]
test cx, cx
je 0x472e79
cmp cx, 0xa
jne 0x472e69
add esi, 0xffffffff
adc edx, 0xffffffff
inc eax
inc eax
test edx, edx
mov dword [ebp + 8], eax
jg 0x472e55
jl 0x472e79
cmp esi, 1
ja 0x472e55
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
mov ebx, esi
jmp 0x472ec9
mov ecx, ebx
or ecx, edi
je 0x472e9b
add esi, 0xffffffff
adc dword [ebp - 0x38], 0xffffffff
js 0x472ed4
jg 0x472e9b
test esi, esi
jb 0x472ed4
lea eax, [ebp + 8]
call fcn.00414c6e
mov eax, ebx
or eax, edi
je 0x472eb0
mov eax, esi
or eax, dword [ebp - 0x38]
je 0x472ed1
mov eax, dword [ebp + 8]
cmp word [eax], 0xd
jne 0x472ebe
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0xa
jne 0x472ec9
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0
jne 0x472e86
jmp 0x472ed4
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x20]
sar eax, 1
push eax
push dword [ebp - 0x20]
lea ecx, [ebp - 0x20]
call fcn.00450608
push dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
call fcn.00445c44
lea ecx, [ebp - 0x20]
call fcn.0043fe25
lea ecx, [ebp - 0xc]
call fcn.0043fe25
xor ebx, ebx
jmp 0x47323d
push 8
lea ecx, [ebp - 0x1c]
call fcn.00446437
mov eax, dword [ebp - 0x24]
mov word [eax], bx
xor eax, eax
cmp byte [ebp - 1], 2
lea edi, [ebp - 0x84]
stosd dword es:[edi], eax
mov eax, dword [0x4e1348]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x6c], ebx
lea eax, [ebp - 0x88]
je 0x472f40
lea eax, [ebp - 0x6c]
cmp byte [0x4e2e78], 0
mov dword [ebp - 0x28], eax
je 0x472f63
push 0x556a
push str.DBG__d:_r_n
push 0x4e3110
call fcn.00411365
add esp, 0xc
cmp byte [ebp - 1], 2
mov dword [ebp - 0xc], ebx
je 0x4730db
push dword [ebp - 0x40]
xor esi, esi
xor ebx, ebx
call fcn.00404f34
test eax, eax
pop ecx
je 0x472f98
push 7
push 0x80000000
push dword [ebp - 0x40]
call fcn.004148ac
add esp, 0xc
mov dword [ebp - 0x6c], eax
jmp 0x472fb3
push esi
push 0x2000000
push 3
push esi
push 7
push 0x80000000
push dword [ebp - 0x40]
lea ecx, [ebp - 0x6c]
call fcn.00405c6d
mov eax, dword [ebp - 0x28]
cmp dword [eax], esi
je 0x47305b
xor eax, eax
push eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x18], 0
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x16], 0
lea edi, [ebp - 0x15]
stosw word es:[edi], ax
lea eax, [ebp - 0x5c]
push eax
push 3
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x28]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [ebp - 0x18], 0xff
jne 0x473002
cmp byte [ebp - 0x17], 0xfe
jne 0x47303a
mov dword [ebp - 8], 0x4b0
jmp 0x473015
cmp byte [ebp - 0x18], 0xfe
jne 0x473019
cmp byte [ebp - 0x17], 0xff
jne 0x47303a
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x473034
cmp byte [ebp - 0x18], 0xef
jne 0x47303a
cmp byte [ebp - 0x17], 0xbb
jne 0x47303a
cmp byte [ebp - 0x16], 0xbf
jne 0x47303a
mov dword [ebp - 8], 0xfde9
push 3
xor ebx, ebx
pop esi
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 0x28]
mov edi, dword [eax]
push 0
push ebx
push esi
push edi
call fcn.00441183
mov ebx, edx
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x80], eax
jg 0x473086
jl 0x47305b
test eax, eax
jae 0x473086
lea ecx, [ebp - 0x6c]
call fcn.00402d2b
lea ecx, [ebp - 0x1c]
call fcn.0043fe25
lea ecx, [ebp - 0x68]
call fcn.0043fe25
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x47307e
inc eax
mov dword [ebp - 0x18], eax
jmp 0x473599
cmp dword [ebp - 0x10], 0
je 0x4730db
push edi
call fcn.004a0f57
test edx, edx
pop ecx
mov esi, eax
jg 0x4730db
jl 0x4730a3
cmp esi, 0x1000000
ja 0x4730db
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x68]
call fcn.0044645c
push 0
lea eax, [ebp - 0x5c]
push eax
push esi
push dword [ebp - 0x68]
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
push ebx
push dword [ebp - 0x80]
push edi
call fcn.00441183
push esi
push dword [ebp - 0x68]
call fcn.00457a70
add esp, 0x18
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
xor edi, edi
cmp eax, edi
mov dword [ebp - 0x10], eax
jne 0x4730f5
mov dword [ebp - 0x18], 6
jmp 0x473581
push edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x5c], 0x186a0
mov dword [ebp - 0x58], edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp byte [ebp - 2], 3
jne 0x473274
mov eax, dword [ebp - 0x50]
xor esi, esi
or eax, dword [ebp - 0x4c]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0xc], 1
jne 0x47312e
mov dword [ebp - 0xc], 0x40000
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0xc]
lea eax, [eax + esi + 1]
push eax
lea ecx, [ebp - 0x28]
call fcn.0044645c
mov ebx, dword [ebp - 0x28]
and dword [ebp - 0x48], 0
and dword [ebp - 0x44], 0
push 0
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0xc]
lea edi, [esi + ebx]
push edi
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x20], eax
xor eax, eax
cmp dword [ebp - 0x44], eax
jl 0x473181
jg 0x473176
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0xc]
jbe 0x473181
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x48]
or eax, dword [ebp - 0x44]
jne 0x4731b2
cmp dword [ebp - 0x20], 0
jne 0x4731f8
cmp byte [ebp - 1], 2
jne 0x4731a0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x473205
add dword [ebp - 0x5c], 0xffffffff
adc dword [ebp - 0x58], 0xffffffff
js 0x47320c
jg 0x4731b2
cmp dword [ebp - 0x5c], 0
jb 0x47320c
add esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
or ecx, dword [ebp - 0x4c]
movsx ax, byte [edi]
mov byte [esi + ebx], 0
je 0x473131
cmp dword [ebp - 0x20], 0
je 0x473131
cmp ax, 0xa
jne 0x473131
add dword [ebp - 0x3c], 0xffffffff
adc dword [ebp - 0x38], 0xffffffff
js 0x47320c
jg 0x473131
cmp dword [ebp - 0x3c], 0
jbe 0x47320c
jmp 0x473131
test esi, esi
jne 0x47320c
mov dword [ebp - 0x18], 0x26
jmp 0x47320c
mov dword [ebp - 0x18], 0x6d
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x28]
call fcn.0044dab3
mov ecx, dword [ebp - 0x34]
push eax
push dword [ebp - 0x30]
call fcn.00445c44
mov ecx, esi
call fcn.0043fe25
lea ecx, [ebp - 0x6c]
call fcn.00402d2b
lea ecx, [ebp - 0x1c]
call fcn.0043fe25
mov ebx, dword [ebp - 0x18]
lea ecx, [ebp - 0x68]
call fcn.0043fe25
lea ecx, [ebp - 0x24]
call fcn.0043fe25
lea ecx, [ebp - 0x74]
call fcn.0043fe25
lea ecx, [ebp - 0x78]
call fcn.00402d2b
lea ecx, [ebp - 0x30]
call fcn.0043fe25
lea ecx, [ebp - 0x40]
call fcn.0043fe25
mov eax, ebx
jmp 0x4735d2
cmp byte [ebp - 2], 0
je 0x473331
mov eax, dword [ebp - 0x20]
cmp eax, edi
jne 0x47328a
mov eax, 0x4c78c2
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x44]
call fcn.00450621
mov bl, byte [ebp - 0x2c]
lea ecx, [ebp - 0x10]
and bl, 0xf3
call fcn.0044658e
mov byte [ebp - 0x20], bl
or byte [ebp - 0x20], 1
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x20]
lea eax, [ebp - 0x10]
push dword [ebp - 8]
push eax
push dword [ebp - 0x28]
call fcn.0044d8bc
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x4732dc
cmp byte [ebp - 1], 2
jne 0x4732dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
je 0x47330a
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x10]
call fcn.0044dab3
push eax
lea ecx, [ebp - 0x24]
add edi, ebx
call fcn.004465fa
mov eax, dword [ebp - 0x10]
and word [eax], 0
test ebx, ebx
je 0x47330f
push dword [ebp - 0x44]
lea ecx, [ebp - 0x24]
call fcn.004465fa
jmp 0x4732aa
mov dword [ebp - 0x18], ecx
jmp 0x47331a
test edi, edi
jne 0x47331a
mov dword [ebp - 0x18], 0x26
lea ecx, [ebp - 0x10]
mov dword [ebp - 8], 0x4b0
call fcn.0043fe25
lea ecx, [ebp - 0x44]
jmp 0x47356e
mov esi, dword [ebp - 0x4c]
cmp esi, edi
jg 0x4733b5
jl 0x47333f
cmp dword [ebp - 0x50], edi
jae 0x4733b5
xor esi, esi
xor ebx, ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
push dword [ebp - 8]
push eax
push dword [ebp - 0x28]
call fcn.0044d8bc
add esp, 0x14
cmp eax, edi
je 0x473367
add esi, 1
adc ebx, edi
jmp 0x473343
cmp byte [ebp - 1], 2
jne 0x47337f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
jne 0x47337f
mov dword [ebp - 0x18], ecx
jmp 0x47338c
mov eax, esi
or eax, ebx
jne 0x47338c
mov dword [ebp - 0x18], 0x26
push 0x20
lea ecx, [ebp - 0x24]
mov dword [ebp - 8], 0x4b0
call fcn.0044645c
push ebx
push esi
push 0x4c72f0
push dword [ebp - 0x24]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x473573
mov eax, dword [ebp - 0x50]
xor ebx, ebx
or eax, esi
jne 0x47340e
mov bl, byte [ebp - 0x2c]
or ebx, 1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xc]
push eax
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
call fcn.0044d8bc
add esp, 0x14
test eax, eax
jne 0x4733c4
cmp byte [ebp - 1], 2
jne 0x473573
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
jne 0x473573
mov dword [ebp - 0x18], ecx
jmp 0x473573
xor edi, edi
inc edi
test esi, esi
jl 0x473476
jg 0x47341c
cmp dword [ebp - 0x50], edi
jbe 0x473476
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
push dword [ebp - 8]
push eax
push dword [ebp - 0x28]
call fcn.0044d8bc
add esp, 0x14
test eax, eax
je 0x47344c
add edi, 1
adc ebx, 0
cmp ebx, esi
jg 0x473476
jl 0x47341c
cmp edi, dword [ebp - 0x50]
jae 0x473476
jmp 0x47341c
cmp byte [ebp - 1], 2
jne 0x473464
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
jne 0x473464
mov dword [ebp - 0x18], ecx
jmp 0x473476
test ebx, ebx
jg 0x473476
jl 0x47346f
cmp edi, 1
ja 0x473476
mov dword [ebp - 0x18], 0x26
mov edi, dword [ebp - 0x3c]
cmp edi, 1
mov eax, dword [ebp - 0x24]
mov byte [eax], 0
jne 0x4734b5
cmp dword [ebp - 0x38], 0
jne 0x4734b5
lea eax, [ebp - 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x2c]
or eax, edi
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x28]
call fcn.0044d8bc
add esp, 0x14
test eax, eax
jne 0x473573
jmp 0x4733eb
lea ecx, [ebp - 0x10]
call fcn.0044658e
xor esi, esi
mov ebx, edi
inc esi
test ebx, ebx
je 0x4734dd
add edi, 0xffffffff
adc dword [ebp - 0x38], 0xffffffff
js 0x473564
jg 0x4734dd
test edi, edi
jb 0x473564
mov eax, dword [ebp - 0x10]
and word [eax], 0
lea eax, [ebp - 0xc]
push eax
xor eax, eax
mov al, byte [ebp - 0x2c]
or eax, 1
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call fcn.0044d8bc
add esp, 0x14
test eax, eax
je 0x473541
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x10]
call fcn.0044dab3
push eax
lea ecx, [ebp - 0x24]
xor esi, esi
call fcn.004465fa
test ebx, ebx
je 0x47352c
cmp dword [ebp - 0x38], esi
jl 0x473564
jg 0x47352c
test edi, edi
jbe 0x473564
cmp byte [ebp - 0x51], 0
jne 0x4734c2
push 0x4c7100
lea ecx, [ebp - 0x24]
call fcn.004465fa
jmp 0x4734c2
cmp byte [ebp - 1], 2
jne 0x473559
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x6d
pop ecx
cmp eax, ecx
jne 0x473559
mov dword [ebp - 0x18], ecx
jmp 0x473564
test esi, esi
je 0x473564
mov dword [ebp - 0x18], 0x26
mov dword [ebp - 8], 0x4b0
lea ecx, [ebp - 0x10]
call fcn.0043fe25
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.0044dab3
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x6c]
call fcn.00402d2b
lea ecx, [ebp - 0x1c]
call fcn.0043fe25
lea ecx, [ebp - 0x68]
call fcn.0043fe25
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
call fcn.00445c44
lea ecx, [ebp - 0x24]
call fcn.0043fe25
lea ecx, [ebp - 0x74]
call fcn.0043fe25
lea ecx, [ebp - 0x78]
call fcn.00402d2b
lea ecx, [ebp - 0x30]
call fcn.0043fe25
lea ecx, [ebp - 0x40]
call fcn.0043fe25
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
leave
ret 8