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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x411e40
sub esp, 0x88
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x80]
mov dword [ebp], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 4], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 0xc], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x80]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x14], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x80]
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x1c], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x80]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x24], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x80]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x2c], eax
mov eax, dword [0x4d2948]
mov dword [esp + 0x78], eax
mov eax, dword [0x4d294c]
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x7c]
cmp ebx, dword [0x4c00fc]
ja 0x4117ff
jb 0x4116f9
mov ebx, dword [esp + 0x78]
cmp ebx, dword [0x4c00f8]
ja 0x4117ff
mov eax, dword [0x4d2948]
mov dword [esp + 0x78], eax
mov eax, dword [0x4d294c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x64], eax
cmp dword [esp + 0x64], 0
jl 0x411e12
fild qword [esp + 0x60]
fstp qword [esp + 0x68]
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0x68], xmm0
movsd xmm0, qword [ebp + 0x60]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [esp + 0x58]
addsd xmm0, qword [0x48ea18]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x68]
divsd xmm1, xmm0
movsd qword [esp + 0x68], xmm1
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0x68], xmm0
fld qword [esp + 0x68]
fld qword [0x48e9f0]
fucomp st(1)
fnstsw ax
sahf
ja 0x41179f
fld qword [0x48ea48]
fucomp st(1)
fnstsw ax
sahf
ja 0x411dd3
fistp qword [esp + 0x78]
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x78]
mov dword [0x4d3ec4], eax
mov eax, dword [esp + 0x7c]
mov dword [0x4d3ec8], eax
mov eax, dword [0x4d3ec4]
mov dword [esp + 0x78], eax
mov eax, dword [0x4d3ec8]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x78]
mov dword [0x4d3ecc], eax
mov eax, dword [esp + 0x7c]
mov dword [0x4d3ed0], eax
mov eax, dword [0x4d3ecc]
mov dword [esp + 0x78], eax
mov eax, dword [0x4d3ed0]
mov dword [esp + 0x7c], eax
mov eax, dword [0x4d0fb4]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov ebp, edx
or ebp, ecx
jne 0x411dbe
mul esi
mov eax, dword [0x4d3ecc]
mov dword [esp + 0x50], eax
mov eax, dword [0x4d3ed0]
mov dword [esp + 0x54], eax
mov eax, dword [0x4d3ecc]
mov dword [esp + 0x78], eax
mov eax, dword [0x4d3ed0]
mov dword [esp + 0x7c], eax
mov eax, dword [0x4d0fb4]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov ebp, edx
or ebp, ecx
jne 0x411da9
mul esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
call fcn.004430e0
mov esi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
add eax, ebx
adc edx, ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov edi, dword [esi + 0x38]
mov ebp, dword [esi + 0x3c]
mov ecx, dword [0x4d3eb4]
mov edx, dword [0x4d3eb8]
add ecx, 0x100000
adc edx, 0
cmp ebp, edx
ja 0x4118f5
jb 0x4118db
cmp edi, ecx
jae 0x4118f5
mov eax, dword [0x4d3eb4]
mov edx, dword [0x4d3eb8]
add eax, 0x100000
adc edx, 0
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
cvtsi2sd xmm0, dword [0x4d0fc4]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [esp + 0x58]
mulsd xmm0, qword [0x48ea00]
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
fnstcw word [esp + 0x1a]
mov word [esp + 0x18], 0xf7f
fldcw word [esp + 0x18]
fistp qword [esp + 0x80]
fldcw word [esp + 0x1a]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x4c], eax
fild qword [esp + 0x48]
fstp qword [esp + 0x58]
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x20]
subsd xmm1, xmm0
movsd qword [esp + 0x58], xmm1
movsd xmm0, qword [esp + 0x58]
movsd qword [esi + 0x58], xmm0
movsd xmm0, qword [esi + 0x58]
movsd qword [esp + 0x58], xmm0
xorps xmm0, xmm0
movsd xmm1, qword [esp + 0x58]
ucomisd xmm1, xmm0
ja 0x411d74
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x80]
mov dword [esi + 0xa8], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 0xac], eax
mov ecx, 0x4c19e0
xor edx, edx
mov edi, 0x101
cmp ecx, 0
je 0x411d6d
cmp edx, edi
jge 0x411a0f
mov eax, dword [ecx]
xor ebp, ebp
cmp eax, ebp
jne 0x411d29
mov ecx, esi
mov eax, dword [0x4d3ebc]
mov dword [esp + 0x80], eax
mov eax, dword [0x4d3ec0]
mov dword [esp + 0x84], eax
mov ebp, dword [esi]
mov ebx, dword [esi + 4]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
sub eax, ebp
sbb edx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x2c], 0
jg 0x411a6d
jl 0x411a5d
cmp dword [esp + 0x28], 0x3e8
jae 0x411a6d
mov dword [esp + 0x28], 0x3e8
mov dword [esp + 0x2c], 0
mov edx, dword [ecx + 0x38]
mov ebx, dword [ecx + 0x3c]
mov eax, dword [0x4d3eb4]
mov dword [esp + 0x80], eax
mov eax, dword [0x4d3eb8]
mov dword [esp + 0x84], eax
mov eax, edx
mov edx, ebx
sub eax, dword [esp + 0x80]
sbb edx, dword [esp + 0x84]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp dword [esp + 0x34], 0
jg 0x411ac7
jl 0x411ab7
cmp dword [esp + 0x30], 0
ja 0x411ac7
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0
fild qword [esp + 0x28]
fstp qword [esp + 0x58]
movsd xmm1, qword [esp + 0x58]
movsd qword [esp + 0x58], xmm1
fild qword [esp + 0x30]
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x58]
divsd xmm0, xmm1
movsd qword [esp + 0x58], xmm0
movsd xmm1, qword [esp + 0x58]
movsd qword [ecx + 0x48], xmm1
fild qword [esp + 0x30]
fstp qword [esp + 0x58]
movsd xmm1, qword [esp + 0x58]
movsd qword [esp + 0x58], xmm1
fild qword [esp + 0x28]
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x58]
divsd xmm0, xmm1
movsd qword [esp + 0x58], xmm0
movsd xmm1, qword [esp + 0x58]
movsd qword [ecx + 0x50], xmm1
mov ebx, dword [0x4d1130]
cmp ebx, 0
jle 0x411d22
movsd xmm0, qword [esi + 0x48]
movsd qword [esp + 0x58], xmm0
mov eax, dword [0x4d3ebc]
mov edx, dword [0x4d3ec0]
shrd eax, edx, 0x14
shr edx, 0x14
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
mov eax, dword [0x4c16f8]
mov dword [esp + 0x78], eax
mov eax, dword [0x4c16fc]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
shrd eax, edx, 0x14
shr edx, 0x14
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
shrd eax, edx, 0x14
shr edx, 0x14
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov eax, dword [esi + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0xac]
mov dword [esp + 0x84], eax
call fcn.004259c0
mov ebx, 0x4862cf
mov dword [esp], ebx
mov dword [esp + 4], 0x14
call fcn.004263d0
movsd xmm0, qword [esp + 0x58]
movsd qword [esp], xmm0
call fcn.00425cc0
mov ebx, 0x4845c3
mov dword [esp], ebx
mov dword [esp + 4], 7
call fcn.004263d0
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.00426040
mov ebx, 0x4845d1
mov dword [esp], ebx
mov dword [esp + 4], 7
call fcn.004263d0
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
call fcn.00426040
mov ebx, 0x484329
mov dword [esp], ebx
mov dword [esp + 4], 2
call fcn.004263d0
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
call fcn.00426040
mov ebx, 0x484396
mov dword [esp], ebx
mov dword [esp + 4], 4
call fcn.004263d0
mov ebx, 0x484872
mov dword [esp], ebx
mov dword [esp + 4], 9
call fcn.004263d0
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call fcn.004261e0
mov ebx, 0x484308
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.004263d0
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
call fcn.004261e0
mov ebx, 0x484313
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.004263d0
call fcn.00425a40
add esp, 0x88
ret
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov ebx, eax
cmp eax, 0
je 0x411d69
mov eax, dword [esp + 0x80]
mov dword [ebx + 0x91c], eax
mov eax, dword [esp + 0x84]
mov dword [ebx + 0x920], eax
add ecx, 4
inc edx
jmp 0x4119ff
mov dword [eax], eax
jmp 0x411d46
mov dword [ecx], eax
jmp 0x4119ff
mov dword [esp + 0x80], 1
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x80]
mov dword [esi + 0xa8], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 0xac], eax
jmp 0x4119ea
imul edx, esi
mov ebp, eax
imul ebp, ecx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x411879
imul edx, esi
mov ebp, eax
imul ebp, ecx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x411832
fnstcw word [esp + 0x1e]
mov word [esp + 0x1c], 0xf7f
fldcw word [esp + 0x1c]
fld qword [0x48ea40]
fucomp st(1)
fnstsw ax
sahf
jbe 0x411dfc
fistp qword [esp + 0x78]
fldcw word [esp + 0x1e]
jmp 0x4117b3
fld qword [0x48ea40]
fsubp st(1)
fistp qword [esp + 0x78]
xor dword [esp + 0x7c], 0x80000000
jmp 0x411df3
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
shrd eax, edx, 1
xor ecx, ecx
setae cl
or eax, ecx
shr edx, 1
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], eax
fild qword [esp + 0x60]
fld st(0)
faddp st(1)
fstp qword [esp + 0x68]
jmp 0x411730
call fcn.004489b0
jmp fcn.004115a0