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

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebp, dword [esp + 0x24]
xor ebx, ebx
push esi
mov esi, dword [esp + 0x2c]
push edi
push esi
push ebp
call fcn.0043eb00
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], ebx
mov byte [eax], bl
push dword [ebp + 0x10]
push esi
call fcn.0043ed10
add esp, 0x10
test al, al
je 0x46f4a7
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0x78]
test eax, eax
je 0x46f45d
nop dword [eax]
lea eax, [esp + 0x18]
push eax
push 1
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x20]
push esi
call fcn.0043fde0
mov ebx, eax
add esp, 0x14
cmp ebx, 0x51
je 0x46f4a7
push esi
call fcn.00450340
add esp, 4
test eax, eax
jne 0x46f49a
test ebx, ebx
jne 0x46f482
cmp dword [esp + 0x18], ebx
jle 0x46f40f
cmp dword [edi + 0x78], 2
jne 0x46f245
mov ecx, dword [edi + 0x80]
mov eax, ecx
mov edx, dword [edi + 0x84]
or eax, edx
je 0x46f207
sub ecx, 1
mov dword [edi + 0x80], ecx
sbb edx, ebx
mov dword [edi + 0x84], edx
js 0x46f1f4
jg 0x46f3b5
test ecx, ecx
jne 0x46f3b5
mov eax, dword [esp + 0x38]
mov dword [edi + 0x78], 0
mov byte [eax], 1
jmp 0x46f3cf
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], 0
push eax
lea eax, [esp + 0x20]
push eax
push 1
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.00472c30
add esp, 0x14
cmp eax, 0xffffffff
jne 0x46f3b5
push 0x4d8158
push esi
call fcn.0043f710
add esp, 8
jmp 0x46f3ae
push 1
lea eax, [esp + 0x34]
push eax
lea ebp, [edi + 0x50]
push ebp
call fcn.00434d80
add esp, 0xc
test eax, eax
jne 0x46f3f4
cmp byte [esp + 0x30], 0xa
jne 0x46f3b5
inc dword [edi + 0x74]
push ebp
call fcn.00434df0
lea ecx, [edi + 0x50]
mov ebp, eax
push ecx
call fcn.00434de0
mov ebx, eax
push ebx
push ebp
push 1
push esi
call fcn.0043f5a0
xor ecx, ecx
cmp dword [edi + 0x74], 1
push ebx
sete cl
push ebp
lea ecx, [ecx*8 + 0x14]
push ecx
push esi
call fcn.0043fbc0
add esp, 0x28
test eax, eax
jne 0x46f4a9
push 1
push ebx
push esi
call fcn.0044abc0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x46f3ea
mov al, byte [ebp]
cmp al, 0xd
je 0x46f2fa
cmp al, 0xa
je 0x46f2fa
push ebp
push edi
push esi
push dword [esp + 0x38]
call fcn.0046eed0
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x46f3ea
lea eax, [edi + 0x50]
push eax
call fcn.00434e00
add esp, 4
jmp 0x46f3b5
cmp dword [esi + 0xd8], 0x197
jne 0x46f3ae
cmp byte [esi + 0xd59], 0
jne 0x46f3ae
mov edx, dword [edi + 0x80]
mov eax, edx
mov ecx, dword [edi + 0x84]
or eax, ecx
mov dword [edi + 0x78], 2
je 0x46f342
push ecx
push edx
push 0x4d8188
push esi
call fcn.0043f710
add esp, 0x10
jmp 0x46f3b5
cmp byte [edi + 0x8c], 0
je 0x46f39c
push 0x4d81ac
push esi
mov dword [esp + 0x24], 0
call fcn.0043f710
lea eax, [ebp + 1]
mov byte [esi + 0x141], 1
cmp byte [eax], 0xa
cmove ebp, eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x28]
push eax
push 1
lea eax, [ebp + 1]
push eax
push esi
call fcn.00472c30
add esp, 0x1c
cmp eax, 0xffffffff
jne 0x46f3b5
push 0x4d8158
push esi
call fcn.0043f710
add esp, 8
jmp 0x46f3ae
push 0x4d81cc
push dword [esp + 0x30]
push esi
call fcn.0043f7a0
add esp, 0xc
mov dword [edi + 0x78], 0
mov eax, dword [edi + 0x78]
test eax, eax
jne 0x46f170
mov ecx, dword [esp + 0x38]
mov byte [ecx], 1
test ebx, ebx
jne 0x46f3ea
test eax, eax
jne 0x46f3ea
mov eax, dword [esi + 0xd7c]
sub eax, 0xc8
cmp eax, 0x64
jb 0x46f3ea
push esi
call fcn.0044b100
add esp, 4
mov ebx, eax
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x18
ret
push 0x4d816c
push esi
call fcn.0043f640
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
cmp dword [esi + 0x170], 0
je 0x46f43e
cmp dword [esi + 0x988], 0
je 0x46f43e
cmp dword [esi + 0xd18], 0
je 0x46f43e
push 0x4d8120
push esi
mov byte [edi + 0x8d], 1
call fcn.0043f710
jmp 0x46f451
push 0x4d8140
push esi
mov dword [esp + 0x18], 1
call fcn.0043f640
add esp, 8
mov dword [edi + 0x78], 0
xor eax, eax
cmp dword [esp + 0x10], 0
je 0x46f3c0
mov ecx, dword [esp + 0x38]
test eax, eax
pop edi
sete al
mov ebx, 0x38
pop esi
mov byte [ecx], al
mov eax, ebx
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [esp + 0x38]
mov dword [edi + 0x78], 0
pop edi
pop esi
mov byte [eax], 1
mov eax, ebx
pop ebp
pop ebx
add esp, 0x18
ret
pop edi
pop esi
pop ebp
mov eax, 0x2a
pop ebx
add esp, 0x18
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret