Function at 0x46d8c8
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.0040f4c7
xor ebx, ebx
inc ebx
test al, al
je 0x46d909
and dword [ebp - 8], 0
mov dword [ebp - 0x14], ebx
jmp 0x46da2a
push 4
push esi
push str._UNI
call fcn.0043f0c4
add esp, 0xc
test al, al
je 0x46d929
mov dword [ebp - 8], 0x4b0
jmp 0x46da2a
push 8
push esi
push str._UNICODE
call fcn.0043f0c4
add esp, 0xc
test al, al
jne 0x46d91d
push 5
push esi
push str._UNIB
call fcn.0043f0c4
add esp, 0xc
test al, al
je 0x46d95d
mov dword [ebp - 8], 0x4b1
jmp 0x46da2a
push 9
push esi
push str._UNICODEB
call fcn.0043f0c4
add esp, 0xc
test al, al
jne 0x46d951
push 5
push esi
push str._ANSI
call fcn.0043f0c4
add esp, 0xc
test al, al
je 0x46d98e
and dword [ebp - 8], 0
jmp 0x46da2a
push 4
push esi
push str._GBK
call fcn.0043f0c4
add esp, 0xc
test al, al
je 0x46d9ab
mov dword [ebp - 8], 0x3a8
jmp 0x46da2a
push 5
push esi
push str._BIG5
call fcn.0043f0c4
add esp, 0xc
test al, al
je 0x46d9c8
mov dword [ebp - 8], 0x3b6
jmp 0x46da2a
push 5
push esi
push str._UTF8
call fcn.0043f0c4
add esp, 0xc
test al, al
je 0x46d9e5
mov dword [ebp - 8], 0xfde9
jmp 0x46da2a
push 5
push esi
push str._UTF7
call fcn.0043f0c4
add esp, 0xc
test al, al
je 0x46da02
mov dword [ebp - 8], 0xfde8
jmp 0x46da2a
cmp di, 0x2d
jne 0x46da2a
xor eax, eax
add esi, 2
mov ax, word [esi]
push eax
call fcn.00443c3d
add esp, 4
test al, al
je 0x46da2a
push esi
mov dword [ebp + 8], esi
call fcn.00444d77
pop ecx
mov dword [ebp - 8], eax
lea eax, [ebp + 8]
push eax
call fcn.00408ddd
push 4
lea eax, [ebp + 8]
push eax
push str.fix
call fcn.004460ea
add esp, 0x10
neg al
sbb al, al
push 0x4bca2c
lea ecx, [ebp - 0x44]
and eax, 2
mov byte [ebp - 0xc], al
call fcn.0044cf2d
push 0x4c7328
lea ecx, [ebp - 0x24]
call fcn.0044cf2d
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.00438e0f
mov esi, dword [ebp - 0x44]
push esi
push 0x4c7324
mov dword [ebp + 8], eax
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46daaf
mov byte [ebp - 1], 9
mov dword [ebp - 0x4c], ebx
push esi
push 0x4c7320
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46db36
mov dword [ebp - 0x4c], ebx
or byte [ebp - 1], 1
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x1c], edi
call fcn.004441a1
mov ecx, dword [ebp - 0x28]
push ebx
push edi
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 8]
call fcn.004538d5
mov eax, dword [ebp - 0x60]
mov dword [ebp + 8], eax
cmp word [eax], 0x2c
jne 0x46dbd6
lea ecx, [ebp - 0x20]
call fcn.004441a1
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00446f11
mov esi, dword [ebp - 0x20]
push esi
push 0x4c731c
mov dword [ebp - 0x10], esi
call fcn.0043f15a
add esp, 0x14
test al, al
je 0x46db6e
mov byte [ebp - 2], 2
mov dword [ebp - 0x1c], 0x4c7318
jmp 0x46dbce
cmp word [esi], di
je 0x46dac3
push esi
push 0x4bdf24
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x46dac3
push esi
push 0x4bd960
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46dac7
mov byte [ebp - 1], 2
jmp 0x46dac7
push esi
push 0x4c7314
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46db85
mov byte [ebp - 2], 3
jmp 0x46dbce
push esi
push 0x4c1290
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46dba3
mov byte [ebp - 2], 1
mov dword [ebp - 0x1c], 0x4c7310
jmp 0x46dbce
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0045030b
mov eax, dword [ebp - 0x10]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x46dbce
add dword [ebp - 0x10], 2
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0045030b
pop ecx
pop ecx
lea ecx, [ebp - 0x20]
call fcn.0043dd41
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x46dbf5
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00446f11
add esp, 0xc
mov ecx, dword [ebp - 0x28]
push 0
lea eax, [ebp - 0x24]
push eax
call fcn.00402ed1
push 8
lea ecx, [ebp - 0x18]
call fcn.0044404a
mov edi, dword [ebp - 0x18]
and word [edi], 0
cmp dword [ebp - 8], 0
mov dword [ebp - 0x5c], edi
mov esi, ebx
jl 0x46e670
lea ecx, [ebp - 0x58]
call fcn.0044402d
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 0x46ddd8
cmp word [eax + 2], 0x64
jne 0x46ddd8
cmp word [eax + 4], 0x3a
jne 0x46ddd8
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 0x46dc79
inc eax
inc eax
mov dword [ebp - 0xc], eax
mov edi, eax
push 0x3a
lea eax, [ebp - 0xc]
call fcn.00405636
mov eax, dword [ebp - 0xc]
cmp eax, edi
pop ecx
je 0x46dc98
cmp word [eax - 2], si
jne 0x46dc98
and word [eax - 2], 0
cmp word [eax], 0x3a
jne 0x46dca4
and word [eax], 0
inc eax
inc eax
cmp word [eax], si
mov ecx, eax
jne 0x46dcbf
lea ecx, [eax + 2]
inc eax
inc eax
cmp word [eax], si
jne 0x46dcb9
and word [eax], 0
cmp word [eax], 0
jne 0x46dcae
push 0
push 0
push 0x10000
push ecx
lea eax, [ebp - 0x58]
push eax
push edi
call fcn.0043b8c1
mov esi, dword [ebp - 0x54]
add esp, 0x18
test esi, esi
jle 0x46dcea
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x58]
add eax, ecx
mov dword [ebp + 8], eax
jmp 0x46dced
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
xor ecx, ecx
cmp edx, ebx
mov dword [ebp - 0x34], ecx
jne 0x46dd0e
movsx edi, byte [eax + 1]
cmp edi, 0xfe
jne 0x46dd0e
mov dword [ebp - 8], 0x4b0
jmp 0x46dd25
cmp edx, 0xfe
jne 0x46dd29
movsx edi, byte [eax + 1]
cmp edi, ebx
jne 0x46dd29
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x46dd52
cmp edx, 0xef
jne 0x46dd57
movsx edx, byte [eax + 1]
cmp edx, 0xbb
jne 0x46dd57
movsx edx, byte [eax + 2]
cmp edx, 0xbf
jne 0x46dd57
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 0x46dd82
and esi, 0xfffffffe
add esi, edi
cmp edi, esi
mov ecx, edi
ja 0x46ddd2
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 0x46dd70
jmp 0x46ddcf
cmp dword [ebp - 8], 0x4b0
je 0x46ddd2
cmp dword [ebp - 0x14], 0
je 0x46dd9d
push esi
push edi
call fcn.004533e4
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.0044406f
push dword [ebp - 8]
lea ecx, [ebp - 0x58]
push esi
push edi
call fcn.0044425c
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x5c]
mov dword [ebp + 8], eax
call fcn.0043dd41
mov eax, dword [ebp + 8]
or dword [ebp - 0x14], 4
jmp 0x46de17
mov eax, dword [ebp - 0x24]
cmp word [eax], cx
jne 0x46ddef
lea ecx, [ebp - 0x58]
call fcn.0043dd41
xor esi, esi
jmp 0x46e67e
cmp byte [ebp - 1], 1
mov eax, dword [ebp + 8]
jne 0x46de08
cmp word [eax], 0x2c
je 0x46de08
mov esi, 0x80070057
jmp 0x46e668
inc eax
inc eax
test byte [ebp - 1], 1
mov dword [ebp + 8], eax
je 0x46e18a
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
xor edx, edx
or ecx, edx
mov dword [ebp - 0xc], ebx
je 0x46df44
lea eax, [ebp + 8]
push eax
call fcn.0043dcd9
mov esi, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.00405676
mov eax, dword [ebp + 8]
cmp word [eax], bx
pop ecx
pop ecx
je 0x46de4e
mov word [eax], bx
mov eax, dword [ebp + 8]
cmp word [esi], bx
je 0x46df44
mov ecx, dword [ebp - 0x28]
push ebx
push 0xffffffffffffffff
push ebx
push esi
call fcn.004108b2
mov edi, eax
cmp edi, ebx
je 0x46df41
mov ebx, dword [edi + 0x10]
mov esi, dword [edi + 4]
xor eax, eax
test byte [ebp - 1], 8
je 0x46df19
movsx ecx, byte [esi]
cmp ecx, 0xff
jne 0x46dea0
movsx edx, byte [esi + 1]
cmp edx, 0xfe
jne 0x46dea0
mov dword [ebp - 8], 0x4b0
jmp 0x46debb
cmp ecx, 0xfe
jne 0x46debf
movsx edx, byte [esi + 1]
cmp edx, 0xff
jne 0x46debf
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x46dee8
cmp ecx, 0xef
jne 0x46deed
movsx ecx, byte [esi + 1]
cmp ecx, 0xbb
jne 0x46deed
movsx ecx, byte [esi + 2]
cmp ecx, 0xbf
jne 0x46deed
mov dword [ebp - 8], 0xfde9
push 3
and dword [ebp - 0x14], 0
pop eax
sub ebx, eax
add esi, eax
cmp dword [ebp - 8], 0x4b1
je 0x46df19
cmp dword [ebp - 8], 0x4b0
je 0x46df19
cmp dword [ebp - 0x14], 0
je 0x46df15
push ebx
push esi
call fcn.004533e4
pop ecx
pop ecx
mov dword [ebp - 8], eax
and dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 0
lea ecx, [ebp - 0xc]
je 0x46df2f
shr ebx, 1
push ebx
push dword [edi + 4]
call fcn.004442c5
jmp 0x46df39
push dword [ebp - 8]
push ebx
push esi
call fcn.0044425c
mov eax, dword [ebp - 0xc]
mov dword [ebp + 8], eax
jmp 0x46df44
mov eax, dword [ebp + 8]
cmp byte [ebp - 2], 3
mov ebx, eax
jne 0x46df52
push eax
jmp 0x46e0a2
cmp byte [ebp - 2], 0
je 0x46dfea
cmp byte [ebp - 2], 1
mov edi, 0x4c04e4
je 0x46df6c
mov edi, 0x4c012c
lea ecx, [ebp - 0x10]
call fcn.004441a1
mov eax, dword [ebp + 8]
mov esi, eax
xor ebx, ebx
jmp 0x46dfc3
cmp cx, 0xd
jne 0x46df93
cmp word [eax + 2], 0xa
jne 0x46df99
mov word [eax], bx
add dword [ebp + 8], 2
jmp 0x46df9c
cmp cx, 0xa
jne 0x46dfbe
mov word [eax], bx
cmp byte [ebp - 2], 0
jne 0x46dfab
push edi
lea ecx, [ebp - 0x10]
call fcn.0044420d
push esi
lea ecx, [ebp - 0x10]
mov byte [ebp - 2], 0
call fcn.0044420d
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 0x46df7d
cmp word [esi], bx
je 0x46e04c
cmp byte [ebp - 2], 0
jne 0x46dfdf
push edi
lea ecx, [ebp - 0x10]
call fcn.0044420d
push esi
lea ecx, [ebp - 0x10]
call fcn.0044420d
jmp 0x46e04c
mov edx, dword [ebp - 0x2c]
test edx, edx
jg 0x46e062
jl 0x46dff9
cmp dword [ebp - 0x30], 0
jae 0x46e062
mov cx, word [eax]
xor esi, esi
xor edi, edi
test cx, cx
je 0x46e02f
cmp cx, 0xa
jne 0x46e011
add esi, 1
adc edi, 0
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
test cx, cx
jne 0x46e005
cmp eax, ebx
jbe 0x46e02f
cmp word [eax - 2], 0xa
je 0x46e02f
add esi, 1
adc edi, 0
push 0x20
lea ecx, [ebp - 0x10]
call fcn.004441bf
push edi
push esi
push 0x4bd234
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.004438ac
lea ecx, [ebp - 0x10]
jmp 0x46e178
mov esi, dword [ebp - 0x30]
mov ecx, esi
or ecx, edx
jne 0x46e0d3
mov dx, word [eax]
test dx, dx
push 0xa
mov ecx, eax
mov esi, eax
pop edi
je 0x46e0c1
cmp dx, di
jne 0x46e083
mov esi, ecx
mov ecx, eax
inc eax
inc eax
mov dword [ebp + 8], eax
mov dx, word [eax]
test dx, dx
jne 0x46e07a
cmp eax, ebx
jbe 0x46e0b2
cmp word [eax - 2], di
je 0x46e0b2
cmp word [ecx], di
jne 0x46e0a1
inc ecx
inc ecx
push ecx
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
call fcn.004438ac
jmp 0x46e17d
cmp ecx, ebx
jbe 0x46e0c1
lea eax, [ecx - 2]
cmp word [eax], 0xd
jne 0x46e0c1
mov ecx, eax
cmp word [esi], di
jne 0x46e0c8
inc esi
inc esi
sub ecx, esi
sar ecx, 1
push ecx
push esi
jmp 0x46e15f
test edx, edx
jl 0x46e0fd
jle 0x46e0f8
mov cx, word [eax]
test cx, cx
je 0x46e0fd
cmp cx, 0xa
jne 0x46e0ed
add esi, 0xffffffff
adc edx, 0xffffffff
inc eax
inc eax
test edx, edx
mov dword [ebp + 8], eax
jg 0x46e0d9
jl 0x46e0fd
cmp esi, 1
ja 0x46e0d9
mov esi, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
mov ebx, eax
jmp 0x46e14e
mov ecx, esi
or ecx, edi
je 0x46e11f
add dword [ebp - 0x40], 0xffffffff
adc dword [ebp - 0x3c], 0xffffffff
js 0x46e159
jg 0x46e11f
cmp dword [ebp - 0x40], 0
jb 0x46e159
lea eax, [ebp + 8]
call fcn.004143d1
mov eax, esi
or eax, edi
je 0x46e135
mov eax, dword [ebp - 0x40]
or eax, dword [ebp - 0x3c]
je 0x46e156
mov eax, dword [ebp + 8]
cmp word [eax], 0xd
jne 0x46e143
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0xa
jne 0x46e14e
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0
jne 0x46e107
jmp 0x46e159
mov eax, dword [ebp + 8]
sub eax, ebx
sar eax, 1
push eax
push ebx
lea ecx, [ebp - 0x1c]
call fcn.0044cf4a
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.004438ac
lea ecx, [ebp - 0x1c]
call fcn.0043dd41
lea ecx, [ebp - 0xc]
call fcn.0043dd41
jmp 0x46dde0
push 8
lea ecx, [ebp - 0x10]
call fcn.0044404a
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 [0x4d6338]
mov dword [ebp - 0x74], eax
jne 0x46e1bb
lea eax, [ebp - 0x74]
mov dword [ebp - 0x20], eax
jmp 0x46e308
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 0x46e1e9
push 7
push 0x80000000
push dword [ebp - 0x44]
call fcn.00414056
add esp, 0xc
mov dword [ebp - 0x48], eax
jmp 0x46e204
push ebx
push 0x2000000
push 3
push ebx
push 7
push 0x80000000
push dword [ebp - 0x44]
lea ecx, [ebp - 0x48]
call fcn.0040569f
cmp dword [ebp - 0x48], ebx
je 0x46e2a6
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 0x46e24f
cmp byte [ebp - 0x37], 0xfe
jne 0x46e287
mov dword [ebp - 8], 0x4b0
jmp 0x46e262
cmp byte [ebp - 0x38], 0xfe
jne 0x46e266
cmp byte [ebp - 0x37], 0xff
jne 0x46e287
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x46e281
cmp byte [ebp - 0x38], 0xef
jne 0x46e287
cmp byte [ebp - 0x37], 0xbb
jne 0x46e287
cmp byte [ebp - 0x36], 0xbf
jne 0x46e287
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.0043f027
mov ebx, edx
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x7c], eax
jg 0x46e2b3
jl 0x46e2a6
test eax, eax
jae 0x46e2b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x46e658
cmp dword [ebp - 0x14], 0
je 0x46e308
push edi
call fcn.00497abb
test edx, edx
pop ecx
mov esi, eax
jg 0x46e308
jl 0x46e2d0
cmp esi, 0x1000000
ja 0x46e308
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x58]
call fcn.0044406f
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.0043f027
push esi
push dword [ebp - 0x58]
call fcn.004533e4
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 0x46e3e1
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.0044406f
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 0x46e376
jg 0x46e36f
cmp dword [ebp - 0x30], edi
jbe 0x46e376
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], edi
mov ecx, dword [ebp - 0x30]
or ecx, dword [ebp - 0x2c]
jne 0x46e3a5
test eax, eax
jne 0x46e3ae
cmp byte [ebp - 1], 2
jne 0x46e393
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x46e3ae
add dword [ebp - 0x38], 0xffffffff
adc dword [ebp - 0x34], 0xffffffff
js 0x46e3ae
jg 0x46e3a5
cmp dword [ebp - 0x38], 0
jb 0x46e3ae
add esi, dword [ebp - 0x30]
mov byte [esi + ebx], 0
jmp 0x46e335
mov eax, dword [ebp - 8]
lea esi, [ebp - 0xc]
call fcn.0044ab1d
mov ecx, dword [ebp - 0x28]
push eax
push dword [ebp - 0x24]
call fcn.004438ac
mov ecx, esi
call fcn.0043dd41
lea ecx, [ebp - 0x48]
call fcn.00402c9f
lea ecx, [ebp - 0x10]
call fcn.0043dd41
jmp 0x46dde0
cmp byte [ebp - 2], 0
je 0x46e47e
mov eax, dword [ebp - 0x1c]
cmp eax, esi
jne 0x46e3f7
mov eax, 0x4bd7d2
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x1c]
call fcn.0044cf63
xor ebx, ebx
mov bl, byte [ebp - 0xc]
or ebx, 1
lea ecx, [ebp - 0xc]
call fcn.004441a1
cmp byte [ebp - 2], 0
jne 0x46e423
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
call fcn.0044420d
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x20]
mov byte [ebp - 2], 0
call fcn.0044a856
add esp, 0x10
cmp byte [ebp - 1], 2
mov edi, eax
jne 0x46e44d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x46e46e
mov eax, dword [ebp - 8]
lea esi, [ebp - 0xc]
call fcn.0044ab1d
push eax
lea ecx, [ebp - 0x18]
call fcn.0044420d
mov ecx, esi
call fcn.0043dd41
test edi, edi
je 0x46e476
jmp 0x46e40a
lea ecx, [ebp - 0xc]
call fcn.0043dd41
lea ecx, [ebp - 0x1c]
jmp 0x46e63c
cmp dword [ebp - 0x2c], esi
jg 0x46e4eb
jl 0x46e48a
cmp dword [ebp - 0x30], esi
jae 0x46e4eb
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.0044a856
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x46e4b6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x46e4c2
test esi, esi
je 0x46e4c2
add edi, 1
adc ebx, 0
jmp 0x46e48e
push 0x20
lea ecx, [ebp - 0x18]
mov dword [ebp - 8], 0x4b0
call fcn.0044406f
push ebx
push edi
push 0x4bd234
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x46e648
mov eax, dword [ebp - 0x30]
xor ebx, ebx
or eax, dword [ebp - 0x2c]
jne 0x46e53a
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.0044a856
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x46e531
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x46e648
test esi, esi
jne 0x46e4fb
jmp 0x46e648
inc ebx
cmp esi, dword [ebp - 0x2c]
jg 0x46e580
jge 0x46e57b
push dword [ebp - 0xc]
lea eax, [ebp - 0x18]
push dword [ebp - 8]
push eax
push dword [ebp - 0x20]
call fcn.0044a856
add esp, 0x10
cmp byte [ebp - 1], 2
mov edi, eax
jne 0x46e56a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x46e580
test edi, edi
je 0x46e580
add ebx, 1
adc esi, 0
cmp esi, dword [ebp - 0x2c]
jl 0x46e542
jg 0x46e580
cmp ebx, dword [ebp - 0x30]
jb 0x46e542
mov edi, dword [ebp - 0x40]
cmp edi, 1
mov eax, dword [ebp - 0x18]
mov byte [eax], 0
jne 0x46e5b0
cmp dword [ebp - 0x3c], 0
jne 0x46e5b0
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.0044a856
jmp 0x46e4e3
lea ecx, [ebp - 0x14]
call fcn.004441a1
mov ebx, edi
test ebx, ebx
je 0x46e5cd
add edi, 0xffffffff
adc dword [ebp - 0x3c], 0xffffffff
js 0x46e639
jg 0x46e5cd
test edi, edi
jb 0x46e639
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.0044a856
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x46e602
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x46e639
test esi, esi
je 0x46e639
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x14]
call fcn.0044ab1d
push eax
lea ecx, [ebp - 0x18]
call fcn.0044420d
test ebx, ebx
je 0x46e62a
cmp dword [ebp - 0x3c], 0
jl 0x46e639
jg 0x46e62a
test edi, edi
jbe 0x46e639
push 0x4c012c
lea ecx, [ebp - 0x18]
call fcn.0044420d
jmp 0x46e5ba
lea ecx, [ebp - 0x14]
mov dword [ebp - 8], 0x4b0
call fcn.0043dd41
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x18]
call fcn.0044ab1d
mov dword [ebp - 0x5c], eax
xor esi, esi
lea ecx, [ebp - 0x48]
call fcn.00402c9f
lea ecx, [ebp - 0x10]
call fcn.0043dd41
lea ecx, [ebp - 0x58]
call fcn.0043dd41
push dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.004438ac
lea ecx, [ebp - 0x18]
call fcn.0043dd41
lea ecx, [ebp - 0x60]
call fcn.0043dd41
lea ecx, [ebp - 0x64]
call fcn.00402c9f
lea ecx, [ebp - 0x24]
call fcn.0043dd41
lea ecx, [ebp - 0x44]
call fcn.0043dd41
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8