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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x10]
cmp eax, dword [ecx + 8]
jbe 0x498b7e
sub esp, 0x90
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp + 8], edx
call fcn.004965b0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x7c], ebx
mov ebp, dword [esp + 0xa0]
mov dword [esp], ebp
mov esi, dword [esp + 0xa4]
mov dword [esp + 4], esi
mov edi, dword [esp + 0xa8]
mov dword [esp + 8], edi
call fcn.004965b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x8c]
cmp dword [esp + 0xc], ecx
jne 0x497fdb
mov dword [esp], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00404100
movzx eax, byte [esp + 0xc]
test al, al
jne 0x497fed
mov dword [esp + 0xac], 0xffffffff
add esp, 0x90
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp + 8], edx
call fcn.004957f0
mov eax, dword [esp + 0xc]
cmp eax, 0x11
ja 0x4983ef
cmp eax, 0xc
ja 0x49827c
cmp eax, 1
je 0x4981e4
lea ecx, [eax - 2]
cmp ecx, 4
jbe 0x498119
cmp eax, 7
jb 0x4988e3
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00496780
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 8], edx
call fcn.00496780
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
cmp ecx, eax
sete dl
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x38]
cmp ebp, ebx
xchg esi, ebx
setb bl
xchg esi, ebx
cmp ecx, eax
xchg edi, ebx
setb bl
xchg edi, ebx
and esi, edx
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
jne 0x498107
cmp ebp, ebx
seta bl
cmp ecx, eax
seta al
and ebx, edx
or eax, ebx
test al, al
je 0x4980f5
mov dword [esp + 0xac], 1
add esp, 0x90
ret
mov dword [esp + 0xac], 0
add esp, 0x90
ret
mov dword [esp + 0xac], 0xffffffff
add esp, 0x90
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00495350
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 8], edx
call fcn.00495350
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
sete dl
setl bl
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
cmp esi, ebp
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, edx
or ebx, edi
test bl, bl
jne 0x4981d2
cmp esi, ebp
seta bl
cmp ecx, eax
setg al
and ebx, edx
or eax, ebx
test al, al
je 0x4981c0
mov dword [esp + 0xac], 1
add esp, 0x90
ret
mov dword [esp + 0xac], 0
add esp, 0x90
ret
mov dword [esp + 0xac], 0xffffffff
add esp, 0x90
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00493b70
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x23], al
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 8], ecx
call fcn.00493b70
movzx eax, byte [esp + 0x23]
cmp byte [esp + 0xc], al
je 0x49826a
test al, al
je 0x498258
mov dword [esp + 0xac], 1
add esp, 0x90
ret
mov dword [esp + 0xac], 0xffffffff
add esp, 0x90
ret
mov dword [esp + 0xac], 0
add esp, 0x90
ret
cmp eax, 0xe
jbe 0x49836b
lea ecx, [eax - 0xf]
cmp ecx, 1
jbe 0x49829d
cmp eax, 0x11
jne 0x4988e3
xor eax, eax
jmp 0x498a6d
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00494bf0
movsd xmm0, qword [esp + 0xc]
movsd qword [esp + 0x5c], xmm0
movsd xmm1, qword [esp + 0x14]
movsd qword [esp + 0x64], xmm1
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], eax
call fcn.00494bf0
movsd xmm0, qword [esp + 0xc]
movsd xmm1, qword [esp + 0x14]
movsd qword [esp + 0x54], xmm1
movsd xmm2, qword [esp + 0x5c]
movsd qword [esp], xmm2
movsd qword [esp + 8], xmm0
call fcn.00498c70
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49833d
mov dword [esp + 0xac], eax
add esp, 0x90
ret
movsd xmm0, qword [esp + 0x64]
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0x54]
movsd qword [esp + 8], xmm0
call fcn.00498c70
mov eax, dword [esp + 0x10]
mov dword [esp + 0xac], eax
add esp, 0x90
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00495020
movsd xmm0, qword [esp + 0xc]
movsd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], eax
call fcn.00495020
movsd xmm0, qword [esp + 0xc]
movsd xmm1, qword [esp + 0x6c]
movsd qword [esp], xmm1
movsd qword [esp + 8], xmm0
call fcn.00498c70
mov eax, dword [esp + 0x10]
mov dword [esp + 0xac], eax
add esp, 0x90
ret
cmp eax, 0x16
ja 0x498736
cmp eax, 0x12
je 0x49863b
cmp eax, 0x14
je 0x498414
cmp eax, 0x16
je 0x498754
jmp 0x4988e3
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x14], esi
call fcn.00498b90
movzx eax, byte [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test al, al
jne 0x49862d
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp + 8], edx
call fcn.00494cc0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004965b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4984bb
mov eax, dword [eax + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00496910
mov eax, dword [esp + 8]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xa8]
mov dword [esp + 8], esi
call fcn.00494cc0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004965b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x498535
mov eax, dword [eax + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00496910
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x88]
mov dword [esp], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.00497f20
mov eax, dword [esp + 0x18]
test eax, eax
je 0x498591
mov dword [esp + 0xac], eax
add esp, 0x90
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00494cc0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 8], ebx
call fcn.00494cc0
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.00497f20
mov eax, dword [esp + 0x18]
mov dword [esp + 0xac], eax
add esp, 0x90
ret
mov dword [esp + 0xac], ecx
add esp, 0x90
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x14], esi
call fcn.00498b90
movzx eax, byte [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test al, al
jne 0x498728
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00495fe0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 8], ecx
call fcn.00495fe0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
ja 0x498716
jae 0x498704
mov dword [esp + 0xac], 1
add esp, 0x90
ret
mov dword [esp + 0xac], 0
add esp, 0x90
ret
mov dword [esp + 0xac], 0xffffffff
add esp, 0x90
ret
mov dword [esp + 0xac], ecx
add esp, 0x90
ret
cmp eax, 0x18
je 0x4987ea
cmp eax, 0x19
jne 0x49874b
xor eax, eax
jmp 0x498955
cmp eax, 0x1a
jne 0x4988e3
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00495fe0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 8], ecx
call fcn.00495fe0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
ja 0x4987d8
jae 0x4987c6
mov dword [esp + 0xac], 1
add esp, 0x90
ret
mov dword [esp + 0xac], 0
add esp, 0x90
ret
mov dword [esp + 0xac], 0xffffffff
add esp, 0x90
ret
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
call fcn.00496460
mov eax, dword [esp + 0xc]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 8], edx
call fcn.00496460
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x80]
mov dword [esp], edx
mov ebx, dword [esp + 0x40]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.00403270
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x4988d1
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
call fcn.00403270
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x4988bf
mov dword [esp + 0xac], 1
add esp, 0x90
ret
mov dword [esp + 0xac], 0
add esp, 0x90
ret
mov dword [esp + 0xac], 0xffffffff
add esp, 0x90
ret
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x80]
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x508655]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x15
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00450870
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409f30
mov eax, dword [esp + 8]
lea ecx, [0x4ec7e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00438510
mov ecx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov edx, dword [esp + 0x98]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 8], ebx
call fcn.00495fa0
mov eax, dword [esp + 0x28]
cmp dword [esp + 0xc], eax
jle 0x498a54
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov edx, dword [esp + 0x98]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.00494ea0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xa8]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x28]
mov dword [esp + 0xc], edi
call fcn.00494ea0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x88]
mov dword [esp], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.00497f20
mov eax, dword [esp + 0x18]
test eax, eax
je 0x49894e
mov dword [esp + 0xac], eax
add esp, 0x90
ret
mov dword [esp + 0xac], 0
add esp, 0x90
ret
mov ecx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov edx, dword [esp + 0x98]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 8], ebx
call fcn.00495830
mov eax, dword [esp + 0x24]
cmp dword [esp + 0xc], eax
jle 0x498b6c
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov edx, dword [esp + 0x98]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.004950e0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xa8]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], edi
call fcn.004950e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x88]
mov dword [esp], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.00497f20
mov eax, dword [esp + 0x18]
test eax, eax
je 0x498a66
mov dword [esp + 0xac], eax
add esp, 0x90
ret
mov dword [esp + 0xac], 0
add esp, 0x90
ret
call fcn.00463e70
jmp fcn.00497f20