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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2a8
movsd xmm0, qword [0x489e60]
mov eax, ecx
xor ecx, ecx
mov dword [esp + 0x48], eax
push esi
xorps xmm2, xmm2
mov dword [esp + 0xcc], edx
mov esi, eax
mov dword [esp + 0x78], 0
movsx eax, byte [eax]
movaps xmm1, xmm2
mov dword [esp + 0xb8], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x7c], xmm2
movsd qword [esp + 4], xmm1
mov dword [esp + 0x18], esi
movsd qword [esp + 0x5c], xmm0
push edi
cmp eax, 0x2d
ja case.0x419ff7.1
nop word [eax + eax]
movzx eax, byte [eax + 0x41b27c]
jmp dword [eax*4 + 0x41b268]
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x1c], esi
cmp eax, 0x2d
jbe 0x419ff0
jmp case.0x419ff7.1
mov dword [esp + 0x3c], 1
inc esi
mov dword [esp + 0x1c], esi
cmp byte [esi], cl
je case.0x41a323.74
mov dl, byte [esi]
cmp dl, 0x30
jne 0x41a046
mov dword [esp + 0x58], 1
inc esi
cmp byte [esi], 0x30
je 0x41a032
mov dl, byte [esi]
mov dword [esp + 0x1c], esi
test dl, dl
je 0x41b15b
xor ecx, ecx
movsx edx, dl
xor eax, eax
mov dword [esp + 0x4c], esi
xor edi, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], eax
cmp edx, 0x30
jl 0x41a0a2
cmp edx, 0x39
jg 0x41a09e
cmp eax, 9
jge 0x41a079
lea eax, [edi - 6]
lea eax, [edi + eax*4]
lea edi, [edx + eax*2]
jmp 0x41a087
cmp eax, 0x10
jge 0x41a08b
lea eax, [ecx - 6]
lea eax, [ecx + eax*4]
lea ecx, [edx + eax*2]
mov eax, dword [esp + 0x14]
movsx edx, byte [esi + 1]
inc esi
inc eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], eax
cmp edx, 0x30
jge 0x41a064
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], eax
mov eax, esi
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x14]
cmp edx, 0x2e
jne 0x41a1df
movsx edx, byte [esi + 1]
inc esi
mov eax, esi
mov dword [esp + 0x44], esi
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x98], eax
sub eax, dword [esp + 0x94]
mov dword [esp + 0x30], eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
test eax, eax
jne 0x41a143
cmp edx, 0x30
jne 0x41a127
xor eax, eax
nop
movsx edx, byte [esi + 1]
inc esi
inc eax
mov dword [esp + 0x1c], esi
cmp edx, 0x30
je 0x41a110
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], esi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x41a1db
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x4c], esi
jmp 0x41a153
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x41a1d7
mov eax, dword [esp + 0x18]
inc eax
sub edx, 0x30
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], edx
je 0x41a1c5
add dword [esp + 0x38], eax
cmp eax, 1
jle 0x41a19b
mov edx, dword [esp + 0x14]
lea esi, [eax - 1]
mov eax, edx
inc edx
cmp eax, 9
jge 0x41a180
lea edi, [edi + edi*4]
add edi, edi
jmp 0x41a18a
cmp edx, 0x10
jg 0x41a18a
lea ecx, [ecx + ecx*4]
add ecx, ecx
sub esi, 1
jne 0x41a171
mov esi, dword [esp + 0x44]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
inc dword [esp + 0x14]
cmp eax, 9
jge 0x41a1b0
lea eax, [edi + edi*4]
lea edi, [edx + eax*2]
jmp 0x41a1bd
cmp dword [esp + 0x14], 0x10
jg 0x41a1bd
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*2]
mov dword [esp + 0x18], 0
movsx edx, byte [esi + 1]
inc esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], esi
jmp 0x41a143
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], 0
cmp edx, 0x65
je 0x41a1f5
cmp edx, 0x45
jne 0x41a2e4
test eax, eax
jne 0x41a209
cmp dword [esp + 0x18], eax
jne 0x41a209
cmp dword [esp + 0x58], eax
je case.0x41a323.74
movsx edx, byte [esi + 1]
mov dword [esp + 0x50], esi
mov eax, edx
inc esi
mov dword [esp + 0x44], 0
mov dword [esp + 0x1c], esi
sub eax, 0x2b
je 0x41a232
sub eax, 2
jne 0x41a23b
mov dword [esp + 0x44], 1
movsx edx, byte [esi + 1]
inc esi
mov dword [esp + 0x1c], esi
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x41a2dc
cmp edx, 0x30
jne 0x41a25e
nop dword [eax]
movsx edx, byte [esi + 1]
inc esi
cmp edx, 0x30
je 0x41a250
mov dword [esp + 0x1c], esi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x41a2d2
mov dword [esp + 0x5c], esi
lea eax, [edx - 0x30]
movsx edx, byte [esi + 1]
inc esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], esi
cmp edx, 0x30
jl 0x41a2a4
mov ecx, eax
cmp edx, 0x39
jg 0x41a29c
inc esi
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
mov dword [esp + 0x1c], esi
lea ecx, [edx + ecx*2]
movsx edx, byte [esi]
cmp edx, 0x30
jge 0x41a281
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x40]
mov eax, esi
sub eax, dword [esp + 0x5c]
cmp eax, 8
jg 0x41a2ba
mov eax, dword [esp + 0x34]
cmp eax, 0x4e1f
jle 0x41a2c3
mov eax, 0x4e1f
mov dword [esp + 0x34], eax
cmp dword [esp + 0x44], 0
je 0x41a2e4
neg eax
mov dword [esp + 0x34], eax
jmp 0x41a2e4
mov dword [esp + 0x34], 0
jmp 0x41a2e4
mov esi, dword [esp + 0x50]
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41a40d
cmp dword [esp + 0x18], eax
jne 0x41b15b
cmp dword [esp + 0x58], eax
jne 0x41b15b
mov eax, dword [esp + 0x30]
test eax, eax
jne case.0x41a323.74
add edx, 0xffffffb7
cmp edx, 0x25
ja case.0x41a323.74
movzx eax, byte [edx + 0x41b2b8]
jmp dword [eax*4 + 0x41b2ac]
mov edx, 0x6e
mov edi, 0x48981d
movsx ecx, byte [esi + 1]
inc esi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x41a344
add ecx, 0x20
cmp ecx, edx
jne case.0x41a323.74
movsx edx, byte [edi]
inc edi
test edx, edx
jne 0x41a334
mov edx, esi
mov dword [esp + 0x48], 0x489821
mov edi, 0x69
movsx ecx, byte [edx + 1]
lea edx, [edx + 1]
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x41a375
add ecx, 0x20
cmp ecx, edi
jne 0x41a38e
mov eax, dword [esp + 0x48]
movsx edi, byte [eax]
inc eax
mov dword [esp + 0x48], eax
test edi, edi
jne 0x41a363
lea esi, [edx + 1]
jmp 0x41a38f
inc esi
mov dword [esp + 0xc], 0x7ff00000
mov dword [esp + 8], 0
movsd xmm1, qword [esp + 8]
jmp 0x41b15b
mov edx, 0x61
mov edi, 0x489829
movsx ecx, byte [esi + 1]
inc esi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x41a3c4
add ecx, 0x20
cmp ecx, edx
jne case.0x41a323.74
movsx edx, byte [edi]
inc edi
test edx, edx
jne 0x41a3b4
inc esi
mov dword [esp + 0xc], 0x7ff80000
mov dword [esp + 0x1c], esi
mov dword [esp + 8], edx
cmp byte [esi], 0x28
jne 0x41a39f
lea edx, [esp + 0x1c]
lea ecx, [esp + 8]
call fcn.00419810
movsd xmm1, qword [esp + 8]
mov esi, dword [esp + 0x1c]
jmp 0x41b15b
mov esi, dword [esp + 0x50]
xor eax, eax
jmp 0x41b15f
mov edx, dword [esp + 0x34]
sub edx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x2c]
test edx, edx
movd xmm0, edi
cmove edx, eax
mov dword [esp + 0x2c], edx
mov edx, 0x10
cmp eax, edx
cvtdq2pd xmm0, xmm0
cmovl edx, eax
mov eax, edi
shr eax, 0x1f
mov dword [esp + 0x50], edx
addsd xmm0, qword [eax*8 + 0x489e40]
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm0
cmp edx, 9
jle 0x41a496
movsd xmm1, qword [edx*8 + 0x489860]
mulsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x489e40]
addsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0x14]
cmp eax, 0xf
jg 0x41a536
call fcn.00455048
cmp eax, 1
jne 0x41a525
mov edx, dword [esp + 0x34]
test edx, edx
je 0x41b14f
jle 0x41a503
cmp edx, 0x16
jg 0x41a4d4
movsd xmm1, qword [esp + 0x20]
mulsd xmm1, qword [edx*8 + 0x4898a8]
jmp 0x41b155
mov ecx, 0xf
sub ecx, dword [esp + 0x14]
lea eax, [ecx + 0x16]
cmp edx, eax
jg 0x41a525
movsd xmm1, qword [esp + 0x20]
sub edx, ecx
mulsd xmm1, qword [ecx*8 + 0x4898a8]
mulsd xmm1, qword [edx*8 + 0x4898a8]
jmp 0x41b155
cmp edx, 0xffffffea
jl 0x41a525
movsd xmm1, qword [esp + 0x20]
lea eax, [edx*8]
mov ecx, 0x4898a8
sub ecx, eax
divsd xmm1, qword [ecx]
jmp 0x41b155
movsd xmm2, qword [esp + 0x80]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
sub ecx, edx
xor edx, edx
add ecx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0xb8], edx
test ecx, ecx
jle 0x41a60c
movsd xmm1, qword [esp + 0x20]
mov eax, ecx
and eax, 0xf
je 0x41a56f
mulsd xmm1, qword [eax*8 + 0x4898a8]
movsd qword [esp + 8], xmm1
and ecx, 0xfffffff0
je 0x41a708
cmp ecx, 0x134
jg 0x41af23
sar ecx, 4
xor eax, eax
cmp ecx, 1
jle 0x41a5ac
nop
test cl, 1
je 0x41a5a4
mulsd xmm1, qword [eax*8 + 0x489850]
movsd qword [esp + 8], xmm1
sar ecx, 1
inc eax
cmp ecx, 1
jg 0x41a590
sub dword [esp + 0xc], 0x3500000
movsd xmm0, qword [eax*8 + 0x489850]
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 0x41af23
cmp ecx, 0x7c900000
jbe 0x41a5fe
mov dword [esp + 0xc], 0x7fefffff
mov dword [esp + 8], 0xffffffff
jmp 0x41a708
add eax, 0x3500000
mov dword [esp + 0xc], eax
jmp 0x41a708
jns 0x41a708
movsd xmm1, qword [esp + 0x20]
neg ecx
mov eax, ecx
and eax, 0xf
je 0x41a636
divsd xmm1, qword [eax*8 + 0x4898a8]
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 8], xmm1
sar ecx, 4
test ecx, ecx
je 0x41a708
cmp ecx, 0x20
jge 0x41b135
test cl, 0x10
mov eax, 0x6a
cmovne edx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0xb8], edx
test ecx, ecx
jle 0x41a68e
mov eax, 0x489880
nop dword [eax]
test cl, 1
je 0x41a67f
mulsd xmm1, qword [eax]
movsd qword [esp + 8], xmm1
sar ecx, 1
add eax, 8
test ecx, ecx
jg 0x41a670
movsd qword [esp + 0x20], xmm1
test edx, edx
je 0x41a6f4
mov edx, dword [esp + 0xc]
mov ecx, 0x6b
mov eax, edx
shr eax, 0x14
and eax, 0x7ff
sub ecx, eax
test ecx, ecx
jle 0x41a6f4
cmp ecx, 0x20
jl 0x41a6e3
mov dword [esp + 8], 0
cmp ecx, 0x35
jl 0x41a6cd
mov dword [esp + 0xc], 0x3700000
movsd xmm1, qword [esp + 8]
jmp 0x41a6fa
add ecx, 0xffffffe0
or eax, 0xffffffff
shl eax, cl
and edx, eax
mov dword [esp + 0xc], edx
movsd xmm1, qword [esp + 8]
jmp 0x41a6fa
or eax, 0xffffffff
shl eax, cl
and dword [esp + 8], eax
movsd xmm1, qword [esp + 8]
jmp 0x41a6fa
movsd xmm1, qword [esp + 0x20]
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x41b135
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], edx
cmp esi, 0x28
jle 0x41a7e0
mov eax, 0x12
mov ecx, eax
cmp edx, eax
jge 0x41a738
mov eax, dword [esp + 0x30]
add eax, ecx
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0x4c]
dec eax
cmp eax, dword [esp + 0x48]
jg 0x41a751
cmp eax, esi
jl 0x41a751
lea eax, [esi - 1]
cmp byte [eax + edx], 0x30
jne 0x41a75a
dec ecx
jmp 0x41a743
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
sub esi, ecx
add dword [esp + 0x34], esi
cmp edx, ecx
mov esi, ecx
cmovg edx, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], edx
cmp ecx, 9
jge 0x41a7e0
xor edx, edx
xor edi, edi
cmp dword [esp + 0x2c], edx
jle 0x41a7aa
mov esi, dword [esp + 0x2c]
nop word [eax + eax]
mov eax, dword [esp + 0x4c]
lea edi, [edi + edi*4]
lea edi, [edi - 0x18]
movsx ecx, byte [edx + eax]
inc edx
lea edi, [ecx + edi*2]
cmp edx, esi
jl 0x41a790
mov esi, dword [esp + 0x14]
cmp edx, esi
jge 0x41a7dc
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x4c]
sub esi, edx
mov dword [esp + 0x48], esi
mov esi, eax
mov dword [esp + 0x5c], eax
sub dword [esp + 0x48], 1
lea edi, [edi + edi*4]
movsx eax, byte [esi]
lea edi, [edi - 0x18]
lea esi, [esi + 1]
lea edi, [eax + edi*2]
jne 0x41a7c2
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
push dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
push edi
push esi
call fcn.00418b70
movsd xmm0, qword [0x489de8]
mov ecx, eax
movsd qword [esp + 0x12c], xmm0
add esp, 0xc
movsd xmm0, qword [0x489dd8]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [0x489dc8]
lea eax, [ecx + 0xc]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x489e28]
movsd qword [esp + 0x128], xmm0
movsd xmm0, qword [0x489e18]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x489da8]
movsd qword [esp + 0x138], xmm0
movsd xmm0, qword [0x489dc0]
movsd qword [esp + 0x140], xmm0
movsd xmm0, qword [0x489dd0]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x5c], eax
movsd qword [esp + 0x148], xmm0
mov ecx, dword [ecx + 4]
mov edi, 1
call fcn.00418990
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov ecx, dword [ecx + 0x10]
lea ecx, [ecx*4 + 8]
push ecx
push dword [esp + 0x60]
lea ecx, [eax + 0xc]
push ecx
call fcn.0044ba40
add esp, 0xc
lea eax, [esp + 0xd4]
lea edx, [esp + 0x58]
lea ecx, [esp + 8]
push eax
call fcn.004195d0
add esp, 4
mov dword [esp + 0x2c], eax
mov ecx, edi
call fcn.00418cc0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
test eax, eax
js 0x41a8f0
xor edi, edi
mov dword [esp + 0x50], eax
xor ecx, ecx
jmp 0x41a8fe
mov edi, eax
xor edx, edx
neg edi
mov dword [esp + 0x50], edx
mov ecx, edi
xor eax, eax
mov edx, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], ecx
test edx, edx
js 0x41a916
add ecx, edx
mov dword [esp + 0x44], ecx
jmp 0x41a91c
sub eax, edx
mov dword [esp + 0x30], eax
sub edx, dword [esp + 0x18]
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], ecx
lea ecx, [eax - 1]
add ecx, edx
add edx, 0x433
mov dword [esp + 0x20], edx
mov edx, 0x36
sub edx, eax
mov eax, dword [esp + 0x18]
cmp ecx, 0xfffffc02
mov ecx, dword [esp + 0x44]
cmovl edx, dword [esp + 0x20]
add eax, edx
add ecx, edx
mov edx, dword [esp + 0x30]
add edx, eax
mov dword [esp + 0x44], ecx
cmp ecx, edx
mov dword [esp + 0x30], edx
mov eax, edx
cmovl eax, ecx
cmp eax, dword [esp + 0x38]
cmovg eax, dword [esp + 0x38]
test eax, eax
jle 0x41a98a
sub ecx, eax
sub edx, eax
sub dword [esp + 0x38], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x30], edx
test edi, edi
jle 0x41aab7
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.00418ea0
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.00418d60
mov edi, eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x41aaad
cmp dword [eax + 4], 7
jle 0x41a9d6
push eax
call fcn.00452ae3
mov ecx, dword [esp + 0x48]
add esp, 4
mov dword [esp + 0x2c], edi
jmp 0x41aabb
mov eax, dword [esp + 0x7c]
test al, 1
je 0x41a9f1
and eax, 0xfffffffe
lea ecx, [esp + 0x150]
mov dword [esp + 0x7c], eax
call fcn.00402030
mov eax, dword [0x490b90]
test eax, 0xfffffffe
jne 0x41aa4e
mov ecx, 1
xor eax, eax
mov edx, 0x490b90
lock cmpxchg dword [edx], ecx
test eax, eax
je 0x41aa34
mov eax, dword [0x490b90]
cmp eax, 1
jne 0x41aa4e
nop dword [eax + eax]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x490b90]
cmp eax, 1
je 0x41aa20
jmp 0x41aa4e
push 0x7d0
push 0x490b94
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [0x490b90], 0x490b94
mov eax, dword [0x490b90]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 4]
mov eax, dword [ecx*4 + 0x490b70]
mov dword [edx], eax
mov eax, dword [esp + 0x7c]
mov dword [ecx*4 + 0x490b70], edx
test eax, 0x200
je 0x41aa91
and eax, 0xfffffdff
lea ecx, [esp + 0x200]
mov dword [esp + 0x7c], eax
call fcn.00402030
mov ecx, 0x490b90
call fcn.00415d70
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], edi
jmp 0x41aabb
mov edi, dword [esp + 0x2c]
test ecx, ecx
jle 0x41aace
mov edx, ecx
mov ecx, edi
call fcn.00419050
mov edi, eax
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
test eax, eax
jle 0x41aae7
mov edx, eax
call fcn.00418ea0
mov ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x41aafc
mov edx, eax
call fcn.00419050
mov ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x41ab17
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.00419050
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov edx, ecx
mov ecx, edi
call fcn.00419280
mov edx, dword [esp + 0x14]
mov ecx, eax
mov dword [esp + 0x30], eax
mov edi, dword [eax + 0xc]
mov dword [esp + 0x38], edi
mov dword [esp + 0xa0], edi
mov dword [eax + 0xc], 0
call fcn.00419230
mov ecx, dword [esp + 0xac]
cmp ecx, esi
jle 0x41ab57
test eax, eax
jle 0x41aeee
test eax, eax
js 0x41b07e
je 0x41af49
mov edi, dword [esp + 0x30]
lea edx, [esp + 0xcc]
mov ecx, edi
call fcn.00419470
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0xfc]
movaps xmm1, xmm0
movsd qword [esp + 0xd8], xmm1
call fcn.00419470
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x10]
movsd qword [esp + 0xe0], xmm0
sub eax, dword [ecx + 0x10]
shl eax, 5
sub eax, dword [esp + 0xfc]
add eax, dword [esp + 0xcc]
test eax, eax
jle 0x41abd0
shl eax, 0x14
add dword [esp + 0xdc], eax
movsd xmm1, qword [esp + 0xd8]
jmp 0x41abe6
imul eax, eax, 0xfff00000
add dword [esp + 0xe4], eax
movsd xmm0, qword [esp + 0xe0]
divsd xmm1, xmm0
mov edi, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x120]
comisd xmm0, xmm1
jb 0x41ac82
cmp dword [esp + 0x38], 0
je 0x41ac19
movsd xmm2, qword [esp + 0xe8]
movaps xmm1, xmm2
jmp 0x41accc
mov eax, dword [esp + 8]
test eax, eax
jne 0x41ac61
test edi, 0xfffff
jne 0x41ac6e
movsd xmm0, qword [esp + 0xe8]
comisd xmm0, xmm1
jbe 0x41ac4e
movsd xmm1, qword [esp + 0xc0]
movaps xmm2, xmm1
xorps xmm2, xmmword [esp + 0x60]
jmp 0x41accc
mulsd xmm1, qword [esp + 0xc0]
movaps xmm2, xmm1
xorps xmm2, xmmword [esp + 0x60]
jmp 0x41accc
cmp eax, 1
jne 0x41ac6e
test edi, edi
je 0x41af02
movsd xmm1, qword [esp + 0xe8]
movsd xmm2, qword [esp + 0x128]
jmp 0x41accc
cmp dword [esp + 0x38], 0
mulsd xmm1, qword [esp + 0xc0]
movsd qword [esp + 0x50], xmm1
je 0x41aca0
movsd qword [esp + 0x20], xmm1
jmp 0x41acae
movaps xmm0, xmm1
xorps xmm0, xmmword [esp + 0x60]
movsd qword [esp + 0x20], xmm0
call fcn.00455048
movsd xmm2, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x50]
test eax, eax
jne 0x41acd2
addsd xmm2, qword [esp + 0xc0]
movsd qword [esp + 0x20], xmm2
mov edx, edi
and edx, 0x7ff00000
mov dword [esp + 0x50], edx
cmp edx, 0x7fe00000
jne 0x41ad95
movsd xmm0, qword [esp + 8]
sub edi, 0x3500000
mov dword [esp + 0xc], edi
and edi, 0x7ff00000
sub edi, 0x3400000
movsd qword [esp + 0x88], xmm0
mov dword [esp + 0x11c], edi
mov dword [esp + 0x118], 0
movsd xmm0, qword [esp + 0x118]
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 0x41ad7c
cmp dword [esp + 0x8c], 0x7fefffff
jne 0x41ad67
cmp dword [esp + 0x88], 0xffffffff
je 0x41af1f
mov dword [esp + 0xc], 0x7fefffff
mov dword [esp + 8], 0xffffffff
jmp 0x41aec1
mov edi, dword [esp + 0x18]
add ecx, 0x3500000
mov dword [esp + 0xc], ecx
movsd xmm0, qword [esp + 8]
jmp 0x41ae4e
mov edi, dword [esp + 0x18]
test edi, edi
je 0x41ae19
cmp edx, 0x6a00000
ja 0x41ae19
movsd xmm0, qword [esp + 0x130]
comisd xmm0, xmm1
jb 0x41adf3
movaps xmm0, xmm1
call fcn.0044aa01
test eax, eax
mov edx, 1
cmove eax, edx
mov edx, dword [esp + 0x50]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
cmp dword [esp + 0x38], 0
addsd xmm1, qword [eax*8 + 0x489e40]
movaps xmm0, xmm1
jne 0x41adf9
xorps xmm0, xmmword [esp + 0x60]
jmp 0x41adf9
movsd xmm0, qword [esp + 0x20]
mov eax, 0x6b00000
movsd qword [esp + 0xf0], xmm0
sub eax, edx
add dword [esp + 0xf4], eax
movsd xmm2, qword [esp + 0xf0]
lea eax, [edx - 0x3400000]
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], eax
movsd xmm0, qword [esp + 0x100]
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 + 0xac], esi
jne 0x41aec1
test edi, edi
jne 0x41aec1
mov eax, ecx
and eax, 0x7ff00000
cmp edx, eax
jne 0x41aec1
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cmp dword [esp + 0x38], edi
jne 0x41ae9f
cmp dword [esp + 8], edi
jne 0x41ae9f
test ecx, 0xfffff
jne 0x41ae9f
movsd xmm0, qword [esp + 0x138]
comisd xmm0, xmm1
jmp 0x41aebb
movsd xmm0, qword [esp + 0x140]
comisd xmm0, xmm1
ja 0x41b1a6
comisd xmm1, xmmword [esp + 0x148]
ja 0x41b1a6
mov ecx, dword [esp + 0x2c]
call fcn.00418a50
mov ecx, dword [esp + 0x40]
call fcn.00418a50
mov ecx, dword [esp + 0x14]
call fcn.00418a50
mov ecx, dword [esp + 0x30]
call fcn.00418a50
mov ecx, dword [esp + 0x48]
jmp 0x41a887
test edi, edi
jne 0x41b196
mov dword [esp + 0xac], esi
jmp 0x41b086
cmp dword [esp + 0xac], esi
jle 0x41b126
mov dword [esp + 0xbc], 1
jmp 0x41b196
mov esi, dword [esp + 0x1c]
call fcn.004541f7
mov dword [esp + 0xc], 0x7ff00000
mov dword [esp + 8], 0
movsd xmm1, qword [esp + 8]
mov dword [eax], 0x22
jmp 0x41b155
mov edx, dword [esp + 8]
test edi, edi
mov edi, dword [esp + 0xc]
je 0x41afb4
mov eax, edi
and eax, 0xfffff
cmp eax, 0xfffff
jne 0x41afc4
cmp dword [esp + 0x18], 0
je 0x41af89
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6a00000
ja 0x41af89
shr eax, 0x14
mov ecx, 0x6b
sub ecx, eax
or eax, 0xffffffff
shl eax, cl
jmp 0x41af8c
or eax, 0xffffffff
cmp edx, eax
jne 0x41afc4
and edi, 0x7ff00000
mov dword [esp + 8], 0
add edi, 0x100000
mov dword [esp + 0xa0], 0
jmp 0x41b192
test edi, 0xfffff
jne 0x41afc4
test edx, edx
je 0x41b0f1
test dl, 1
je 0x41b196
mov ecx, dword [esp + 0x38]
and edi, 0x7ff00000
sub edi, 0x3400000
test ecx, ecx
je 0x41b021
mov dword [esp + 0x10c], edi
mov dword [esp + 0x108], 0
movsd xmm0, qword [esp + 0x108]
addsd xmm0, qword [esp + 8]
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm0
mov eax, 1
sub eax, ecx
mov dword [esp + 0xa0], eax
jmp 0x41b1a2
movsd xmm0, qword [esp + 8]
movsd xmm1, qword [esp + 0x80]
mov dword [esp + 0x114], edi
mov dword [esp + 0x110], 0
subsd xmm0, qword [esp + 0x110]
ucomisd xmm0, xmm1
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm0
lahf
test ah, 0x44
jp 0x41b00e
cmp dword [esp + 0xac], esi
jle 0x41b12f
mov dword [esp + 0xbc], 1
jmp 0x41b1a2
test edi, edi
jne 0x41b196
cmp dword [esp + 8], 0
jne 0x41b196
mov edi, dword [esp + 0xc]
test edi, 0xfffff
jne 0x41b196
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jbe 0x41b196
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x14], 0
jne 0x41b0c7
cmp dword [eax + 0x10], 1
jle 0x41b196
mov edx, 1
mov ecx, eax
call fcn.00419050
mov edx, dword [esp + 0x14]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.00419230
test eax, eax
jle 0x41b196
mov ecx, dword [esp + 0xac]
cmp dword [esp + 0x18], 0
je 0x41b17d
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jg 0x41b17d
cmp eax, 0x3700000
jg 0x41b196
cmp ecx, esi
jle 0x41b126
mov dword [esp + 0xbc], 1
jmp 0x41b196
movsd xmm1, qword [esp + 0x80]
mov esi, dword [esp + 0x1c]
jmp 0x41b13e
movsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x20], xmm1
call fcn.004541f7
mov dword [eax], 0x22
movsd xmm1, qword [esp + 0x20]
movsd xmm0, qword [esp + 0x60]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x41b16c
mov dword [ecx], esi
test eax, eax
je 0x41b25f
xorps xmm0, xmm1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
and edi, 0x7ff00000
mov dword [esp + 8], 0xffffffff
dec edi
or edi, 0xfffff
mov dword [esp + 0xc], edi
movsd xmm1, qword [esp + 8]
movsd qword [esp + 0x20], xmm1
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
call fcn.00418a50
mov ecx, dword [esp + 0x40]
call fcn.00418a50
mov ecx, dword [esp + 0x14]
call fcn.00418a50
mov ecx, dword [esp + 0x48]
call fcn.00418a50
mov ecx, dword [esp + 0x30]
call fcn.00418a50
cmp dword [esp + 0xac], esi
jle 0x41b203
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0xc]
call fcn.00419b60
mov edi, dword [esp + 0xbc]
add esp, 4
movsd xmm1, qword [esp + 8]
jmp 0x41b209
movsd xmm1, qword [esp + 0x20]
test edi, edi
je 0x41b256
mov dword [esp + 0x8c], 0x39500000
mov dword [esp + 0x88], 0
mulsd xmm1, qword [esp + 0x88]
movsd qword [esp + 8], xmm1
test dword [esp + 0xc], 0x7ff00000
movsd qword [esp + 0x20], xmm1
jne 0x41b256
call fcn.004541f7
mov esi, dword [esp + 0x1c]
mov dword [eax], 0x22
jmp 0x41b14f
mov esi, dword [esp + 0x1c]
jmp 0x41b155
pop edi
movaps xmm0, xmm1
pop esi
mov esp, ebp
pop ebp
ret