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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x4a3071
sub esp, 0xc8
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x4a3051
mov ecx, dword [esp + 0xcc]
movzx edx, byte [ecx]
cmp dl, 0x2d
jne 0x4a3039
sete dl
lea ebx, [eax - 1]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebx, ecx
cmp ebp, 1
jne 0x4a25e2
cmp byte [ebx], 0x30
je 0x4a3006
test ebp, ebp
je 0x4a2f61
mov byte [esp + 0x2e], dl
xor esi, esi
xor edi, edi
jmp 0x4a27b9
inc edx
cmp edx, ebx
jge 0x4a262b
jae 0x4a306a
movzx esi, byte [ebp + edx]
xchg esi, eax
cmp al, 0x2e
xchg esi, eax
je 0x4a262b
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jb 0x4a2c86
xchg esi, eax
cmp al, 0x39
xchg esi, eax
xchg esi, ebx
setbe bl
xchg esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a25f7
test edx, edx
je 0x4a2bd3
jl 0x4a3063
cmp edx, ebx
ja 0x4a3063
mov dword [esp + 0x40], edx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x9c], ebp
movsd qword [esp + 0x8c], xmm0
lea eax, [0x7b0440]
mov dword [esp], eax
mov ecx, dword [0xb7d38c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
call fcn.0040f2c0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
sub eax, ecx
mov edx, eax
neg eax
sar eax, 0x1f
and eax, ecx
mov ebx, dword [esp + 0x9c]
add eax, ebx
mov ebp, dword [esp + 0x10]
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
movzx edi, byte [esp + 0x14]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4a2b06
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x88], edx
mov dword [esp + 0xc4], eax
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0x7fffffff
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
call fcn.0044a350
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
setg dl
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x10], ebx
xchg ebp, ebx
setb bl
xchg ebp, ebx
cmp ecx, eax
sete al
and eax, ebp
or edx, eax
test dl, dl
jne 0x4a2a53
mov eax, ebx
mov edx, dword [esp + 0x38]
mov ebp, edx
mul edx
mov esi, dword [esp + 0x6c]
test esi, esi
xchg edi, ebx
seta bl
xchg edi, ebx
mov esi, dword [esp + 0x70]
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x2f], al
xchg esi, eax
xchg esi, ebx
setg bl
xchg esi, ebx
imul ecx, ebp
add ecx, edx
mov edx, dword [esp + 0x3c]
imul ebx, edx
add ecx, ebx
movzx ebx, byte [esp + 0x2f]
and edi, ebx
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4a28f7
mov edx, dword [esp + 0x74]
add edx, eax
mov eax, dword [esp + 0x78]
adc eax, ecx
test eax, eax
sete cl
test edx, edx
setb bl
test eax, eax
xchg ebp, ebx
setl bl
xchg ebp, ebx
and ecx, ebx
or ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4a2844
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0xc4]
mov ebp, ecx
mov esi, edx
mov edi, eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
movzx edx, byte [esp + 0x2e]
test ebp, ebp
je 0x4a2f21
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], edi
movzx edx, byte [ebx]
cmp dl, 0x2e
jne 0x4a2e5e
mov dword [esp + 0x68], ebp
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.004a2280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
test edx, edx
jne 0x4a2dab
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
test ebx, ebx
je 0x4a2817
cmp byte [ebp], 0x2e
je 0x4a2d4a
mov edx, ebx
xor esi, esi
xor edi, edi
xor edx, edx
mov dword [esp + 0x6c], edx
movsd xmm0, qword [0x8ac270]
mov edx, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x68]
cmp edi, edx
je 0x4a2c8d
xor edx, edx
jmp 0x4a25f8
mov dword [esp], 0
lea eax, [0x81d3d3]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x17
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x5c], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x5c]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a28e9
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xb4]
call fcn.0044f0d0
jmp 0x4a28b8
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00449f40
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x94], xmm0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call fcn.00449f40
movsd xmm0, qword [esp + 8]
movsd xmm1, qword [esp + 0x8c]
divsd xmm0, xmm1
movsd xmm1, qword [esp + 0x94]
mulsd xmm1, xmm0
movsd qword [esp], xmm1
call fcn.00449ea0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x80]
add eax, ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x84]
adc edx, ecx
test edx, edx
setl cl
sete bl
test eax, eax
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebx, ebp
or ebx, ecx
test bl, bl
jne 0x4a29a0
mov ecx, edx
jmp 0x4a2765
mov dword [esp], 0
lea eax, [0x81d3d3]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x17
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x58]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a2a45
mov eax, dword [esp + 0xac]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xac]
call fcn.0044f0d0
jmp 0x4a2a14
mov dword [esp], 0
lea eax, [0x81d3d3]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x17
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x48]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a2af8
mov eax, dword [esp + 0xb8]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xb8]
call fcn.0044f0d0
jmp 0x4a2ac7
mov dword [esp], 0
lea eax, [0x81a8c2]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x13
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
lea eax, [0x8171d7]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0xd
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x20], eax
call fcn.0043dc90
nop
mov eax, dword [esp + 0x24]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x50], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x50]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a2bc5
mov eax, dword [esp + 0xb0]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xb0]
call fcn.0044f0d0
jmp 0x4a2b94
mov dword [esp], 0
lea eax, [0x8226b5]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1f
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x60], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x60]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a2c78
mov eax, dword [esp + 0xa4]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xa4]
call fcn.0044f0d0
jmp 0x4a2c47
xor esi, esi
jmp 0x4a2625
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4a283d
mov dword [esp], 0
lea eax, [0x81d3d3]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x17
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x64]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a2d3c
mov eax, dword [esp + 0xbc]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xbc]
call fcn.0044f0d0
jmp 0x4a2d0b
mov dword [esp + 0x7c], ebx
lea eax, [ebx - 1]
mov dword [esp + 0x88], eax
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 1
add eax, ebp
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004a2410
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
cmp ebx, eax
xchg esi, ebx
setne bl
xchg esi, ebx
movsd xmm0, qword [esp + 0x10]
mov eax, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x34]
jmp 0x4a282d
mov dword [esp], 0
lea eax, [0x81d3d3]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x17
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x4c]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a2e50
mov eax, dword [esp + 0xc0]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xc0]
call fcn.0044f0d0
jmp 0x4a2e1f
cmp dl, 0x30
jb 0x4a2f1a
cmp dl, 0x39
setbe dl
test dl, dl
jne 0x4a27d5
mov dword [esp], 0
lea edx, [0x81d3d3]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x17
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x44]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a2f0c
mov eax, dword [esp + 0xa8]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xa8]
call fcn.0044f0d0
jmp 0x4a2edb
xor edx, edx
jmp 0x4a2e6d
test dl, dl
je 0x4a2f5b
xor eax, eax
sub eax, esi
mov ecx, 0
sbb ecx, edi
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xc8
ret
mov eax, esi
mov ecx, edi
jmp 0x4a2f30
mov dword [esp], 0
lea edx, [0x81d3d3]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x17
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x54]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x4a2ff8
mov eax, dword [esp + 0xa0]
mov dword [edi], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea eax, [0x8b3870]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edi
add esp, 0xc8
ret
mov eax, dword [esp + 0xa0]
call fcn.0044f0d0
jmp 0x4a2fc7
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xc8
ret
cmp dl, 0x2b
jne 0x4a3046
cmp dl, 0x2d
jmp 0x4a25c2
mov ebx, ecx
mov ebp, eax
xor edx, edx
jmp 0x4a25d4
mov ecx, dword [esp + 0xcc]
mov ebp, eax
mov ebx, ecx
xor edx, edx
jmp 0x4a25d4
call fcn.004288c0
ud2
call fcn.004287c0
ud2
call fcn.0044d880
jmp fcn.004a2580