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

Disassembly:
mov ecx, dword [0x57adc8]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x4233d9
sub esp, 0xc4
mov eax, dword [esp + 0xc8]
test byte [eax], al
mov dword [esp], eax
call fcn.004032f0
mov eax, dword [esp + 4]
test eax, eax
jge 0x422e6c
mov eax, 0x186a0
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0xc8]
lea edx, [ecx + 0x68]
mov dword [esp], edx
call fcn.00403650
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 0x70]
lea edx, [eax + 0xa0]
mov dword [esp + 0xc0], edx
lea ebx, [eax + 0xa8]
mov dword [esp + 0xbc], ebx
lea ebp, [eax + 0xb0]
mov dword [esp + 0xb8], ebp
lea esi, [eax + 0x80]
mov dword [esp + 0xb4], esi
lea edi, [eax + 0x90]
mov dword [esp + 0xb0], edi
lea edi, [eax + 0x88]
mov dword [esp + 0xac], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], edi
mov dword [esp], ecx
call fcn.00403650
mov eax, dword [esp + 4]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0xc0]
mov dword [esp], edx
call fcn.00403390
mov eax, dword [esp + 4]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
call fcn.00403390
mov eax, dword [esp + 4]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0xb8]
mov dword [esp], edx
call fcn.00403390
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
call fcn.00424310
mov eax, dword [esp + 8]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0xb4]
mov dword [esp], ebx
call fcn.00403650
mov eax, dword [esp + 4]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp], edx
call fcn.00403650
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 0x7c]
mov dword [esp + 0x64], edx
mov ebx, dword [esp + 4]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 8]
mov dword [esp + 0x5c], ebp
mov esi, dword [esp + 0xac]
mov dword [esp], esi
call fcn.00403650
mov eax, dword [esp + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp], edx
call fcn.00403650
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x80]
add edx, ebx
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x7c]
adc ebx, ebp
mov ebp, dword [esp + 0x78]
add ebp, edx
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x74]
adc edx, ebx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x70]
add ebx, esi
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x6c]
adc esi, edi
mov edi, dword [esp + 0x60]
add edi, ebx
mov dword [esp + 0x20], edi
mov ebx, dword [esp + 0x5c]
adc esi, ebx
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
add ebx, ebp
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
adc ebp, edi
add eax, ebx
mov dword [esp + 0x88], eax
adc ecx, ebp
mov dword [esp + 0x24], ecx
cmp esi, edx
setl bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
cmp edi, eax
setb cl
and ecx, ebp
or ebx, ecx
test bl, bl
jne 0x4230be
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
jmp 0x42322d
mov dword [esp + 0x58], esi
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x5c]
mov ebx, dword [esp + 0x54]
cvtsi2sd xmm0, ebx
movsd xmm1, qword [0x4e42f0]
divsd xmm0, xmm1
movsd xmm1, qword [0x4e4208]
addsd xmm1, xmm0
movsd qword [esp + 0xa4], xmm1
mov ebx, dword [esp + 0x48]
sub ebx, ecx
mov ecx, dword [esp + 0x4c]
sbb ecx, edx
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.004633d0
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x9c], xmm0
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.004633d0
movsd xmm0, qword [esp + 0x9c]
divsd xmm0, qword [esp + 8]
movsd qword [esp + 0x9c], xmm0
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
call fcn.004633d0
movsd xmm0, qword [esp + 0x9c]
mulsd xmm0, qword [esp + 8]
movsd qword [esp], xmm0
call fcn.00463330
mov eax, dword [esp + 8]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0xc8]
mov ebx, dword [edx + 0x58]
mov dword [esp + 0x7c], ebx
mov ebp, dword [edx + 0x5c]
mov dword [esp + 0x78], ebp
mov esi, dword [esp + 0x50]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x48]
mov dword [esp], esi
call fcn.004633d0
movsd xmm0, qword [esp + 0xa4]
mulsd xmm0, qword [esp + 8]
movsd qword [esp], xmm0
call fcn.00463330
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x7c]
add edx, ebx
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x78]
adc ebx, ebp
cmp ecx, ebx
setl cl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp edx, eax
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, ebp
or esi, ecx
xchg esi, eax
test al, al
xchg esi, eax
je 0x42321a
mov ebx, dword [esp + 0xc]
jmp 0x42321c
mov eax, edx
mov edx, dword [esp + 0x14]
mov ecx, eax
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x88]
mov ebp, dword [esp + 0x3c]
cmp ebx, ebp
xchg ebp, ebx
setl bl
xchg ebp, ebx
sete dl
mov eax, dword [esp + 0x38]
cmp ecx, eax
setb al
and eax, edx
or ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x423287
mov dword [esp + 4], ebx
mov dword [esp], ecx
call fcn.004633d0
movsd xmm0, qword [0x4e42c0]
mulsd xmm0, qword [esp + 8]
movsd qword [esp], xmm0
call fcn.00463330
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x10]
sub edi, eax
mov eax, dword [esp + 0x14]
sbb esi, eax
test esi, esi
setl al
sete dl
cmp edi, 0x3e8
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, edx
or eax, ebp
test al, al
je 0x4232b7
xor esi, esi
mov edi, 0x3e8
mov eax, dword [esp + 0x38]
sub ecx, eax
mov eax, dword [esp + 0x3c]
sbb ebx, eax
test ebx, ebx
setl al
sete dl
test ecx, ecx
xchg ebp, ebx
setbe bl
xchg ebp, ebx
and ebp, edx
or ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4232e5
xor ebx, ebx
mov ecx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.004633d0
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0xa4], xmm0
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
call fcn.004633d0
movsd xmm0, qword [esp + 0xa4]
divsd xmm0, qword [esp + 8]
movsd qword [esp + 0x8c], xmm0
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004633d0
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0xa4], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.004633d0
movsd xmm0, qword [esp + 0xa4]
divsd xmm0, qword [esp + 8]
movsd qword [esp + 0x94], xmm0
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 0xf8]
mov dword [esp], ecx
movsd xmm1, qword [esp + 0x8c]
movsd qword [esp + 4], xmm1
call fcn.00403840
mov eax, dword [esp + 0xc8]
add eax, 0x100
mov dword [esp], eax
movsd xmm0, qword [esp + 0x94]
movsd qword [esp + 4], xmm0
call fcn.00403840
add esp, 0xc4
ret
call fcn.004688b0
jmp fcn.00422e30