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

Disassembly:
mov ecx, dword [0xf33f68]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x612b13
sub esp, 0x8c
mov eax, dword [esp + 0x94]
cmp eax, 0x10ffff
ja 0x61264d
mov edx, dword [esp + 0x90]
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x61261a
movzx ebx, byte [edx + 0xc]
test bl, bl
je 0x6125a3
lea edi, [esp + 0x5c]
xor eax, eax
call fcn.0046ca7a
mov ecx, dword [0xed2a38]
mov ebx, dword [0xed2a3c]
mov ebp, dword [0xed2a40]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x5c], ecx
mov ecx, dword [0xed2a48]
mov ebx, dword [0xed2a4c]
mov ebp, dword [0xed2a50]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x5c]
mov ebx, dword [esp + 0x94]
xor ebp, ebp
jmp 0x61280c
cmp eax, 0x20
jl 0x612608
lea edx, [eax - 0x7f]
cmp edx, 0x20
jbe 0x6125f6
cmp eax, 0xad
je 0x6125f6
cmp eax, 0x300
jl 0x6125e4
mov ecx, dword [0xed2a7c]
test ecx, ecx
jbe 0x6127ff
mov edx, dword [0xed2a78]
cmp dword [edx], eax
jg 0x6126a3
lea ebx, [ecx - 1]
xor ebp, ebp
jmp 0x612666
mov dword [esp + 0x98], 1
add esp, 0x8c
ret
mov dword [esp + 0x98], 0
add esp, 0x8c
ret
mov dword [esp + 0x98], 0
add esp, 0x8c
ret
mov ebx, eax
sar ebx, 1
cmp ecx, ebx
jbe 0x61265f
mov edx, dword [edx]
movzx edx, byte [edx + ebx]
and eax, 1
shl eax, 2
mov ecx, eax
shr dl, cl
cmp eax, 8
sbb eax, eax
and edx, eax
movzx eax, dl
and eax, 3
mov dword [esp + 0x98], eax
add esp, 0x8c
ret
mov dword [esp + 0x98], 0
add esp, 0x8c
ret
mov eax, ebx
call fcn.0046c850
cmp ebp, ebx
jg 0x6126a3
lea esi, [ebp + ebx]
sar esi, 1
cmp ecx, esi
jbe 0x6127f8
lea edi, [edx + esi*8 + 4]
cmp dword [edi], eax
jge 0x612685
lea ebp, [esi + 1]
jmp 0x612666
lea ebx, [edx + esi*8]
cmp dword [ebx], eax
jle 0x612691
lea ebx, [esi - 1]
jmp 0x612666
mov dword [esp + 0x98], 1
add esp, 0x8c
ret
lea edi, [esp + 0x74]
xor eax, eax
call fcn.0046ca7a
mov ecx, dword [0xed2a38]
mov edx, dword [0xed2a3c]
mov ebx, dword [0xed2a40]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x74], ecx
mov ecx, dword [0xed2a48]
mov edx, dword [0xed2a4c]
mov ebx, dword [0xed2a50]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x74]
mov edx, dword [esp + 0x94]
xor eax, eax
jmp 0x612706
lea ecx, [ebx + 0xc]
inc eax
cmp eax, 2
jge 0x61272e
mov ebx, ecx
mov ebp, dword [ecx + 4]
nop
test ebp, ebp
jbe 0x6127ef
mov esi, dword [ecx]
cmp dword [esi], edx
jg 0x612702
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
lea edi, [ebp - 1]
xor ecx, ecx
jmp 0x6127ac
mov ecx, dword [0xed2a5c]
test ecx, ecx
jbe 0x61279b
mov ebx, dword [0xed2a58]
cmp dword [ebx], edx
jg 0x612749
lea ebp, [ecx - 1]
xor eax, eax
jmp 0x61275b
mov dword [esp + 0x98], 1
add esp, 0x8c
ret
cmp eax, ebp
jg 0x612749
lea esi, [eax + ebp]
sar esi, 1
cmp ecx, esi
jbe 0x612794
lea edi, [ebx + esi*8 + 4]
cmp dword [edi], edx
jge 0x612775
lea eax, [esi + 1]
jmp 0x61275b
lea ebp, [ebx + esi*8]
cmp dword [ebp], edx
jle 0x612782
lea ebp, [esi - 1]
jmp 0x61275b
mov dword [esp + 0x98], 2
add esp, 0x8c
ret
mov eax, esi
call fcn.0046c850
xor eax, eax
mov ecx, eax
call fcn.0046c850
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
cmp ecx, edi
jg 0x612702
lea eax, [ecx + edi]
sar eax, 1
cmp ebp, eax
jbe 0x6127e8
lea ebx, [esi + eax*8 + 4]
cmp dword [ebx], edx
jge 0x6127ca
lea ecx, [eax + 1]
jmp 0x6127a4
lea ebx, [esi + eax*8]
cmp dword [ebx], edx
jle 0x6127d6
lea edi, [eax - 1]
jmp 0x6127a4
mov dword [esp + 0x98], 0
add esp, 0x8c
ret
mov ecx, ebp
call fcn.0046c850
xor eax, eax
mov ecx, eax
call fcn.0046c850
mov eax, esi
call fcn.0046c850
xor eax, eax
mov ecx, eax
call fcn.0046c850
lea ecx, [esi + 0xc]
inc ebp
cmp ebp, 2
jge 0x612849
mov esi, ecx
mov edi, dword [ecx + 4]
test edi, edi
jbe 0x612b09
mov ecx, dword [ecx]
cmp dword [ecx], ebx
jg 0x612808
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
lea edx, [edi - 1]
xor eax, eax
mov dword [esp + 0xc], eax
xor eax, eax
jmp 0x612ac1
mov edx, dword [esp + 0x90]
mov ebp, dword [esp + 0x1c]
jmp 0x612808
mov ecx, dword [0xed2a7c]
test ecx, ecx
jbe 0x612aaa
mov ebp, dword [0xed2a78]
cmp dword [ebp], ebx
jg 0x6128af
lea esi, [ecx - 1]
xor edi, edi
jmp 0x612872
xor eax, eax
mov edx, dword [esp + 0x90]
cmp edi, esi
jg 0x6128af
lea edx, [edi + esi]
sar edx, 1
cmp ecx, edx
jbe 0x612aa3
lea eax, [ebp + edx*8 + 4]
cmp dword [eax], ebx
jge 0x612890
lea edi, [edx + 1]
jmp 0x612869
lea esi, [ebp + edx*8]
cmp dword [esi], ebx
jle 0x61289d
lea esi, [edx - 1]
jmp 0x612869
mov dword [esp + 0x98], 1
add esp, 0x8c
ret
lea edi, [esp + 0x44]
call fcn.0046ca7a
mov ecx, dword [0xed2a68]
mov ebp, dword [0xed2a6c]
mov esi, dword [0xed2a70]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], esi
mov dword [esp + 0x44], ecx
mov ecx, dword [0xed2a58]
mov ebp, dword [0xed2a5c]
mov esi, dword [0xed2a60]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x44]
xor ebp, ebp
jmp 0x612900
lea ecx, [esi + 0xc]
inc ebp
cmp ebp, 2
jge 0x612941
mov esi, ecx
mov edi, dword [ecx + 4]
test edi, edi
jbe 0x612a9a
mov ecx, dword [ecx]
cmp dword [ecx], ebx
jg 0x6128fc
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
lea eax, [edi - 1]
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
jmp 0x612a51
xor eax, eax
mov edx, dword [esp + 0x90]
jmp 0x6128fc
movzx ecx, byte [edx + 0xd]
test cl, cl
jne 0x6129b4
lea edi, [esp + 0x20]
call fcn.0046ca77
mov ecx, dword [0xed2a68]
mov edx, dword [0xed2a6c]
mov ebp, dword [0xed2a70]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ecx
mov ecx, dword [0xed2a88]
mov edx, dword [0xed2a8c]
mov ebp, dword [0xed2a90]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ecx
mov ecx, dword [0xed2a78]
mov edx, dword [0xed2a7c]
mov ebp, dword [0xed2a80]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x20]
xor eax, eax
jmp 0x6129ca
mov dword [esp + 0x98], 1
add esp, 0x8c
ret
lea ecx, [edx + 0xc]
inc eax
cmp eax, 3
jge 0x6129b4
mov edx, ecx
mov ebp, dword [ecx + 4]
nop
test ebp, ebp
jbe 0x612a35
mov esi, dword [ecx]
cmp dword [esi], ebx
jg 0x6129c6
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
lea edi, [ebp - 1]
xor ecx, ecx
jmp 0x6129f6
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp ecx, edi
jg 0x6129c6
lea eax, [ecx + edi]
sar eax, 1
cmp ebp, eax
jbe 0x612a2e
lea edx, [esi + eax*8 + 4]
cmp dword [edx], ebx
jge 0x612a10
lea ecx, [eax + 1]
jmp 0x6129ee
lea edx, [esi + eax*8]
cmp dword [edx], ebx
jle 0x612a1c
lea edi, [eax - 1]
jmp 0x6129ee
mov dword [esp + 0x98], 2
add esp, 0x8c
ret
mov ecx, ebp
call fcn.0046c850
xor eax, eax
mov ecx, eax
call fcn.0046c850
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x90]
mov edx, dword [esp + 8]
cmp edx, eax
jg 0x612936
lea ebp, [edx + eax]
sar ebp, 1
cmp edi, ebp
jbe 0x612a91
lea esi, [ecx + ebp*8 + 4]
cmp dword [esi], ebx
jge 0x612a73
lea edx, [ebp + 1]
jmp 0x612a3e
lea esi, [ecx + ebp*8]
cmp dword [esi], ebx
jle 0x612a7f
lea eax, [ebp - 1]
jmp 0x612a3e
mov dword [esp + 0x98], 2
add esp, 0x8c
ret
mov eax, ebp
mov ecx, edi
call fcn.0046c850
xor eax, eax
mov ecx, eax
call fcn.0046c850
mov eax, edx
call fcn.0046c850
xor eax, eax
mov ecx, eax
call fcn.0046c850
xor eax, eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x1c]
mov ebp, dword [esp + 0xc]
cmp ebp, edx
jg 0x61283c
lea eax, [ebp + edx]
sar eax, 1
cmp edi, eax
jbe 0x612b02
lea esi, [ecx + eax*8 + 4]
cmp dword [esi], ebx
jge 0x612ae4
lea ebp, [eax + 1]
jmp 0x612ab3
lea edx, [ecx + eax*8]
cmp dword [edx], ebx
jle 0x612af0
lea edx, [eax - 1]
jmp 0x612ab3
mov dword [esp + 0x98], 0
add esp, 0x8c
ret
mov ecx, edi
call fcn.0046c850
xor eax, eax
mov ecx, eax
call fcn.0046c850
nop
call fcn.0046b3d0
jmp fcn.00612500