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

Disassembly:
push 0xffffffffffffffff
push 0x498650
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c
push ebx
push ebp
push esi
push edi
mov ebx, ecx
xor ebp, ebp
lea ecx, [esp + 0x20]
mov dword [esp + 0x64], ebp
call fcn.0046eb20
mov al, byte [esp + 0x6c]
mov dword [esp + 0x28], ebp
mov byte [esp + 0x24], al
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
lea ecx, [esp + 0x38]
mov byte [esp + 0x64], 1
call fcn.00473990
push ebp
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 2
call fcn.0046eb50
push ebp
lea ecx, [esp + 0x14]
mov byte [esp + 0x68], 3
call fcn.0046eb50
mov esi, dword [esp + 0x70]
mov byte [esp + 0x64], 4
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
push ecx
push eax
push eax
call fcn.0040b060
add esp, 0xc
mov edi, eax
mov eax, dword [esi + 8]
mov ecx, esi
push eax
push edi
call fcn.0040ab00
lea ecx, [ebx + 0x38]
mov dword [esi + 8], edi
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 4]
cmp eax, ebp
jne 0x4125ac
mov dword [esp + 0x70], ebp
jmp 0x4125c6
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x70], edx
cmp word [esp + 0x70], 0
jle 0x41263e
mov edi, dword [ebx + 0x3c]
push ecx
movsx eax, bp
mov ecx, esp
mov dword [esp + 0x20], esp
lea edx, [eax + eax*2]
lea edi, [edi + edx*8]
push edi
call fcn.0046eb30
lea ecx, [esp + 0x24]
call fcn.0046ee50
lea eax, [edi + 4]
lea ecx, [esp + 0x24]
push eax
call fcn.00413ab0
mov cx, word [edi + 0x14]
lea edx, [esp + 0x20]
push ecx
mov word [esp + 0x38], cx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.0046eb30
lea ecx, [esp + 0x18]
call fcn.0046ee50
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x14]
push eax
call fcn.0046ef00
test al, al
jne 0x4126de
inc ebp
cmp bp, word [esp + 0x70]
jl 0x4125ce
mov ebp, 3
mov dword [esp + 0x70], 0
sub esp, 0x24
mov ecx, 0x4b6410
mov eax, esp
mov dword [esp + 0x40], esp
push 0
push eax
call fcn.0047cb30
lea ecx, [esp + 0x5c]
call fcn.00473b40
lea ecx, [esp + 0x38]
call fcn.00473f70
test ax, ax
je 0x4129d7
push 0
lea ecx, [esp + 0x3c]
call fcn.00473f60
mov edi, eax
cmp esi, edi
je 0x41288f
mov ecx, edi
call fcn.0040a860
mov ecx, esi
mov ebx, eax
call fcn.0040a860
cmp ebx, eax
ja 0x4127ea
mov edx, dword [esi + 4]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push edx
push eax
push ecx
call fcn.0040b060
mov ecx, dword [esi + 8]
add esp, 0xc
push ecx
push eax
mov ecx, esi
call fcn.0040ab00
mov ecx, edi
call fcn.0040a860
mov edx, dword [esi + 4]
lea eax, [edx + eax*4]
mov dword [esi + 8], eax
jmp 0x41288f
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x24]
cmp esi, edx
mov dword [esp + 0x70], ecx
je 0x412942
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4126fe
xor edi, edi
jmp 0x412707
mov edi, dword [esp + 0x2c]
sub edi, eax
sar edi, 2
mov ecx, esi
call fcn.0040a860
cmp edi, eax
ja 0x412736
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push eax
push ecx
push edx
call fcn.0040b060
mov ecx, dword [esi + 8]
add esp, 0xc
push ecx
push eax
mov ecx, esi
call fcn.0040ab00
jmp 0x41277d
mov ecx, esi
call fcn.0040aae0
lea ecx, [esp + 0x24]
mov edi, eax
call fcn.0040a860
cmp eax, edi
ja 0x412794
mov edi, dword [esp + 0x28]
mov ecx, esi
call fcn.0040a860
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x28]
lea edi, [edi + eax*4]
push ecx
push edi
push edx
call fcn.0040b060
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x38]
add esp, 0xc
push eax
push ecx
push edi
mov ecx, esi
call fcn.00401c00
lea ecx, [esp + 0x24]
call fcn.0040a860
mov edx, dword [esi + 4]
lea eax, [edx + eax*4]
mov dword [esi + 8], eax
jmp 0x412942
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push ecx
push edx
mov ecx, esi
call fcn.0040ab00
mov eax, dword [esi + 4]
push eax
call fcn.0048d500
add esp, 4
lea ecx, [esp + 0x24]
call fcn.0040a860
test eax, eax
jge 0x4127be
xor eax, eax
shl eax, 2
push eax
call fcn.0048db76
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
add esp, 4
mov dword [esi + 4], eax
push eax
push ecx
push edx
mov ecx, esi
call fcn.00401c00
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
jmp 0x412942
mov ecx, edi
call fcn.0040a860
mov ecx, esi
mov ebx, eax
call fcn.0040aae0
cmp ebx, eax
ja 0x41283e
mov ebx, dword [edi + 4]
mov ecx, esi
call fcn.0040a860
mov ecx, dword [esi + 4]
lea ebx, [ebx + eax*4]
mov eax, dword [edi + 4]
push ecx
push ebx
push eax
call fcn.0040b060
mov edx, dword [esi + 8]
mov eax, dword [edi + 8]
add esp, 0xc
mov ecx, esi
push edx
push eax
push ebx
call fcn.00401c00
mov ecx, edi
call fcn.0040a860
mov ecx, dword [esi + 4]
lea edx, [ecx + eax*4]
mov dword [esi + 8], edx
jmp 0x41288f
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
mov ecx, esi
call fcn.0040ab00
mov eax, dword [esi + 4]
push eax
call fcn.0048d500
add esp, 4
mov ecx, edi
call fcn.0040a860
test eax, eax
jge 0x412866
xor eax, eax
lea edx, [eax*4]
push edx
call fcn.0048db76
add esp, 4
mov dword [esi + 4], eax
mov ecx, dword [edi + 8]
mov edi, dword [edi + 4]
push eax
push ecx
push edi
mov ecx, esi
call fcn.00401c00
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
push 0
mov ecx, esi
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0046eb30
lea ecx, [esp + 0x14]
call fcn.0046ee50
push 1
lea ecx, [esp + 0x14]
call fcn.0046ee40
push 1
lea ecx, [esp + 0x70]
mov bl, al
call fcn.0046ee40
cmp bl, al
jne 0x4128ea
push 2
lea ecx, [esp + 0x14]
call fcn.0046ee40
push 2
lea ecx, [esp + 0x70]
mov bl, al
call fcn.0046ee40
cmp bl, al
je 0x4129e4
dec ebp
test bp, bp
jne 0x41264b
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
mov ecx, esi
call fcn.00413d30
push ecx
lea eax, [esp + 0x70]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0046eb30
lea ecx, [esp + 0x24]
call fcn.0046ee50
push esi
lea ecx, [esp + 0x28]
mov word [esp + 0x38], 0
call fcn.00413ab0
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x20]
push edx
push 1
mov eax, dword [ecx + 8]
push eax
call fcn.004142a0
lea ecx, [esp + 0x10]
mov byte [esp + 0x64], 3
call fcn.0046ec60
lea ecx, [esp + 0x14]
mov byte [esp + 0x64], 2
call fcn.0046ec60
lea ecx, [esp + 0x38]
mov byte [esp + 0x64], 1
call fcn.00473a90
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x6c], 5
call fcn.0040ab00
mov edx, dword [esp + 0x28]
push edx
call fcn.0048d500
xor eax, eax
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov byte [esp + 0x64], al
call fcn.0046ec60
lea ecx, [esp + 0x6c]
mov dword [esp + 0x64], 0xffffffff
call fcn.0046ec60
mov ecx, dword [esp + 0x5c]
mov ax, word [esp + 0x70]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x58
ret 8
mov dword [esp + 0x70], 0
jmp 0x4128f4
push ecx
lea eax, [esp + 0x70]
mov edi, 1
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov dword [esp + 0x78], edi
call fcn.0046eb30
lea ecx, [esp + 0x24]
call fcn.0046ee50
push esi
lea ecx, [esp + 0x28]
mov word [esp + 0x38], di
call fcn.00413ab0
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x20]
push edx
mov eax, dword [ecx + 8]
push eax
call fcn.00413d80
jmp 0x412942