Function at 0x470381
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
and dword [ebp - 0x14], 0
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
mov di, word [esi]
mov dword [ebp - 0x28], ecx
mov byte [ebp - 1], 0
mov byte [ebp - 2], 0
mov dword [ebp - 8], 0xffff0000
mov eax, edi
call fcn.0040f8eb
xor ebx, ebx
inc ebx
test al, al
je 0x4703c2
and dword [ebp - 8], 0
mov dword [ebp - 0x14], ebx
jmp 0x4704e3
push 4
push esi
push str._UNI
call fcn.0043fa6d
add esp, 0xc
test al, al
je 0x4703e2
mov dword [ebp - 8], 0x4b0
jmp 0x4704e3
push 8
push esi
push str._UNICODE
call fcn.0043fa6d
add esp, 0xc
test al, al
jne 0x4703d6
push 5
push esi
push str._UNIB
call fcn.0043fa6d
add esp, 0xc
test al, al
je 0x470416
mov dword [ebp - 8], 0x4b1
jmp 0x4704e3
push 9
push esi
push str._UNICODEB
call fcn.0043fa6d
add esp, 0xc
test al, al
jne 0x47040a
push 5
push esi
push str._ANSI
call fcn.0043fa6d
add esp, 0xc
test al, al
je 0x470447
and dword [ebp - 8], 0
jmp 0x4704e3
push 4
push esi
push str._GBK
call fcn.0043fa6d
add esp, 0xc
test al, al
je 0x470464
mov dword [ebp - 8], 0x3a8
jmp 0x4704e3
push 5
push esi
push str._BIG5
call fcn.0043fa6d
add esp, 0xc
test al, al
je 0x470481
mov dword [ebp - 8], 0x3b6
jmp 0x4704e3
push 5
push esi
push str._UTF8
call fcn.0043fa6d
add esp, 0xc
test al, al
je 0x47049e
mov dword [ebp - 8], 0xfde9
jmp 0x4704e3
push 5
push esi
push str._UTF7
call fcn.0043fa6d
add esp, 0xc
test al, al
je 0x4704bb
mov dword [ebp - 8], 0xfde8
jmp 0x4704e3
cmp di, 0x2d
jne 0x4704e3
xor eax, eax
add esi, 2
mov ax, word [esi]
push eax
call fcn.004ab8fe
add esp, 4
test al, al
je 0x4704e3
push esi
mov dword [ebp + 8], esi
call fcn.00445a72
pop ecx
mov dword [ebp - 8], eax
lea eax, [ebp + 8]
push eax
call fcn.00405b6e
push 4
lea eax, [ebp + 8]
push eax
push str.fix
call fcn.00446de5
add esp, 0x10
neg al
sbb al, al
push 0x4c0a1c
lea ecx, [ebp - 0x44]
and eax, 2
mov byte [ebp - 0xc], al
call fcn.0044e66d
push 0x4cb65c
lea ecx, [ebp - 0x24]
call fcn.0044e66d
mov ecx, dword [ebp - 0x28]
xor edi, edi
push edi
push 0x2c
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 8]
push eax
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x4c], edi
call fcn.00439738
mov esi, dword [ebp - 0x44]
push esi
push 0x4cb658
mov dword [ebp + 8], eax
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x470568
mov byte [ebp - 1], 9
mov dword [ebp - 0x4c], ebx
push esi
push 0x4cb654
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x4705ef
mov dword [ebp - 0x4c], ebx
or byte [ebp - 1], 1
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x1c], edi
call fcn.00444e32
mov ecx, dword [ebp - 0x28]
push ebx
push edi
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 8]
call fcn.0045522d
mov eax, dword [ebp - 0x60]
mov dword [ebp + 8], eax
cmp word [eax], 0x2c
jne 0x47068f
lea ecx, [ebp - 0x20]
call fcn.00444e32
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00447c46
mov esi, dword [ebp - 0x20]
push esi
push 0x4cb650
mov dword [ebp - 0x10], esi
call fcn.0043fb03
add esp, 0x14
test al, al
je 0x470627
mov byte [ebp - 2], 2
mov dword [ebp - 0x1c], 0x4cb64c
jmp 0x470687
cmp word [esi], di
je 0x47057c
push esi
push 0x4c1fc4
call fcn.0043fb03
test al, al
pop ecx
pop ecx
jne 0x47057c
push esi
push 0x4c1a00
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x470580
mov byte [ebp - 1], 2
jmp 0x470580
push esi
push 0x4cb648
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x47063e
mov byte [ebp - 2], 3
jmp 0x470687
push esi
push 0x4c5318
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x47065c
mov byte [ebp - 2], 1
mov dword [ebp - 0x1c], 0x4cb644
jmp 0x470687
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00451a75
mov eax, dword [ebp - 0x10]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x470687
add dword [ebp - 0x10], 2
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00451a75
pop ecx
pop ecx
lea ecx, [ebp - 0x20]
call fcn.0043e679
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x4706ae
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00447c46
add esp, 0xc
mov ecx, dword [ebp - 0x28]
push 0
lea eax, [ebp - 0x24]
push eax
call fcn.00402ecb
push 8
lea ecx, [ebp - 0x18]
call fcn.00444cdb
mov edi, dword [ebp - 0x18]
and word [edi], 0
cmp dword [ebp - 8], 0
mov dword [ebp - 0x5c], edi
mov esi, ebx
jl 0x4710fd
lea ecx, [ebp - 0x58]
call fcn.00444cbe
mov eax, dword [ebp - 0x44]
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], ecx
cmp word [eax], 0x75
mov ebx, 0xff
jne 0x470891
cmp word [eax + 2], 0x64
jne 0x470891
cmp word [eax + 4], 0x3a
jne 0x470891
mov ecx, dword [ebp + 8]
and word [ecx], 0
push 0x22
add eax, 6
pop esi
cmp word [eax], si
mov dword [ebp - 0xc], eax
mov byte [ebp - 1], 5
jne 0x470732
inc eax
inc eax
mov dword [ebp - 0xc], eax
mov edi, eax
push 0x3a
lea eax, [ebp - 0xc]
call fcn.00405b85
mov eax, dword [ebp - 0xc]
cmp eax, edi
pop ecx
je 0x470751
cmp word [eax - 2], si
jne 0x470751
and word [eax - 2], 0
cmp word [eax], 0x3a
jne 0x47075d
and word [eax], 0
inc eax
inc eax
cmp word [eax], si
mov ecx, eax
jne 0x470778
lea ecx, [eax + 2]
inc eax
inc eax
cmp word [eax], si
jne 0x470772
and word [eax], 0
cmp word [eax], 0
jne 0x470767
push 0
push 0
push 0x10000
push ecx
lea eax, [ebp - 0x58]
push eax
push edi
call fcn.0043c1ea
mov esi, dword [ebp - 0x54]
add esp, 0x18
test esi, esi
jle 0x4707a3
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x58]
add eax, ecx
mov dword [ebp + 8], eax
jmp 0x4707a6
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
xor ecx, ecx
cmp edx, ebx
mov dword [ebp - 0x34], ecx
jne 0x4707c7
movsx edi, byte [eax + 1]
cmp edi, 0xfe
jne 0x4707c7
mov dword [ebp - 8], 0x4b0
jmp 0x4707de
cmp edx, 0xfe
jne 0x4707e2
movsx edi, byte [eax + 1]
cmp edi, ebx
jne 0x4707e2
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x47080b
cmp edx, 0xef
jne 0x470810
movsx edx, byte [eax + 1]
cmp edx, 0xbb
jne 0x470810
movsx edx, byte [eax + 2]
cmp edx, 0xbf
jne 0x470810
mov dword [ebp - 8], 0xfde9
push 3
and dword [ebp - 0x34], 0
pop ecx
sub esi, ecx
cmp dword [ebp - 8], 0x4b1
lea edi, [ecx + eax]
jne 0x47083b
and esi, 0xfffffffe
add esi, edi
cmp edi, esi
mov ecx, edi
ja 0x47088b
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 0x470829
jmp 0x470888
cmp dword [ebp - 8], 0x4b0
je 0x47088b
cmp dword [ebp - 0x14], 0
je 0x470856
push esi
push edi
call fcn.00454d3c
pop ecx
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x58]
and dword [ebp - 0x58], 0
mov dword [ebp - 0x5c], eax
lea eax, [esi + esi + 0x20]
push eax
lea ecx, [ebp - 0x58]
call fcn.00444d00
push dword [ebp - 8]
lea ecx, [ebp - 0x58]
push esi
push edi
call fcn.00444eed
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x5c]
mov dword [ebp + 8], eax
call fcn.0043e679
mov eax, dword [ebp + 8]
or dword [ebp - 0x14], 4
jmp 0x4708d0
mov eax, dword [ebp - 0x24]
cmp word [eax], cx
jne 0x4708a8
lea ecx, [ebp - 0x58]
call fcn.0043e679
xor esi, esi
jmp 0x47110b
cmp byte [ebp - 1], 1
mov eax, dword [ebp + 8]
jne 0x4708c1
cmp word [eax], 0x2c
je 0x4708c1
mov esi, 0x80070057
jmp 0x4710f5
inc eax
inc eax
test byte [ebp - 1], 1
mov dword [ebp + 8], eax
je 0x470c17
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
xor edx, edx
or ecx, edx
mov dword [ebp - 0xc], ebx
je 0x4709d1
lea eax, [ebp + 8]
push eax
call fcn.0043e611
mov esi, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.00405b4a
mov eax, dword [ebp + 8]
cmp word [eax], bx
pop ecx
pop ecx
je 0x470907
mov word [eax], bx
mov eax, dword [ebp + 8]
cmp word [esi], bx
je 0x4709d1
mov ecx, dword [ebp - 0x28]
push ebx
push 0xffffffffffffffff
push ebx
push esi
call fcn.00410d4d
cmp eax, ebx
je 0x4709ce
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 4]
xor ecx, ecx
test byte [ebp - 1], 8
je 0x47099e
mov al, byte [esi]
cmp al, 0xff
jne 0x470946
cmp byte [esi + 1], 0xfe
jne 0x470946
mov eax, 0x4b0
jmp 0x470955
cmp al, 0xfe
jne 0x470959
cmp byte [esi + 1], 0xff
jne 0x470959
mov eax, 0x4b1
push 2
jmp 0x470970
cmp al, 0xef
jne 0x470976
cmp byte [esi + 1], 0xbb
jne 0x470976
cmp byte [esi + 2], 0xbf
jne 0x470976
mov eax, 0xfde9
push 3
pop ecx
mov dword [ebp - 0x14], ebx
jmp 0x470979
mov eax, dword [ebp - 8]
sub edi, ecx
add esi, ecx
cmp eax, 0x4b1
je 0x4709a1
cmp eax, 0x4b0
je 0x4709a1
cmp dword [ebp - 0x14], ebx
je 0x470999
push edi
push esi
call fcn.00454d3c
pop ecx
pop ecx
mov dword [ebp - 0x14], ebx
jmp 0x4709a1
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x14], ebx
jg 0x4709ba
cmp eax, 0x4b0
je 0x4709ba
push eax
push edi
push esi
lea ecx, [ebp - 0xc]
call fcn.00444eed
jmp 0x4709c6
shr edi, 1
push edi
push esi
lea ecx, [ebp - 0xc]
call fcn.00444f56
mov eax, dword [ebp - 0xc]
mov dword [ebp + 8], eax
jmp 0x4709d1
mov eax, dword [ebp + 8]
cmp byte [ebp - 2], 3
mov ebx, eax
jne 0x4709df
push eax
jmp 0x470b2f
cmp byte [ebp - 2], 0
je 0x470a77
cmp byte [ebp - 2], 1
mov edi, 0x4c459c
je 0x4709f9
mov edi, 0x4c41e4
lea ecx, [ebp - 0x10]
call fcn.00444e32
mov eax, dword [ebp + 8]
mov esi, eax
xor ebx, ebx
jmp 0x470a50
cmp cx, 0xd
jne 0x470a20
cmp word [eax + 2], 0xa
jne 0x470a26
mov word [eax], bx
add dword [ebp + 8], 2
jmp 0x470a29
cmp cx, 0xa
jne 0x470a4b
mov word [eax], bx
cmp byte [ebp - 2], 0
jne 0x470a38
push edi
lea ecx, [ebp - 0x10]
call fcn.00444e9e
push esi
lea ecx, [ebp - 0x10]
mov byte [ebp - 2], 0
call fcn.00444e9e
mov eax, dword [ebp + 8]
lea esi, [eax + 2]
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
cmp cx, bx
jne 0x470a0a
cmp word [esi], bx
je 0x470ad9
cmp byte [ebp - 2], 0
jne 0x470a6c
push edi
lea ecx, [ebp - 0x10]
call fcn.00444e9e
push esi
lea ecx, [ebp - 0x10]
call fcn.00444e9e
jmp 0x470ad9
mov edx, dword [ebp - 0x2c]
test edx, edx
jg 0x470aef
jl 0x470a86
cmp dword [ebp - 0x30], 0
jae 0x470aef
mov cx, word [eax]
xor esi, esi
xor edi, edi
test cx, cx
je 0x470abc
cmp cx, 0xa
jne 0x470a9e
add esi, 1
adc edi, 0
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
test cx, cx
jne 0x470a92
cmp eax, ebx
jbe 0x470abc
cmp word [eax - 2], 0xa
je 0x470abc
add esi, 1
adc edi, 0
push 0x20
lea ecx, [ebp - 0x10]
call fcn.00444e50
push edi
push esi
push 0x4c12a0
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push dword [ebp - 0x10]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.0044451e
lea ecx, [ebp - 0x10]
jmp 0x470c05
mov esi, dword [ebp - 0x30]
mov ecx, esi
or ecx, edx
jne 0x470b60
mov dx, word [eax]
test dx, dx
push 0xa
mov ecx, eax
mov esi, eax
pop edi
je 0x470b4e
cmp dx, di
jne 0x470b10
mov esi, ecx
mov ecx, eax
inc eax
inc eax
mov dword [ebp + 8], eax
mov dx, word [eax]
test dx, dx
jne 0x470b07
cmp eax, ebx
jbe 0x470b3f
cmp word [eax - 2], di
je 0x470b3f
cmp word [ecx], di
jne 0x470b2e
inc ecx
inc ecx
push ecx
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
call fcn.0044451e
jmp 0x470c0a
cmp ecx, ebx
jbe 0x470b4e
lea eax, [ecx - 2]
cmp word [eax], 0xd
jne 0x470b4e
mov ecx, eax
cmp word [esi], di
jne 0x470b55
inc esi
inc esi
sub ecx, esi
sar ecx, 1
push ecx
push esi
jmp 0x470bec
test edx, edx
jl 0x470b8a
jle 0x470b85
mov cx, word [eax]
test cx, cx
je 0x470b8a
cmp cx, 0xa
jne 0x470b7a
add esi, 0xffffffff
adc edx, 0xffffffff
inc eax
inc eax
test edx, edx
mov dword [ebp + 8], eax
jg 0x470b66
jl 0x470b8a
cmp esi, 1
ja 0x470b66
mov esi, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
mov ebx, eax
jmp 0x470bdb
mov ecx, esi
or ecx, edi
je 0x470bac
add dword [ebp - 0x40], 0xffffffff
adc dword [ebp - 0x3c], 0xffffffff
js 0x470be6
jg 0x470bac
cmp dword [ebp - 0x40], 0
jb 0x470be6
lea eax, [ebp + 8]
call fcn.00444a40
mov eax, esi
or eax, edi
je 0x470bc2
mov eax, dword [ebp - 0x40]
or eax, dword [ebp - 0x3c]
je 0x470be3
mov eax, dword [ebp + 8]
cmp word [eax], 0xd
jne 0x470bd0
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0xa
jne 0x470bdb
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0
jne 0x470b94
jmp 0x470be6
mov eax, dword [ebp + 8]
sub eax, ebx
sar eax, 1
push eax
push ebx
lea ecx, [ebp - 0x1c]
call fcn.0044e68a
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.0044451e
lea ecx, [ebp - 0x1c]
call fcn.0043e679
lea ecx, [ebp - 0xc]
call fcn.0043e679
jmp 0x470899
push 8
lea ecx, [ebp - 0x10]
call fcn.00444cdb
and word [edi], 0
and dword [ebp - 0x48], 0
xor eax, eax
cmp byte [ebp - 1], 2
lea edi, [ebp - 0x70]
stosd dword es:[edi], eax
mov eax, dword [0x4da350]
mov dword [ebp - 0x74], eax
jne 0x470c48
lea eax, [ebp - 0x74]
mov dword [ebp - 0x20], eax
jmp 0x470d95
push dword [ebp - 0x44]
lea eax, [ebp - 0x48]
mov dword [ebp - 0x20], eax
xor ebx, ebx
xor esi, esi
call fcn.00404e8f
test eax, eax
pop ecx
je 0x470c76
push 7
push 0x80000000
push dword [ebp - 0x44]
call fcn.0041447c
add esp, 0xc
mov dword [ebp - 0x48], eax
jmp 0x470c91
push ebx
push 0x2000000
push 3
push ebx
push 7
push 0x80000000
push dword [ebp - 0x44]
lea ecx, [ebp - 0x48]
call fcn.00405bea
cmp dword [ebp - 0x48], ebx
je 0x470d33
xor eax, eax
push eax
mov byte [ebp - 0x38], 0
mov byte [ebp - 0x37], 0
mov byte [ebp - 0x36], 0
lea edi, [ebp - 0x35]
stosw word es:[edi], ax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x6c]
push eax
push 3
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
cmp byte [ebp - 0x38], 0xff
jne 0x470cdc
cmp byte [ebp - 0x37], 0xfe
jne 0x470d14
mov dword [ebp - 8], 0x4b0
jmp 0x470cef
cmp byte [ebp - 0x38], 0xfe
jne 0x470cf3
cmp byte [ebp - 0x37], 0xff
jne 0x470d14
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x470d0e
cmp byte [ebp - 0x38], 0xef
jne 0x470d14
cmp byte [ebp - 0x37], 0xbb
jne 0x470d14
cmp byte [ebp - 0x36], 0xbf
jne 0x470d14
mov dword [ebp - 8], 0xfde9
push 3
xor ebx, ebx
pop esi
mov dword [ebp - 0x14], ebx
mov edi, dword [ebp - 0x48]
push 0
push ebx
push esi
push edi
call fcn.0043f9d0
mov ebx, edx
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x7c], eax
jg 0x470d40
jl 0x470d33
test eax, eax
jae 0x470d40
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x4710e5
cmp dword [ebp - 0x14], 0
je 0x470d95
push edi
call fcn.0049b450
test edx, edx
pop ecx
mov esi, eax
jg 0x470d95
jl 0x470d5d
cmp esi, 0x1000000
ja 0x470d95
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x58]
call fcn.00444d00
push 0
lea eax, [ebp - 0x6c]
push eax
push esi
push dword [ebp - 0x58]
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push 0
push ebx
push dword [ebp - 0x7c]
push edi
call fcn.0043f9d0
push esi
push dword [ebp - 0x58]
call fcn.00454d3c
add esp, 0x18
mov dword [ebp - 8], eax
xor esi, esi
push esi
mov dword [ebp - 0x38], 0x186a0
mov dword [ebp - 0x34], esi
call dword [sym.imp.KERNEL32.DLL_SetLastError]
cmp byte [ebp - 2], 3
jne 0x470e6e
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x5c], eax
mov edi, 0x40000
lea eax, [esi + 0x40001]
push eax
lea ecx, [ebp - 0xc]
call fcn.00444d00
mov ebx, dword [ebp - 0xc]
xor eax, eax
push eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x30]
push eax
push edi
lea eax, [esi + ebx]
push eax
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
cmp dword [ebp - 0x2c], 0
jl 0x470e03
jg 0x470dfc
cmp dword [ebp - 0x30], edi
jbe 0x470e03
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], edi
mov ecx, dword [ebp - 0x30]
or ecx, dword [ebp - 0x2c]
jne 0x470e32
test eax, eax
jne 0x470e3b
cmp byte [ebp - 1], 2
jne 0x470e20
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x470e3b
add dword [ebp - 0x38], 0xffffffff
adc dword [ebp - 0x34], 0xffffffff
js 0x470e3b
jg 0x470e32
cmp dword [ebp - 0x38], 0
jb 0x470e3b
add esi, dword [ebp - 0x30]
mov byte [esi + ebx], 0
jmp 0x470dc2
mov eax, dword [ebp - 8]
lea esi, [ebp - 0xc]
call fcn.0044c2c7
mov ecx, dword [ebp - 0x28]
push eax
push dword [ebp - 0x24]
call fcn.0044451e
mov ecx, esi
call fcn.0043e679
lea ecx, [ebp - 0x48]
call fcn.00402cb0
lea ecx, [ebp - 0x10]
call fcn.0043e679
jmp 0x470899
cmp byte [ebp - 2], 0
je 0x470f0b
mov eax, dword [ebp - 0x1c]
cmp eax, esi
jne 0x470e84
mov eax, 0x4c1872
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x1c]
call fcn.0044e6a3
xor ebx, ebx
mov bl, byte [ebp - 0xc]
or ebx, 1
lea ecx, [ebp - 0xc]
call fcn.00444e32
cmp byte [ebp - 2], 0
jne 0x470eb0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
call fcn.00444e9e
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x20]
mov byte [ebp - 2], 0
call fcn.0044c000
add esp, 0x10
cmp byte [ebp - 1], 2
mov edi, eax
jne 0x470eda
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x470efb
mov eax, dword [ebp - 8]
lea esi, [ebp - 0xc]
call fcn.0044c2c7
push eax
lea ecx, [ebp - 0x18]
call fcn.00444e9e
mov ecx, esi
call fcn.0043e679
test edi, edi
je 0x470f03
jmp 0x470e97
lea ecx, [ebp - 0xc]
call fcn.0043e679
lea ecx, [ebp - 0x1c]
jmp 0x4710c9
cmp dword [ebp - 0x2c], esi
jg 0x470f78
jl 0x470f17
cmp dword [ebp - 0x30], esi
jae 0x470f78
xor edi, edi
xor ebx, ebx
push dword [ebp - 0xc]
lea eax, [ebp - 0x18]
push dword [ebp - 8]
push eax
push dword [ebp - 0x20]
call fcn.0044c000
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x470f43
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x470f4f
test esi, esi
je 0x470f4f
add edi, 1
adc ebx, 0
jmp 0x470f1b
push 0x20
lea ecx, [ebp - 0x18]
mov dword [ebp - 8], 0x4b0
call fcn.00444d00
push ebx
push edi
push 0x4c12a0
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x4710d5
mov eax, dword [ebp - 0x30]
xor ebx, ebx
or eax, dword [ebp - 0x2c]
jne 0x470fc7
mov bl, byte [ebp - 0xc]
or ebx, 1
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
push ebx
push dword [ebp - 8]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
call fcn.0044c000
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x470fbe
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x4710d5
test esi, esi
jne 0x470f88
jmp 0x4710d5
inc ebx
cmp esi, dword [ebp - 0x2c]
jg 0x47100d
jge 0x471008
push dword [ebp - 0xc]
lea eax, [ebp - 0x18]
push dword [ebp - 8]
push eax
push dword [ebp - 0x20]
call fcn.0044c000
add esp, 0x10
cmp byte [ebp - 1], 2
mov edi, eax
jne 0x470ff7
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x47100d
test edi, edi
je 0x47100d
add ebx, 1
adc esi, 0
cmp esi, dword [ebp - 0x2c]
jl 0x470fcf
jg 0x47100d
cmp ebx, dword [ebp - 0x30]
jb 0x470fcf
mov edi, dword [ebp - 0x40]
cmp edi, 1
mov eax, dword [ebp - 0x18]
mov byte [eax], 0
jne 0x47103d
cmp dword [ebp - 0x3c], 0
jne 0x47103d
xor eax, eax
mov al, byte [ebp - 0xc]
or eax, edi
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x20]
call fcn.0044c000
jmp 0x470f70
lea ecx, [ebp - 0x14]
call fcn.00444e32
mov ebx, edi
test ebx, ebx
je 0x47105a
add edi, 0xffffffff
adc dword [ebp - 0x3c], 0xffffffff
js 0x4710c6
jg 0x47105a
test edi, edi
jb 0x4710c6
mov eax, dword [ebp - 0x14]
and word [eax], 0
xor eax, eax
mov al, byte [ebp - 0xc]
or eax, 1
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x20]
call fcn.0044c000
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x47108f
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x4710c6
test esi, esi
je 0x4710c6
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x14]
call fcn.0044c2c7
push eax
lea ecx, [ebp - 0x18]
call fcn.00444e9e
test ebx, ebx
je 0x4710b7
cmp dword [ebp - 0x3c], 0
jl 0x4710c6
jg 0x4710b7
test edi, edi
jbe 0x4710c6
push 0x4c41e4
lea ecx, [ebp - 0x18]
call fcn.00444e9e
jmp 0x471047
lea ecx, [ebp - 0x14]
mov dword [ebp - 8], 0x4b0
call fcn.0043e679
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x18]
call fcn.0044c2c7
mov dword [ebp - 0x5c], eax
xor esi, esi
lea ecx, [ebp - 0x48]
call fcn.00402cb0
lea ecx, [ebp - 0x10]
call fcn.0043e679
lea ecx, [ebp - 0x58]
call fcn.0043e679
push dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.0044451e
lea ecx, [ebp - 0x18]
call fcn.0043e679
lea ecx, [ebp - 0x60]
call fcn.0043e679
lea ecx, [ebp - 0x64]
call fcn.00402cb0
lea ecx, [ebp - 0x24]
call fcn.0043e679
lea ecx, [ebp - 0x44]
call fcn.0043e679
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8