Function at 0x46f590
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5348c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x20], ecx
lea eax, [esp + 0x15]
xor ebp, ebp
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x84], ebp
call fcn.0050e020
push 0x10
mov byte [esp + 0x84], 2
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
lea ecx, [eax + 0x10]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
add esp, 4
mov word [eax], bp
mov esi, dword [esp + 0x8c]
lea ecx, [esp + 0x1c]
push 4
push ecx
mov eax, dword [esi]
mov dword [esp + 0x88], 3
push eax
mov edx, dword [eax]
call dword [edx + 0x14]
lea edx, [esp + 0x24]
mov ecx, esi
push edx
call fcn.004766f0
lea eax, [esp + 0x16]
lea ecx, [esp + 0x48]
push eax
mov byte [esp + 0x84], 4
call fcn.0050e020
lea ecx, [esp + 0x17]
mov byte [esp + 0x80], 6
push ecx
push ebp
push 0x11
lea ecx, [esp + 0x54]
call fcn.00460980
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x80], 7
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x80]
cmp dword [eax + ebp + 4], ecx
je 0x46f8ea
mov edx, dword [eax + ebp + 0x28]
test edx, edx
je 0x46f8ea
lea esi, [eax + ebp + 0x1c]
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.004ffc70
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x84], 8
call fcn.0050e020
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x88], 0xa
call fcn.0045b850
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov edi, ecx
sub eax, esi
sub edi, edx
xor edi, eax
test edi, 0xfffffffe
jne 0x46f6f5
sar eax, 1
push eax
push edx
push esi
call fcn.0045f720
add esp, 0xc
test eax, eax
jne 0x46f6ed
mov byte [esp + 0x13], 1
jmp 0x46f8d5
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
sub ecx, edx
or edi, 0xffffffff
sar ecx, 1
cmp ecx, 1
jl 0x46f8d5
cmp word [edx + ecx*2 - 2], 0x29
jne 0x46f8d5
lea esi, [ecx - 2]
lea eax, [esp + 0x19]
lea ecx, [esp + 0x3c]
push eax
mov byte [esp + 0x84], 0xc
call fcn.0050e020
push 0x57a194
mov byte [esp + 0x84], 0xd
call dword [sym.imp.msvcrt.dll_wcslen]
add esp, 4
lea ecx, [eax*2 + 0x57a194]
push ecx
push 0x57a194
lea ecx, [esp + 0x44]
call fcn.0040f860
test esi, esi
mov byte [esp + 0x80], 0xf
jl 0x46f7ec
mov ecx, dword [esp + 0x30]
mov ax, word [ecx + esi*2]
cmp ax, 0x30
jb 0x46f7f0
cmp ax, 0x39
ja 0x46f7f0
test edi, edi
jge 0x46f78a
and eax, 0xffff
sub eax, 0x30
mov edi, eax
jmp 0x46f798
and eax, 0xffff
sub eax, 0x30
lea edx, [eax + eax*4]
lea edi, [edi + edx*2]
mov cx, word [ecx + esi*2]
lea eax, [esp + 0x3c]
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00477510
add esp, 0xc
lea ecx, [esp + 0x3c]
mov byte [esp + 0x80], 0x10
cmp eax, ecx
je 0x46f7d4
mov ecx, dword [eax + 4]
mov eax, dword [eax]
lea edx, [esp + 0x1a]
push edx
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.00467190
lea ecx, [esp + 0x54]
mov byte [esp + 0x80], 0xf
call fcn.00418e50
dec esi
jns 0x46f766
mov ecx, dword [esp + 0x30]
cmp esi, 1
jl 0x46f8c4
cmp word [ecx + esi*2], 0x28
jne 0x46f8c4
cmp edi, 1
jl 0x46f8c4
cmp edi, 0x10
jg 0x46f8c4
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x60]
push eax
push 0x579cac
push ecx
call fcn.00458260
add esp, 0xc
lea edx, [esp + 0x3c]
mov byte [esp + 0x80], 0x11
cmp eax, edx
je 0x46f852
mov ecx, dword [eax + 4]
mov eax, dword [eax]
lea edx, [esp + 0x1b]
push edx
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.00467190
lea ecx, [esp + 0x60]
mov byte [esp + 0x80], 0xf
call fcn.00418e50
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x70]
push ecx
push edx
call fcn.0040ef90
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
sub eax, ecx
sub esi, edx
xor esi, eax
add esp, 0xc
test esi, 0xfffffffe
jne 0x46f8aa
sar eax, 1
push eax
push edx
push ecx
call fcn.0045f720
add esp, 0xc
test eax, eax
jne 0x46f8aa
mov bl, 1
jmp 0x46f8ac
xor bl, bl
lea ecx, [esp + 0x6c]
call fcn.00418e50
test bl, bl
je 0x46f8c4
mov eax, dword [esp + 0x48]
mov dword [eax + edi*4], 1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x80], 0xb
call fcn.00418e50
lea ecx, [esp + 0x30]
mov byte [esp + 0x80], 7
call fcn.00418e50
mov ecx, dword [esp + 0x1c]
add ebp, 0x2c
cmp ebp, 0x2c0
jl 0x46f658
mov al, byte [esp + 0x13]
test al, al
je 0x46fa37
mov ecx, dword [esp + 0x48]
mov esi, 1
lea eax, [ecx + 4]
cmp dword [eax], 1
jne 0x46f91f
inc esi
add eax, 4
cmp esi, 0x10
jle 0x46f911
lea edx, [esp + 0x1b]
lea ecx, [esp + 0x3c]
push edx
mov byte [esp + 0x84], 0x12
call fcn.0050e020
push 0x10
mov byte [esp + 0x84], 0x14
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
lea ecx, [eax + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
add esp, 4
mov word [eax], 0
mov bl, 0x16
push esi
push 0x57a18c
mov byte [esp + 0x88], bl
call fcn.004c2ae0
add esp, 8
lea edx, [esp + 0x1a]
lea ecx, [esp + 0x30]
mov esi, eax
push edx
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x80], 0x17
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x38]
call fcn.004067c0
lea eax, [esp + 0x30]
lea ecx, [esp + 0x3c]
push eax
push ecx
mov byte [esp + 0x88], 0x18
call fcn.004c2cb0
add esp, 8
lea ecx, [esp + 0x30]
mov byte [esp + 0x80], bl
call fcn.00418e50
lea edx, [esp + 0x3c]
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x70]
mov bl, 0x15
push eax
push ecx
mov byte [esp + 0x8c], bl
call fcn.0040ef90
add esp, 0xc
lea edx, [esp + 0x24]
mov byte [esp + 0x80], 0x19
cmp eax, edx
je 0x46fa12
mov ecx, dword [eax + 4]
mov eax, dword [eax]
lea edx, [esp + 0x1a]
push edx
push ecx
push eax
lea ecx, [esp + 0x30]
call fcn.00467190
lea ecx, [esp + 0x6c]
mov byte [esp + 0x80], bl
call fcn.00418e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x80], 7
call fcn.00418e50
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x24]
push edx
lea edx, [ecx + ecx*4]
mov eax, dword [edi + 0x80]
lea ecx, [ecx + edx*2]
lea ecx, [eax + ecx*4 + 0x1c]
call fcn.00459820
mov esi, dword [esp + 0x8c]
push 0
mov eax, dword [esi]
push eax
mov edx, dword [eax]
call dword [edx + 0x30]
lea eax, [esp + 0x14]
mov ecx, esi
push eax
mov byte [esp + 0x18], 8
call fcn.004774f0
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
call fcn.00476780
mov ecx, dword [esi]
mov eax, dword [edi + 0xe4]
push ecx
mov ecx, dword [esp + 0x8c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x44]
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 3
call fcn.00418e50
lea ecx, [esp + 0x24]
mov dword [esp + 0x80], 0xffffffff
call fcn.00418e50
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret 8