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

Disassembly:
push 0xffffffffffffffff
push 0x498cb7
mov eax, dword fs:[0]
push eax
sub esp, 0x174
mov eax, dword [0x4c54e8]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c54e8]
xor eax, esp
push eax
lea eax, [esp + 0x188]
mov dword fs:[0], eax
mov eax, dword [esp + 0x198]
mov ecx, dword [0x4c7aac]
mov ebx, dword [esp + 0x19c]
mov edi, dword [esp + 0x1a0]
mov esi, dword [esp + 0x1a4]
mov dword [esp + 0x18], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
je 0x40f374
push 0x49fbe0
call fcn.004500d9
mov ecx, dword [0x4c7aac]
cmp dword [esi + 0x14], 0
jne 0x40f390
test ecx, ecx
je 0x40f388
push 0x49fbcc
call fcn.004500d9
or eax, 0xffffffff
jmp 0x40f937
mov ebp, 0x10
cmp dword [esi + 0x18], ebp
jb 0x40f39f
mov esi, dword [esi + 4]
jmp 0x40f3a2
add esi, 4
lea ecx, [esp + 0x144]
push esi
push ecx
call fcn.0044c6b9
add esp, 8
test al, al
jne 0x40f3d5
mov ecx, dword [0x4c7aac]
test ecx, ecx
je 0x40f3cb
push 0x49fbb4
call fcn.004500d9
mov eax, 0xfffffffe
jmp 0x40f937
push edi
lea edx, [esp + 0x3c]
push ebx
push edx
call fcn.0044dd69
add esp, 0xc
mov ecx, dword [0x4c7aac]
test ecx, ecx
mov dword [esp + 0x190], 0
je 0x40f40d
cmp dword [esp + 0x50], ebp
mov eax, dword [esp + 0x3c]
jae 0x40f407
lea eax, [esp + 0x3c]
push eax
call fcn.004500d9
cmp dword [esp + 0x50], ebp
mov eax, dword [esp + 0x3c]
jae 0x40f41b
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x168]
push eax
call fcn.004611d9
add esp, 8
test eax, eax
je 0x40f4f5
mov eax, 0x20
lea ecx, [esp + 0x164]
lea edx, [esp + 0x144]
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f461
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f449
test eax, eax
je 0x40f4be
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x40f4b0
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40f4be
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x40f4b0
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40f4be
movzx ebx, byte [ecx]
movzx esi, byte [edx]
sub esi, ebx
jne 0x40f4b0
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40f4be
movzx ecx, byte [ecx]
movzx esi, byte [edx]
sub esi, ecx
je 0x40f4be
test esi, esi
mov eax, 1
jg 0x40f4c0
or eax, 0xffffffff
jmp 0x40f4c0
xor eax, eax
test eax, eax
jne 0x40f4f5
mov ecx, dword [0x4c7aac]
test ecx, ecx
je 0x40f4d8
push 0x49fb98
call fcn.004500d9
cmp dword [esp + 0x50], ebp
jb 0x40f4eb
mov edx, dword [esp + 0x3c]
push edx
call fcn.00475c61
add esp, 4
mov eax, 1
jmp 0x40f937
mov bl, byte [esp + 0x1a8]
test bl, bl
je 0x40f69a
push 4
push 0x49fb90
lea ecx, [esp + 0x78]
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
call fcn.00404829
push 0xffffffffffffffff
push 0
push edi
lea ecx, [esp + 0x7c]
mov byte [esp + 0x19c], 1
call fcn.00404649
mov eax, dword [esp + 0x14]
push edi
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.0044dd69
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x19c], 2
call fcn.00404749
cmp dword [esp + 0x34], ebp
mov byte [esp + 0x190], 1
jb 0x40f589
mov edx, dword [esp + 0x20]
push edx
call fcn.00475c61
add esp, 4
cmp dword [esp + 0x50], ebp
mov eax, dword [esp + 0x3c]
jae 0x40f597
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x168]
push eax
call fcn.004611d9
add esp, 8
test eax, eax
je 0x40f67c
mov eax, 0x20
lea ecx, [esp + 0x164]
lea edx, [esp + 0x144]
lea ebx, [ebx]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40f5e1
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40f5c9
test eax, eax
je 0x40f646
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x40f630
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40f641
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x40f630
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40f641
movzx esi, byte [edx]
movzx ebp, byte [ecx]
sub esi, ebp
jne 0x40f630
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40f641
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40f641
test esi, esi
mov eax, 1
lea ebp, [eax + 0xf]
jg 0x40f648
or eax, 0xffffffff
jmp 0x40f648
mov ebp, 0x10
xor eax, eax
test eax, eax
jne 0x40f67c
mov ecx, dword [0x4c7aac]
test ecx, ecx
je 0x40f660
push 0x49fb78
call fcn.004500d9
lea ecx, [esp + 0x70]
call fcn.00413419
lea ecx, [esp + 0x38]
call fcn.00413419
mov eax, 2
jmp 0x40f937
cmp dword [esp + 0x88], ebp
mov byte [esp + 0x190], 0
jb 0x40f69a
mov edx, dword [esp + 0x74]
push edx
call fcn.00475c61
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 0
push eax
push ecx
push 0x500000
lea ecx, [esp + 0x9c]
call fcn.00460bf9
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], 0
mov byte [esp + 0x58], 0
test bl, bl
mov byte [esp + 0x190], 4
je 0x40f6e8
push 4
push 0x49fb90
lea ecx, [esp + 0x5c]
call fcn.00404829
cmp dword [edi + 0x18], ebp
jb 0x40f6f2
mov edx, dword [edi + 4]
jmp 0x40f6f5
lea edx, [edi + 4]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40f6fa
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x5c]
call fcn.004048f9
lea edx, [esp + 0x54]
push edx
push edi
lea ecx, [esp + 0x94]
call fcn.00461019
mov ecx, dword [0x4c7aac]
xor edi, edi
cmp ecx, edi
je 0x40f738
push 0x49fb60
call fcn.004500d9
lea ecx, [esp + 0x8c]
call fcn.00460869
test al, al
je 0x40f8d3
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x90]
call fcn.0045f9a9
cmp eax, edi
jne 0x40f7ca
mov ecx, dword [0x4c7aac]
cmp ecx, edi
je 0x40f775
push 0x49fb48
call fcn.004500d9
cmp dword [esp + 0x6c], ebp
jb 0x40f788
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00475c61
add esp, 4
lea ecx, [esp + 0x8c]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], edi
mov byte [esp + 0x58], 0
mov byte [esp + 0x190], 0
call fcn.00460f19
cmp dword [esp + 0x50], ebp
jb 0x40f7c0
mov edx, dword [esp + 0x3c]
push edx
call fcn.00475c61
add esp, 4
mov eax, 0xfffffffd
jmp 0x40f937
mov ecx, 0x20
lea edx, [esp + 0x144]
lea ecx, [ecx]
mov esi, dword [edx]
cmp esi, dword [eax]
jne 0x40f7f1
sub ecx, 4
add eax, 4
add edx, 4
cmp ecx, 4
jae 0x40f7d9
cmp ecx, edi
je 0x40f84e
movzx ebx, byte [eax]
movzx esi, byte [edx]
sub esi, ebx
jne 0x40f840
sub ecx, 1
add eax, 1
add edx, 1
cmp ecx, edi
je 0x40f84e
movzx ebx, byte [eax]
movzx esi, byte [edx]
sub esi, ebx
jne 0x40f840
sub ecx, 1
add eax, 1
add edx, 1
cmp ecx, edi
je 0x40f84e
movzx ebx, byte [eax]
movzx esi, byte [edx]
sub esi, ebx
jne 0x40f840
sub ecx, 1
add eax, 1
add edx, 1
cmp ecx, edi
je 0x40f84e
movzx eax, byte [eax]
movzx esi, byte [edx]
sub esi, eax
je 0x40f84e
cmp esi, edi
mov eax, 1
jg 0x40f850
or eax, 0xffffffff
jmp 0x40f850
xor eax, eax
cmp eax, edi
mov ecx, dword [0x4c7aac]
je 0x40f898
cmp ecx, edi
je 0x40f868
push 0x49fb34
call fcn.004500d9
lea ecx, [esp + 0x54]
call fcn.00413419
lea ecx, [esp + 0x8c]
mov byte [esp + 0x190], 0
call fcn.00460f19
lea ecx, [esp + 0x38]
call fcn.00413419
mov eax, 0xfffffffc
jmp 0x40f937
cmp ecx, edi
je 0x40f8a6
push 0x49fb20
call fcn.004500d9
lea ecx, [esp + 0x54]
call fcn.00413419
lea ecx, [esp + 0x8c]
mov byte [esp + 0x190], 0
call fcn.00460f19
lea ecx, [esp + 0x38]
call fcn.00413419
mov eax, 3
jmp 0x40f937
mov ecx, dword [0x4c7aac]
cmp ecx, edi
je 0x40f8e7
push 0x49fb0c
call fcn.004500d9
cmp dword [esp + 0x6c], ebp
jb 0x40f8fa
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00475c61
add esp, 4
lea ecx, [esp + 0x8c]
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], edi
mov byte [esp + 0x58], 0
mov byte [esp + 0x190], 0
call fcn.00460f19
cmp dword [esp + 0x50], ebp
jb 0x40f932
mov edx, dword [esp + 0x3c]
push edx
call fcn.00475c61
add esp, 4
mov eax, 0xfffffffb
mov ecx, dword [esp + 0x188]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.004761ea
add esp, 0x180
ret