Function at 0x46efce
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.00402d55
xor ebx, ebx
inc ebx
test al, al
je 0x46f00f
and dword [ebp - 8], 0
mov dword [ebp - 0x14], ebx
jmp 0x46f130
push 4
push esi
push str._UNI
call fcn.0043f82d
add esp, 0xc
test al, al
je 0x46f02f
mov dword [ebp - 8], 0x4b0
jmp 0x46f130
push 8
push esi
push str._UNICODE
call fcn.0043f82d
add esp, 0xc
test al, al
jne 0x46f023
push 5
push esi
push str._UNIB
call fcn.0043f82d
add esp, 0xc
test al, al
je 0x46f063
mov dword [ebp - 8], 0x4b1
jmp 0x46f130
push 9
push esi
push str._UNICODEB
call fcn.0043f82d
add esp, 0xc
test al, al
jne 0x46f057
push 5
push esi
push str._ANSI
call fcn.0043f82d
add esp, 0xc
test al, al
je 0x46f094
and dword [ebp - 8], 0
jmp 0x46f130
push 4
push esi
push str._GBK
call fcn.0043f82d
add esp, 0xc
test al, al
je 0x46f0b1
mov dword [ebp - 8], 0x3a8
jmp 0x46f130
push 5
push esi
push str._BIG5
call fcn.0043f82d
add esp, 0xc
test al, al
je 0x46f0ce
mov dword [ebp - 8], 0x3b6
jmp 0x46f130
push 5
push esi
push str._UTF8
call fcn.0043f82d
add esp, 0xc
test al, al
je 0x46f0eb
mov dword [ebp - 8], 0xfde9
jmp 0x46f130
push 5
push esi
push str._UTF7
call fcn.0043f82d
add esp, 0xc
test al, al
je 0x46f108
mov dword [ebp - 8], 0xfde8
jmp 0x46f130
cmp di, 0x2d
jne 0x46f130
xor eax, eax
add esi, 2
mov ax, word [esi]
push eax
call fcn.004aadc6
add esp, 4
test al, al
je 0x46f130
push esi
mov dword [ebp + 8], esi
call fcn.004456c1
pop ecx
mov dword [ebp - 8], eax
lea eax, [ebp + 8]
push eax
call fcn.00409168
push 4
lea eax, [ebp + 8]
push eax
push str.fix
call fcn.00446a34
add esp, 0x10
neg al
sbb al, al
push 0x4bfa2c
lea ecx, [ebp - 0x44]
and eax, 2
mov byte [ebp - 0xc], al
call fcn.0044df7a
push 0x4ca50c
lea ecx, [ebp - 0x24]
call fcn.0044df7a
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.004395a0
mov esi, dword [ebp - 0x44]
push esi
push 0x4ca508
mov dword [ebp + 8], eax
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x46f1b5
mov byte [ebp - 1], 9
mov dword [ebp - 0x4c], ebx
push esi
push 0x4ca504
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x46f23c
mov dword [ebp - 0x4c], ebx
or byte [ebp - 1], 1
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x1c], edi
call fcn.00444a10
mov ecx, dword [ebp - 0x28]
push ebx
push edi
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 8]
call fcn.004549e1
mov eax, dword [ebp - 0x60]
mov dword [ebp + 8], eax
cmp word [eax], 0x2c
jne 0x46f2dc
lea ecx, [ebp - 0x20]
call fcn.00444a10
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0044785b
mov esi, dword [ebp - 0x20]
push esi
push 0x4ca500
mov dword [ebp - 0x10], esi
call fcn.0043f8c3
add esp, 0x14
test al, al
je 0x46f274
mov byte [ebp - 2], 2
mov dword [ebp - 0x1c], 0x4ca4fc
jmp 0x46f2d4
cmp word [esi], di
je 0x46f1c9
push esi
push 0x4c0f5c
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x46f1c9
push esi
push 0x4c0998
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x46f1cd
mov byte [ebp - 1], 2
jmp 0x46f1cd
push esi
push 0x4ca4f8
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x46f28b
mov byte [ebp - 2], 3
jmp 0x46f2d4
push esi
push 0x4c4298
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x46f2a9
mov byte [ebp - 2], 1
mov dword [ebp - 0x1c], 0x4ca4f4
jmp 0x46f2d4
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00451370
mov eax, dword [ebp - 0x10]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x46f2d4
add dword [ebp - 0x10], 2
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00451370
pop ecx
pop ecx
lea ecx, [ebp - 0x20]
call fcn.0043e48d
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x46f2fb
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0044785b
add esp, 0xc
mov ecx, dword [ebp - 0x28]
push 0
lea eax, [ebp - 0x24]
push eax
call fcn.00402ee8
push 8
lea ecx, [ebp - 0x18]
call fcn.004448b9
mov edi, dword [ebp - 0x18]
and word [edi], 0
cmp dword [ebp - 8], 0
mov dword [ebp - 0x5c], edi
mov esi, ebx
jl 0x46fd4a
lea ecx, [ebp - 0x58]
call fcn.0044489c
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 0x46f4de
cmp word [eax + 2], 0x64
jne 0x46f4de
cmp word [eax + 4], 0x3a
jne 0x46f4de
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 0x46f37f
inc eax
inc eax
mov dword [ebp - 0xc], eax
mov edi, eax
push 0x3a
lea eax, [ebp - 0xc]
call fcn.004a3a6c
mov eax, dword [ebp - 0xc]
cmp eax, edi
pop ecx
je 0x46f39e
cmp word [eax - 2], si
jne 0x46f39e
and word [eax - 2], 0
cmp word [eax], 0x3a
jne 0x46f3aa
and word [eax], 0
inc eax
inc eax
cmp word [eax], si
mov ecx, eax
jne 0x46f3c5
lea ecx, [eax + 2]
inc eax
inc eax
cmp word [eax], si
jne 0x46f3bf
and word [eax], 0
cmp word [eax], 0
jne 0x46f3b4
push 0
push 0
push 0x10000
push ecx
lea eax, [ebp - 0x58]
push eax
push edi
call fcn.0043bfe1
mov esi, dword [ebp - 0x54]
add esp, 0x18
test esi, esi
jle 0x46f3f0
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x58]
add eax, ecx
mov dword [ebp + 8], eax
jmp 0x46f3f3
mov eax, dword [ebp + 8]
movsx edx, byte [eax]
xor ecx, ecx
cmp edx, ebx
mov dword [ebp - 0x34], ecx
jne 0x46f414
movsx edi, byte [eax + 1]
cmp edi, 0xfe
jne 0x46f414
mov dword [ebp - 8], 0x4b0
jmp 0x46f42b
cmp edx, 0xfe
jne 0x46f42f
movsx edi, byte [eax + 1]
cmp edi, ebx
jne 0x46f42f
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x46f458
cmp edx, 0xef
jne 0x46f45d
movsx edx, byte [eax + 1]
cmp edx, 0xbb
jne 0x46f45d
movsx edx, byte [eax + 2]
cmp edx, 0xbf
jne 0x46f45d
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 0x46f488
and esi, 0xfffffffe
add esi, edi
cmp edi, esi
mov ecx, edi
ja 0x46f4d8
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 0x46f476
jmp 0x46f4d5
cmp dword [ebp - 8], 0x4b0
je 0x46f4d8
cmp dword [ebp - 0x14], 0
je 0x46f4a3
push esi
push edi
call fcn.004544f0
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.004448de
push dword [ebp - 8]
lea ecx, [ebp - 0x58]
push esi
push edi
call fcn.00444acb
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x5c]
mov dword [ebp + 8], eax
call fcn.0043e48d
mov eax, dword [ebp + 8]
or dword [ebp - 0x14], 4
jmp 0x46f51d
mov eax, dword [ebp - 0x24]
cmp word [eax], cx
jne 0x46f4f5
lea ecx, [ebp - 0x58]
call fcn.0043e48d
xor esi, esi
jmp 0x46fd58
cmp byte [ebp - 1], 1
mov eax, dword [ebp + 8]
jne 0x46f50e
cmp word [eax], 0x2c
je 0x46f50e
mov esi, 0x80070057
jmp 0x46fd42
inc eax
inc eax
test byte [ebp - 1], 1
mov dword [ebp + 8], eax
je 0x46f864
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
xor edx, edx
or ecx, edx
mov dword [ebp - 0xc], ebx
je 0x46f61e
lea eax, [ebp + 8]
push eax
call fcn.0043e425
mov esi, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.00405a01
mov eax, dword [ebp + 8]
cmp word [eax], bx
pop ecx
pop ecx
je 0x46f554
mov word [eax], bx
mov eax, dword [ebp + 8]
cmp word [esi], bx
je 0x46f61e
mov ecx, dword [ebp - 0x28]
push ebx
push 0xffffffffffffffff
push ebx
push esi
call fcn.00410c6f
cmp eax, ebx
je 0x46f61b
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 4]
xor ecx, ecx
test byte [ebp - 1], 8
je 0x46f5eb
mov al, byte [esi]
cmp al, 0xff
jne 0x46f593
cmp byte [esi + 1], 0xfe
jne 0x46f593
mov eax, 0x4b0
jmp 0x46f5a2
cmp al, 0xfe
jne 0x46f5a6
cmp byte [esi + 1], 0xff
jne 0x46f5a6
mov eax, 0x4b1
push 2
jmp 0x46f5bd
cmp al, 0xef
jne 0x46f5c3
cmp byte [esi + 1], 0xbb
jne 0x46f5c3
cmp byte [esi + 2], 0xbf
jne 0x46f5c3
mov eax, 0xfde9
push 3
pop ecx
mov dword [ebp - 0x14], ebx
jmp 0x46f5c6
mov eax, dword [ebp - 8]
sub edi, ecx
add esi, ecx
cmp eax, 0x4b1
je 0x46f5ee
cmp eax, 0x4b0
je 0x46f5ee
cmp dword [ebp - 0x14], ebx
je 0x46f5e6
push edi
push esi
call fcn.004544f0
pop ecx
pop ecx
mov dword [ebp - 0x14], ebx
jmp 0x46f5ee
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x14], ebx
jg 0x46f607
cmp eax, 0x4b0
je 0x46f607
push eax
push edi
push esi
lea ecx, [ebp - 0xc]
call fcn.00444acb
jmp 0x46f613
shr edi, 1
push edi
push esi
lea ecx, [ebp - 0xc]
call fcn.00444b34
mov eax, dword [ebp - 0xc]
mov dword [ebp + 8], eax
jmp 0x46f61e
mov eax, dword [ebp + 8]
cmp byte [ebp - 2], 3
mov ebx, eax
jne 0x46f62c
push eax
jmp 0x46f77c
cmp byte [ebp - 2], 0
je 0x46f6c4
cmp byte [ebp - 2], 1
mov edi, 0x4c351c
je 0x46f646
mov edi, 0x4c00b0
lea ecx, [ebp - 0x10]
call fcn.00444a10
mov eax, dword [ebp + 8]
mov esi, eax
xor ebx, ebx
jmp 0x46f69d
cmp cx, 0xd
jne 0x46f66d
cmp word [eax + 2], 0xa
jne 0x46f673
mov word [eax], bx
add dword [ebp + 8], 2
jmp 0x46f676
cmp cx, 0xa
jne 0x46f698
mov word [eax], bx
cmp byte [ebp - 2], 0
jne 0x46f685
push edi
lea ecx, [ebp - 0x10]
call fcn.00444a7c
push esi
lea ecx, [ebp - 0x10]
mov byte [ebp - 2], 0
call fcn.00444a7c
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 0x46f657
cmp word [esi], bx
je 0x46f726
cmp byte [ebp - 2], 0
jne 0x46f6b9
push edi
lea ecx, [ebp - 0x10]
call fcn.00444a7c
push esi
lea ecx, [ebp - 0x10]
call fcn.00444a7c
jmp 0x46f726
mov edx, dword [ebp - 0x2c]
test edx, edx
jg 0x46f73c
jl 0x46f6d3
cmp dword [ebp - 0x30], 0
jae 0x46f73c
mov cx, word [eax]
xor esi, esi
xor edi, edi
test cx, cx
je 0x46f709
cmp cx, 0xa
jne 0x46f6eb
add esi, 1
adc edi, 0
inc eax
inc eax
mov dword [ebp + 8], eax
mov cx, word [eax]
test cx, cx
jne 0x46f6df
cmp eax, ebx
jbe 0x46f709
cmp word [eax - 2], 0xa
je 0x46f709
add esi, 1
adc edi, 0
push 0x20
lea ecx, [ebp - 0x10]
call fcn.00444a2e
push edi
push esi
push 0x4c023c
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.0044414b
lea ecx, [ebp - 0x10]
jmp 0x46f852
mov esi, dword [ebp - 0x30]
mov ecx, esi
or ecx, edx
jne 0x46f7ad
mov dx, word [eax]
test dx, dx
push 0xa
mov ecx, eax
mov esi, eax
pop edi
je 0x46f79b
cmp dx, di
jne 0x46f75d
mov esi, ecx
mov ecx, eax
inc eax
inc eax
mov dword [ebp + 8], eax
mov dx, word [eax]
test dx, dx
jne 0x46f754
cmp eax, ebx
jbe 0x46f78c
cmp word [eax - 2], di
je 0x46f78c
cmp word [ecx], di
jne 0x46f77b
inc ecx
inc ecx
push ecx
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
call fcn.0044414b
jmp 0x46f857
cmp ecx, ebx
jbe 0x46f79b
lea eax, [ecx - 2]
cmp word [eax], 0xd
jne 0x46f79b
mov ecx, eax
cmp word [esi], di
jne 0x46f7a2
inc esi
inc esi
sub ecx, esi
sar ecx, 1
push ecx
push esi
jmp 0x46f839
test edx, edx
jl 0x46f7d7
jle 0x46f7d2
mov cx, word [eax]
test cx, cx
je 0x46f7d7
cmp cx, 0xa
jne 0x46f7c7
add esi, 0xffffffff
adc edx, 0xffffffff
inc eax
inc eax
test edx, edx
mov dword [ebp + 8], eax
jg 0x46f7b3
jl 0x46f7d7
cmp esi, 1
ja 0x46f7b3
mov esi, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
mov ebx, eax
jmp 0x46f828
mov ecx, esi
or ecx, edi
je 0x46f7f9
add dword [ebp - 0x40], 0xffffffff
adc dword [ebp - 0x3c], 0xffffffff
js 0x46f833
jg 0x46f7f9
cmp dword [ebp - 0x40], 0
jb 0x46f833
lea eax, [ebp + 8]
call fcn.004059a0
mov eax, esi
or eax, edi
je 0x46f80f
mov eax, dword [ebp - 0x40]
or eax, dword [ebp - 0x3c]
je 0x46f830
mov eax, dword [ebp + 8]
cmp word [eax], 0xd
jne 0x46f81d
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0xa
jne 0x46f828
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0
jne 0x46f7e1
jmp 0x46f833
mov eax, dword [ebp + 8]
sub eax, ebx
sar eax, 1
push eax
push ebx
lea ecx, [ebp - 0x1c]
call fcn.0044df97
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.0044414b
lea ecx, [ebp - 0x1c]
call fcn.0043e48d
lea ecx, [ebp - 0xc]
call fcn.0043e48d
jmp 0x46f4e6
push 8
lea ecx, [ebp - 0x10]
call fcn.004448b9
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 [0x4d9338]
mov dword [ebp - 0x74], eax
jne 0x46f895
lea eax, [ebp - 0x74]
mov dword [ebp - 0x20], eax
jmp 0x46f9e2
push dword [ebp - 0x44]
lea eax, [ebp - 0x48]
mov dword [ebp - 0x20], eax
xor ebx, ebx
xor esi, esi
call fcn.00404ea5
test eax, eax
pop ecx
je 0x46f8c3
push 7
push 0x80000000
push dword [ebp - 0x44]
call fcn.00414413
add esp, 0xc
mov dword [ebp - 0x48], eax
jmp 0x46f8de
push ebx
push 0x2000000
push 3
push ebx
push 7
push 0x80000000
push dword [ebp - 0x44]
lea ecx, [ebp - 0x48]
call fcn.00405a2a
cmp dword [ebp - 0x48], ebx
je 0x46f980
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 0x46f929
cmp byte [ebp - 0x37], 0xfe
jne 0x46f961
mov dword [ebp - 8], 0x4b0
jmp 0x46f93c
cmp byte [ebp - 0x38], 0xfe
jne 0x46f940
cmp byte [ebp - 0x37], 0xff
jne 0x46f961
mov dword [ebp - 8], 0x4b1
push 2
jmp 0x46f95b
cmp byte [ebp - 0x38], 0xef
jne 0x46f961
cmp byte [ebp - 0x37], 0xbb
jne 0x46f961
cmp byte [ebp - 0x36], 0xbf
jne 0x46f961
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.0043f790
mov ebx, edx
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x7c], eax
jg 0x46f98d
jl 0x46f980
test eax, eax
jae 0x46f98d
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x46fd32
cmp dword [ebp - 0x14], 0
je 0x46f9e2
push edi
call fcn.0049a57e
test edx, edx
pop ecx
mov esi, eax
jg 0x46f9e2
jl 0x46f9aa
cmp esi, 0x1000000
ja 0x46f9e2
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x58]
call fcn.004448de
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.0043f790
push esi
push dword [ebp - 0x58]
call fcn.004544f0
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 0x46fabb
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.004448de
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 0x46fa50
jg 0x46fa49
cmp dword [ebp - 0x30], edi
jbe 0x46fa50
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], edi
mov ecx, dword [ebp - 0x30]
or ecx, dword [ebp - 0x2c]
jne 0x46fa7f
test eax, eax
jne 0x46fa88
cmp byte [ebp - 1], 2
jne 0x46fa6d
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x46fa88
add dword [ebp - 0x38], 0xffffffff
adc dword [ebp - 0x34], 0xffffffff
js 0x46fa88
jg 0x46fa7f
cmp dword [ebp - 0x38], 0
jb 0x46fa88
add esi, dword [ebp - 0x30]
mov byte [esi + ebx], 0
jmp 0x46fa0f
mov eax, dword [ebp - 8]
lea esi, [ebp - 0xc]
call fcn.0044bb73
mov ecx, dword [ebp - 0x28]
push eax
push dword [ebp - 0x24]
call fcn.0044414b
mov ecx, esi
call fcn.0043e48d
lea ecx, [ebp - 0x48]
call fcn.00402cb5
lea ecx, [ebp - 0x10]
call fcn.0043e48d
jmp 0x46f4e6
cmp byte [ebp - 2], 0
je 0x46fb58
mov eax, dword [ebp - 0x1c]
cmp eax, esi
jne 0x46fad1
mov eax, 0x4c080a
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x1c]
call fcn.0044dfb0
xor ebx, ebx
mov bl, byte [ebp - 0xc]
or ebx, 1
lea ecx, [ebp - 0xc]
call fcn.00444a10
cmp byte [ebp - 2], 0
jne 0x46fafd
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
call fcn.00444a7c
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x20]
mov byte [ebp - 2], 0
call fcn.0044b8ac
add esp, 0x10
cmp byte [ebp - 1], 2
mov edi, eax
jne 0x46fb27
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x46fb48
mov eax, dword [ebp - 8]
lea esi, [ebp - 0xc]
call fcn.0044bb73
push eax
lea ecx, [ebp - 0x18]
call fcn.00444a7c
mov ecx, esi
call fcn.0043e48d
test edi, edi
je 0x46fb50
jmp 0x46fae4
lea ecx, [ebp - 0xc]
call fcn.0043e48d
lea ecx, [ebp - 0x1c]
jmp 0x46fd16
cmp dword [ebp - 0x2c], esi
jg 0x46fbc5
jl 0x46fb64
cmp dword [ebp - 0x30], esi
jae 0x46fbc5
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.0044b8ac
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x46fb90
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x46fb9c
test esi, esi
je 0x46fb9c
add edi, 1
adc ebx, 0
jmp 0x46fb68
push 0x20
lea ecx, [ebp - 0x18]
mov dword [ebp - 8], 0x4b0
call fcn.004448de
push ebx
push edi
push 0x4c023c
push dword [ebp - 0x18]
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
jmp 0x46fd22
mov eax, dword [ebp - 0x30]
xor ebx, ebx
or eax, dword [ebp - 0x2c]
jne 0x46fc14
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.0044b8ac
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x46fc0b
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x46fd22
test esi, esi
jne 0x46fbd5
jmp 0x46fd22
inc ebx
cmp esi, dword [ebp - 0x2c]
jg 0x46fc5a
jge 0x46fc55
push dword [ebp - 0xc]
lea eax, [ebp - 0x18]
push dword [ebp - 8]
push eax
push dword [ebp - 0x20]
call fcn.0044b8ac
add esp, 0x10
cmp byte [ebp - 1], 2
mov edi, eax
jne 0x46fc44
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x46fc5a
test edi, edi
je 0x46fc5a
add ebx, 1
adc esi, 0
cmp esi, dword [ebp - 0x2c]
jl 0x46fc1c
jg 0x46fc5a
cmp ebx, dword [ebp - 0x30]
jb 0x46fc1c
mov edi, dword [ebp - 0x40]
cmp edi, 1
mov eax, dword [ebp - 0x18]
mov byte [eax], 0
jne 0x46fc8a
cmp dword [ebp - 0x3c], 0
jne 0x46fc8a
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.0044b8ac
jmp 0x46fbbd
lea ecx, [ebp - 0x14]
call fcn.00444a10
mov ebx, edi
test ebx, ebx
je 0x46fca7
add edi, 0xffffffff
adc dword [ebp - 0x3c], 0xffffffff
js 0x46fd13
jg 0x46fca7
test edi, edi
jb 0x46fd13
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.0044b8ac
add esp, 0x10
cmp byte [ebp - 1], 2
mov esi, eax
jne 0x46fcdc
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x6d
je 0x46fd13
test esi, esi
je 0x46fd13
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x14]
call fcn.0044bb73
push eax
lea ecx, [ebp - 0x18]
call fcn.00444a7c
test ebx, ebx
je 0x46fd04
cmp dword [ebp - 0x3c], 0
jl 0x46fd13
jg 0x46fd04
test edi, edi
jbe 0x46fd13
push 0x4c00b0
lea ecx, [ebp - 0x18]
call fcn.00444a7c
jmp 0x46fc94
lea ecx, [ebp - 0x14]
mov dword [ebp - 8], 0x4b0
call fcn.0043e48d
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x18]
call fcn.0044bb73
mov dword [ebp - 0x5c], eax
xor esi, esi
lea ecx, [ebp - 0x48]
call fcn.00402cb5
lea ecx, [ebp - 0x10]
call fcn.0043e48d
lea ecx, [ebp - 0x58]
call fcn.0043e48d
push dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.0044414b
lea ecx, [ebp - 0x18]
call fcn.0043e48d
lea ecx, [ebp - 0x60]
call fcn.0043e48d
lea ecx, [ebp - 0x64]
call fcn.00402cb5
lea ecx, [ebp - 0x24]
call fcn.0043e48d
lea ecx, [ebp - 0x44]
call fcn.0043e48d
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8