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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x158
mov eax, ecx
mov dword [esp + 0xa4], edx
push esi
xor ecx, ecx
mov dword [esp + 0x48], eax
push edi
mov edi, eax
mov dword [esp + 0x5c], 0
movsx eax, byte [eax]
xorps xmm2, xmm2
mov dword [esp + 0x94], 0
movaps xmm1, xmm2
mov dword [esp + 0x44], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x34], ecx
movsd qword [esp + 8], xmm1
mov dword [esp + 0x18], edi
cmp eax, 0x2d
ja case.0x10024247.1
nop
movzx eax, byte [eax + 0x100252cc]
jmp dword [eax*4 + 0x100252b8]
movsx eax, byte [edi + 1]
inc edi
mov dword [esp + 0x18], edi
cmp eax, 0x2d
jbe 0x10024240
jmp case.0x10024247.1
mov dword [esp + 0x34], 1
inc edi
mov dword [esp + 0x18], edi
cmp byte [edi], cl
je case.0x1002455d.74
mov dl, byte [edi]
cmp dl, 0x30
jne 0x10024296
mov dword [esp + 0x58], 1
inc edi
cmp byte [edi], 0x30
je 0x10024282
mov dl, byte [edi]
mov dword [esp + 0x18], edi
test dl, dl
je 0x100251d2
xor ecx, ecx
movsx edx, dl
xor eax, eax
mov dword [esp + 0x54], edi
xor esi, esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], eax
cmp edx, 0x30
jl 0x100242f2
cmp edx, 0x39
jg 0x100242ea
cmp eax, 9
jge 0x100242c9
lea eax, [esi - 6]
lea eax, [esi + eax*4]
lea esi, [edx + eax*2]
jmp 0x100242d7
cmp eax, 0x10
jge 0x100242db
lea eax, [ecx - 6]
lea eax, [ecx + eax*4]
lea ecx, [edx + eax*2]
mov eax, dword [esp + 0x1c]
movsx edx, byte [edi + 1]
inc edi
inc eax
mov dword [esp + 0x1c], eax
cmp edx, 0x30
jge 0x100242b4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edi
mov ecx, edi
mov dword [esp + 0x14], eax
sub ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
cmp edx, 0x2e
jne 0x1002441e
movsx edx, byte [edi + 1]
inc edi
mov dword [esp + 0x18], edi
sub edi, dword [esp + 0x54]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x70], edi
sub edi, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], edi
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x10024376
cmp edx, 0x30
jne 0x1002435a
xor eax, eax
movsx edx, byte [edi + 1]
inc edi
inc eax
cmp edx, 0x30
je 0x10024347
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x1002441a
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x54], edi
jmp 0x10024386
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x10024416
mov eax, dword [esp + 0x2c]
inc eax
sub edx, 0x30
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], edx
je 0x10024408
add dword [esp + 0x30], eax
cmp eax, 1
jle 0x100243ce
mov edx, dword [esp + 0x1c]
lea edi, [eax - 1]
mov eax, edx
inc edx
cmp eax, 9
jge 0x100243b3
lea esi, [esi + esi*4]
add esi, esi
jmp 0x100243bd
cmp edx, 0x10
jg 0x100243bd
lea ecx, [ecx + ecx*4]
add ecx, ecx
sub edi, 1
jne 0x100243a4
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x1c]
cmp eax, 9
jge 0x100243f3
inc edi
mov dword [esp + 0x2c], 0
lea eax, [esi + esi*4]
mov dword [esp + 0x18], edi
lea esi, [edx + eax*2]
movsx edx, byte [edi]
jmp 0x10024376
cmp dword [esp + 0x1c], 0x10
jg 0x10024400
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*2]
mov dword [esp + 0x2c], 0
movsx edx, byte [edi + 1]
inc edi
mov dword [esp + 0x18], edi
jmp 0x10024376
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
cmp edx, 0x65
je 0x10024430
cmp edx, 0x45
jne 0x1002451c
test eax, eax
jne 0x10024444
cmp dword [esp + 0x2c], eax
jne 0x10024444
cmp dword [esp + 0x58], eax
je case.0x1002455d.74
movsx edx, byte [edi + 1]
mov dword [esp + 0x4c], edi
mov eax, edx
inc edi
mov dword [esp + 0x40], 0
mov dword [esp + 0x18], edi
sub eax, 0x2b
je 0x1002446d
sub eax, 2
jne 0x10024476
mov dword [esp + 0x40], 1
movsx edx, byte [edi + 1]
inc edi
mov dword [esp + 0x18], edi
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x10024514
cmp edx, 0x30
jne 0x10024495
movsx edx, byte [edi + 1]
inc edi
cmp edx, 0x30
je 0x10024487
mov dword [esp + 0x18], edi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x1002451c
mov dword [esp + 0x50], edi
add edx, 0xffffffd0
inc edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], edi
movsx edx, byte [edi]
cmp edx, 0x30
jl 0x100244df
mov ecx, dword [esp + 0x48]
nop dword [eax]
cmp edx, 0x39
jg 0x100244d7
lea ecx, [ecx + ecx*4]
inc edi
lea ecx, [ecx - 0x18]
lea ecx, [edx + ecx*2]
movsx edx, byte [edi]
cmp edx, 0x30
jge 0x100244c0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x18], edi
mov eax, edi
sub eax, dword [esp + 0x50]
cmp eax, 8
jg 0x100244f5
mov eax, dword [esp + 0x48]
cmp eax, 0x4e1f
jle 0x100244fa
mov eax, 0x4e1f
mov ecx, eax
neg ecx
cmp dword [esp + 0x40], 0
cmove ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
jmp 0x1002451e
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x18], edi
xor eax, eax
cmp dword [esp + 0x1c], 0
jne 0x1002464a
cmp dword [esp + 0x2c], 0
jne 0x100251d2
cmp dword [esp + 0x58], 0
jne 0x100251d2
cmp dword [esp + 0x44], 0
jne case.0x1002455d.74
add edx, 0xffffffb7
cmp edx, 0x25
ja case.0x1002455d.74
movzx eax, byte [edx + 0x10025308]
jmp dword [eax*4 + 0x100252fc]
mov edx, 0x6e
mov esi, 0x10068d1d
nop
movsx ecx, byte [edi + 1]
inc edi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x10024580
add ecx, 0x20
cmp ecx, edx
jne case.0x1002455d.74
movsx edx, byte [esi]
inc esi
test edx, edx
jne 0x10024570
mov edx, edi
mov dword [esp + 0x3c], 0x10068d21
mov esi, 0x69
nop
movsx ecx, byte [edx + 1]
lea edx, [edx + 1]
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x100245b2
add ecx, 0x20
cmp ecx, esi
jne 0x100245cb
mov eax, dword [esp + 0x3c]
movsx esi, byte [eax]
inc eax
mov dword [esp + 0x3c], eax
test esi, esi
jne 0x100245a0
lea edi, [edx + 1]
jmp 0x100245cc
inc edi
mov dword [esp + 0xc], 0x7ff00000
mov dword [esp + 8], 0
movsd xmm1, qword [esp + 8]
jmp 0x100251d2
mov edx, 0x61
mov esi, 0x10068d29
movsx ecx, byte [edi + 1]
inc edi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x10024601
add ecx, 0x20
cmp ecx, edx
jne case.0x1002455d.74
movsx edx, byte [esi]
inc esi
test edx, edx
jne 0x100245f1
inc edi
mov dword [esp + 0xc], 0x7ff80000
mov dword [esp + 0x3c], edi
mov dword [esp + 8], edx
cmp byte [edi], 0x28
jne 0x100245dc
lea edx, [esp + 0x3c]
lea ecx, [esp + 8]
call fcn.10023a80
movsd xmm1, qword [esp + 8]
mov edi, dword [esp + 0x3c]
jmp 0x100251d2
mov edi, dword [esp + 0x4c]
xor eax, eax
jmp 0x100251d6
sub eax, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
test eax, eax
movd xmm0, esi
cmove eax, edx
mov dword [esp + 0x14], eax
mov eax, 0x10
cmp edx, eax
cvtdq2pd xmm0, xmm0
cmovl eax, edx
mov dword [esp + 0x4c], eax
mov eax, esi
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10069e30]
mov eax, dword [esp + 0x4c]
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm0
cmp eax, 9
jle 0x100246d4
movsd xmm1, qword [eax*8 + 0x10068d60]
mulsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x10069e30]
addsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm0
cmp edx, 0xf
jg 0x10024772
call fcn.10046783
cmp eax, 1
jne 0x1002476b
mov edx, dword [esp + 0x40]
test edx, edx
je 0x100251cc
jle 0x10024749
cmp edx, 0x16
jg 0x10024712
movsd xmm1, qword [esp + 0x20]
mulsd xmm1, qword [edx*8 + 0x10068da8]
jmp 0x100251d2
mov edx, dword [esp + 0x1c]
mov ecx, 0xf
sub ecx, edx
lea eax, [ecx + 0x16]
cmp dword [esp + 0x40], eax
jg 0x1002476f
movsd xmm1, qword [esp + 0x20]
mov eax, dword [esp + 0x40]
mulsd xmm1, qword [ecx*8 + 0x10068da8]
sub eax, ecx
mulsd xmm1, qword [eax*8 + 0x10068da8]
jmp 0x100251d2
cmp edx, 0xffffffea
jl 0x1002476b
movsd xmm1, qword [esp + 0x20]
lea eax, [edx*8]
mov ecx, 0x10068da8
sub ecx, eax
divsd xmm1, qword [ecx]
jmp 0x100251d2
mov edx, dword [esp + 0x1c]
xorps xmm2, xmm2
mov eax, dword [esp + 0x40]
xor ecx, ecx
sub eax, dword [esp + 0x4c]
add eax, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x90], ecx
test eax, eax
jle 0x1002484b
movsd xmm1, qword [esp + 0x20]
mov ecx, eax
and ecx, 0xf
je 0x100247ad
mulsd xmm1, qword [ecx*8 + 0x10068da8]
movsd qword [esp + 8], xmm1
and eax, 0xfffffff0
je 0x10024948
cmp eax, 0x134
jg 0x10024fe1
sar eax, 4
xor ecx, ecx
cmp eax, 1
jle 0x100247eb
nop dword [eax + eax]
test al, 1
je 0x100247e3
mulsd xmm1, qword [ecx*8 + 0x10068d50]
movsd qword [esp + 8], xmm1
sar eax, 1
inc ecx
cmp eax, 1
jg 0x100247d0
movsd xmm0, qword [ecx*8 + 0x10068d50]
sub dword [esp + 0xc], 0x3500000
mulsd xmm0, qword [esp + 8]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0xc]
mov ecx, eax
and ecx, 0x7ff00000
cmp ecx, 0x7ca00000
ja 0x10024fe1
cmp ecx, 0x7c900000
jbe 0x1002483d
mov dword [esp + 0xc], 0x7fefffff
mov dword [esp + 8], 0xffffffff
jmp 0x10024948
add eax, 0x3500000
mov dword [esp + 0xc], eax
jmp 0x10024948
jns 0x10024948
movsd xmm1, qword [esp + 0x20]
neg eax
mov ecx, eax
and ecx, 0xf
je 0x10024875
divsd xmm1, qword [ecx*8 + 0x10068da8]
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 8], xmm1
sar eax, 4
test eax, eax
je 0x10024948
cmp eax, 0x20
jge 0x100251b5
test al, 0x10
mov dword [esp + 0x50], 0x6a
mov ecx, 0
cmovne ecx, dword [esp + 0x50]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x90], ecx
test eax, eax
jle 0x100248d2
mov ecx, 0x10068d80
test al, 1
je 0x100248bf
mulsd xmm1, qword [ecx]
movsd qword [esp + 8], xmm1
sar eax, 1
add ecx, 8
test eax, eax
jg 0x100248b1
mov ecx, dword [esp + 0x2c]
movsd qword [esp + 0x20], xmm1
test ecx, ecx
je 0x10024934
mov eax, dword [esp + 0xc]
mov ecx, 0x6b
shr eax, 0x14
and eax, 0x7ff
sub ecx, eax
test ecx, ecx
jle 0x10024934
cmp ecx, 0x20
jl 0x10024923
mov dword [esp + 8], 0
cmp ecx, 0x35
jl 0x1002490f
mov dword [esp + 0xc], 0x3700000
movsd xmm1, qword [esp + 8]
jmp 0x1002493a
add ecx, 0xffffffe0
or eax, 0xffffffff
shl eax, cl
and dword [esp + 0xc], eax
movsd xmm1, qword [esp + 8]
jmp 0x1002493a
or eax, 0xffffffff
shl eax, cl
and dword [esp + 8], eax
movsd xmm1, qword [esp + 8]
jmp 0x1002493a
movsd xmm1, qword [esp + 0x20]
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x100251b5
mov eax, dword [esp + 0x14]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], eax
cmp edx, 0x28
jle 0x10024a50
mov eax, 0x12
mov ecx, eax
cmp dword [esp + 0x14], eax
jge 0x10024976
mov eax, dword [esp + 0x44]
add eax, ecx
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x54]
nop
dec eax
cmp eax, dword [esp + 0x3c]
jg 0x1002498e
cmp eax, edi
jl 0x1002498e
lea eax, [edi - 1]
cmp byte [eax + edx], 0x30
jne 0x10024997
dec ecx
jmp 0x10024980
mov edx, dword [esp + 0x1c]
mov eax, ecx
mov edi, dword [esp + 0x18]
sub edx, ecx
add dword [esp + 0x40], edx
mov edx, ecx
cmp dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
cmovle eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x4c], eax
cmp ecx, 9
jge 0x10024a50
mov ecx, dword [esp + 0x14]
xor esi, esi
xor eax, eax
test ecx, ecx
jle 0x10024a0a
xor edx, edx
mov edi, ecx
nop word [eax + eax]
mov eax, dword [esp + 0x54]
lea esi, [esi + esi*4]
lea esi, [esi - 0x18]
movsx ecx, byte [edx + eax]
inc edx
lea esi, [ecx + esi*2]
cmp edx, edi
jl 0x100249e0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
cmp eax, edx
jge 0x10024a4c
mov ecx, dword [esp + 0x4c]
mov edi, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
add ecx, dword [esp + 0x54]
sub edi, eax
mov dword [esp + 0x50], ecx
mov edx, ecx
nop dword [eax]
movsx eax, byte [edx]
lea esi, [esi + esi*4]
lea esi, [esi - 0x18]
lea edx, [edx + 1]
lea esi, [eax + esi*2]
sub edi, 1
jne 0x10024a30
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
push esi
push edx
mov edx, eax
call fcn.10022d70
add esp, 0xc
mov dword [esp + 0x58], eax
lea ecx, [eax + 0xc]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 4]
mov esi, 1
call fcn.10022b90
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x44], eax
mov ecx, dword [ecx + 0x10]
lea ecx, [ecx*4 + 8]
push ecx
push dword [esp + 0x54]
lea ecx, [eax + 0xc]
push ecx
call fcn.1003c3c0
add esp, 0xc
lea eax, [esp + 0xa8]
lea edx, [esp + 0xa4]
lea ecx, [esp + 8]
push eax
call fcn.100237c0
add esp, 4
mov dword [esp + 0x38], eax
mov ecx, esi
call fcn.10022ec0
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
test ecx, ecx
js 0x10024adb
xor eax, eax
mov dword [esp + 0x30], ecx
mov edx, ecx
jmp 0x10024ae5
mov eax, ecx
neg eax
xor edx, edx
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x98], eax
test ecx, ecx
js 0x10024b07
add eax, ecx
mov dword [esp + 0x14], eax
jmp 0x10024b0d
sub edx, ecx
mov dword [esp + 0x30], edx
sub ecx, dword [esp + 0x2c]
mov esi, eax
mov dword [esp + 0x3c], ecx
mov edx, 0x36
sub edx, dword [esp + 0xa8]
dec ecx
add ecx, dword [esp + 0xa8]
add dword [esp + 0x3c], 0x433
cmp ecx, 0xfffffc02
mov ecx, dword [esp + 0x14]
cmovl edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], eax
add ecx, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
add eax, edx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x30]
add edx, eax
cmp ecx, edx
mov dword [esp + 0x30], edx
mov eax, edx
cmovl eax, ecx
cmp eax, esi
cmovle esi, eax
test esi, esi
jle 0x10024b80
sub ecx, esi
sub edx, esi
sub dword [esp + 0x4c], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x98]
test eax, eax
jle 0x10024c4c
mov ecx, dword [esp + 0x18]
mov edx, eax
call fcn.10023080
mov edx, dword [esp + 0x38]
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.10022f60
mov esi, eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10024c42
cmp dword [eax + 4], 7
jle 0x10024bd3
push eax
call fcn.10043ebe
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x38], esi
jmp 0x10024c50
mov eax, dword [esp + 0x5c]
test al, 1
je 0x10024bee
and eax, 0xfffffffe
lea ecx, [esp + 0xb0]
mov dword [esp + 0x5c], eax
call fcn.10010e80
mov ecx, 0x102ab084
call fcn.10016850
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x38]
mov ecx, dword [edx + 4]
mov eax, dword [ecx*4 + 0x102aaf84]
mov dword [edx], eax
mov eax, dword [esp + 0x5c]
mov dword [ecx*4 + 0x102aaf84], edx
test al, 8
je 0x10024c31
and eax, 0xfffffff7
lea ecx, [esp + 0xb0]
mov dword [esp + 0x5c], eax
call fcn.10010e80
mov ecx, 0x102ab084
call fcn.10016850
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], esi
jmp 0x10024c50
mov esi, dword [esp + 0x38]
test ecx, ecx
jle 0x10024c63
mov edx, ecx
mov ecx, esi
call fcn.10023230
mov esi, eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
test eax, eax
jle 0x10024c7c
mov edx, eax
call fcn.10023080
mov ecx, eax
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x30]
test edx, edx
jle 0x10024c8f
call fcn.10023230
mov ecx, eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x4c]
test eax, eax
jle 0x10024caa
mov ecx, dword [esp + 0x18]
mov edx, eax
call fcn.10023230
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov edx, ecx
mov ecx, esi
call fcn.10023440
mov edx, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x78], eax
mov dword [ecx + 0xc], 0
call fcn.100233f0
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x84], esi
jle 0x10024ce9
test eax, eax
jle 0x10024fca
test eax, eax
js 0x1002510c
je 0x10025007
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
call fcn.10023990
movaps xmm1, xmm0
movsd xmm0, qword [0x10069dc8]
comisd xmm0, xmm1
jb 0x10024d9d
cmp dword [esp + 0x14], 0
je 0x10024d30
movsd xmm2, qword [0x10069db8]
movaps xmm1, xmm2
jmp 0x10024ded
mov eax, dword [esp + 8]
test eax, eax
jne 0x10024d7b
test dword [esp + 0xc], 0xfffff
jne 0x10024d8b
movsd xmm0, qword [0x10069db8]
comisd xmm0, xmm1
jbe 0x10024d67
movsd xmm1, qword [0x10069da8]
movaps xmm2, xmm1
xorps xmm2, xmmword [0x10069e50]
jmp 0x10024ded
mulsd xmm1, qword [0x10069da8]
movaps xmm2, xmm1
xorps xmm2, xmmword [0x10069e50]
jmp 0x10024ded
cmp eax, 1
jne 0x10024d8b
cmp dword [esp + 0xc], 0
je 0x1002519f
movsd xmm1, qword [0x10069db8]
movsd xmm2, qword [0x10069e18]
jmp 0x10024ded
cmp dword [esp + 0x14], 0
mulsd xmm1, qword [0x10069da8]
movsd qword [esp + 0x98], xmm1
je 0x10024dbd
movsd qword [esp + 0x20], xmm1
jmp 0x10024dcd
movaps xmm0, xmm1
xorps xmm0, xmmword [0x10069e50]
movsd qword [esp + 0x20], xmm0
call fcn.10046783
movsd xmm2, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x98]
test eax, eax
jne 0x10024df3
addsd xmm2, qword [0x10069da8]
movsd qword [esp + 0x20], xmm2
mov ecx, dword [esp + 0xc]
mov eax, ecx
and eax, 0x7ff00000
mov dword [esp + 0x48], eax
cmp eax, 0x7fe00000
jne 0x10024e91
movsd xmm0, qword [esp + 8]
sub ecx, 0x3500000
mov dword [esp + 0xc], ecx
lea ecx, [esp + 8]
movsd qword [esp + 0x60], xmm0
call fcn.10023630
mulsd xmm0, xmm2
addsd xmm0, qword [esp + 8]
movsd qword [esp + 8], xmm0
mov ecx, dword [esp + 0xc]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ca00000
jb 0x10024e78
cmp dword [esp + 0x64], 0x7fefffff
jne 0x10024e63
cmp dword [esp + 0x60], 0xffffffff
je 0x10024fe1
mov dword [esp + 0xc], 0x7fefffff
mov dword [esp + 8], 0xffffffff
jmp 0x10024f9d
mov edx, dword [esp + 0x48]
add ecx, 0x3500000
mov dword [esp + 0xc], ecx
movsd xmm0, qword [esp + 8]
jmp 0x10024f28
cmp dword [esp + 0x2c], 0
je 0x10024f09
cmp eax, 0x6a00000
ja 0x10024f09
movsd xmm0, qword [0x10069e00]
comisd xmm0, xmm1
jb 0x10024ee6
movaps xmm0, xmm1
call fcn.10058a31
test eax, eax
mov ecx, 1
cmove eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
cmp dword [esp + 0x14], 0
addsd xmm1, qword [eax*8 + 0x10069e30]
movaps xmm0, xmm1
jne 0x10024eec
xorps xmm0, xmmword [0x10069e50]
jmp 0x10024eec
movsd xmm0, qword [esp + 0x20]
mov edx, dword [esp + 0x48]
mov eax, 0x6b00000
movsd qword [esp + 0x20], xmm0
sub eax, edx
add dword [esp + 0x24], eax
movsd xmm2, qword [esp + 0x20]
jmp 0x10024f0b
mov edx, eax
lea ecx, [esp + 8]
call fcn.10023630
mulsd xmm0, xmm2
addsd xmm0, qword [esp + 8]
movsd qword [esp + 8], xmm0
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x20], xmm0
cmp dword [esp + 0x84], esi
jne 0x10024f9d
cmp dword [esp + 0x2c], 0
jne 0x10024f9d
mov eax, ecx
and eax, 0x7ff00000
cmp edx, eax
jne 0x10024f9d
cmp dword [esp + 0x14], 0
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
jne 0x10024f7d
cmp dword [esp + 8], 0
jne 0x10024f7d
test ecx, 0xfffff
jne 0x10024f7d
movsd xmm0, qword [0x10069d88]
comisd xmm0, xmm1
jmp 0x10024f97
movsd xmm0, qword [0x10069da0]
comisd xmm0, xmm1
ja 0x10025215
comisd xmm1, xmmword [0x10069db0]
ja 0x10025215
mov ecx, dword [esp + 0x38]
call fcn.10022c50
mov ecx, dword [esp + 0x44]
call fcn.10022c50
mov ecx, dword [esp + 0x18]
call fcn.10022c50
mov ecx, dword [esp + 0x30]
call fcn.10022c50
mov eax, dword [esp + 0x58]
jmp 0x10024a6f
cmp dword [esp + 0x14], 0
jne 0x10025209
mov dword [esp + 0x84], esi
jmp 0x10025117
call fcn.10045f24
mov dword [esp + 0xc], 0x7ff00000
mov dword [esp + 8], 0
movsd xmm1, qword [esp + 8]
mov dword [eax], 0x22
jmp 0x100251d2
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
test edx, edx
je 0x1002507b
mov edx, dword [esp + 0xc]
mov eax, edx
and eax, 0xfffff
cmp eax, 0xfffff
jne 0x10025090
cmp dword [esp + 0x2c], 0
je 0x1002504f
mov eax, edx
and eax, 0x7ff00000
cmp eax, 0x6a00000
ja 0x1002504f
shr eax, 0x14
mov ecx, 0x6b
sub ecx, eax
or eax, 0xffffffff
shl eax, cl
mov ecx, dword [esp + 8]
jmp 0x10025052
or eax, 0xffffffff
cmp ecx, eax
jne 0x10025090
and edx, 0x7ff00000
mov dword [esp + 8], 0
add edx, 0x100000
mov dword [esp + 0x78], 0
mov dword [esp + 0xc], edx
jmp 0x10025209
mov eax, dword [esp + 0xc]
test eax, 0xfffff
jne 0x10025094
test ecx, ecx
je 0x10025180
jmp 0x10025094
mov edx, dword [esp + 0x14]
test cl, 1
je 0x10025209
lea ecx, [esp + 8]
call fcn.10023630
test edx, edx
je 0x100250cc
addsd xmm0, qword [esp + 8]
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm0
mov ecx, 1
sub ecx, edx
mov dword [esp + 0x78], ecx
jmp 0x10025215
movsd xmm1, qword [esp + 8]
subsd xmm1, xmm0
xorps xmm0, xmm0
ucomisd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 8], xmm1
lahf
test ah, 0x44
jp 0x100250bc
cmp dword [esp + 0x84], esi
jle 0x100251b8
mov dword [esp + 0x94], 1
jmp 0x10025215
cmp dword [esp + 0x14], 0
jne 0x10025209
cmp dword [esp + 8], 0
jne 0x10025209
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
test eax, 0xfffff
jne 0x10025209
and eax, 0x7ff00000
cmp eax, 0x6b00000
jbe 0x10025209
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x14], 0
jne 0x10025159
cmp dword [eax + 0x10], 1
jle 0x10025209
mov edx, 1
mov ecx, eax
call fcn.10023230
mov edx, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.100233f0
test eax, eax
jle 0x10025209
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x2c], 0
je 0x100251f7
mov ecx, eax
and ecx, 0x7ff00000
cmp ecx, 0x6b00000
ja 0x100251f7
cmp ecx, 0x3700000
ja 0x10025209
cmp dword [esp + 0x84], esi
jle 0x100251b5
mov dword [esp + 0x94], 1
jmp 0x10025209
xorps xmm0, xmm0
movaps xmm1, xmm0
movsd qword [esp + 0x20], xmm1
call fcn.10045f24
mov dword [eax], 0x22
movsd xmm1, qword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x100251e3
mov dword [ecx], edi
test eax, eax
je 0x100251ee
xorps xmm1, xmmword [0x10069e50]
pop edi
movaps xmm0, xmm1
pop esi
mov esp, ebp
pop ebp
ret
and eax, 0x7ff00000
mov dword [esp + 8], 0xffffffff
dec eax
mov dword [esp + 0xc], eax
movsd xmm1, qword [esp + 8]
movsd qword [esp + 0x20], xmm1
mov ecx, dword [esp + 0x38]
call fcn.10022c50
mov ecx, dword [esp + 0x44]
call fcn.10022c50
mov ecx, dword [esp + 0x18]
call fcn.10022c50
mov ecx, dword [esp + 0x58]
call fcn.10022c50
mov ecx, dword [esp + 0x30]
call fcn.10022c50
cmp dword [esp + 0x84], esi
jle 0x1002526f
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0xc]
call fcn.10023dd0
mov eax, dword [esp + 0x94]
add esp, 4
movsd xmm1, qword [esp + 8]
jmp 0x10025279
movsd xmm1, qword [esp + 0x20]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x100251d2
mov dword [esp + 0x64], 0x39500000
mov dword [esp + 0x60], 0
mulsd xmm1, qword [esp + 0x60]
movsd qword [esp + 8], xmm1
test dword [esp + 0xc], 0x7ff00000
movsd qword [esp + 0x20], xmm1
jne 0x100251d2
jmp 0x100251c1