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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2a8
movsd xmm0, qword [0x4dad30]
mov eax, ecx
xor ecx, ecx
mov dword [esp + 0x48], eax
push esi
xorps xmm2, xmm2
mov dword [esp + 0xd0], edx
mov esi, eax
mov dword [esp + 0x70], 0
movsx eax, byte [eax]
movaps xmm1, xmm2
mov dword [esp + 0xb0], 0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x74], xmm2
movsd qword [esp + 0xc], xmm1
mov dword [esp + 0x18], esi
movsd qword [esp + 0x5c], xmm0
push edi
cmp eax, 0x2d
ja case.0x419e17.1
nop word [eax + eax]
movzx eax, byte [eax + 0x41b0c4]
jmp dword [eax*4 + 0x41b0b0]
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x1c], esi
cmp eax, 0x2d
jbe 0x419e10
jmp case.0x419e17.1
mov dword [esp + 0x40], 1
inc esi
mov dword [esp + 0x1c], esi
cmp byte [esi], cl
je case.0x41a143.74
mov dl, byte [esi]
cmp dl, 0x30
jne 0x419e66
mov dword [esp + 0x5c], 1
inc esi
cmp byte [esi], 0x30
je 0x419e52
mov dl, byte [esi]
mov dword [esp + 0x1c], esi
test dl, dl
je 0x41afa6
xor ecx, ecx
movsx edx, dl
xor eax, eax
mov dword [esp + 0x54], esi
xor edi, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x18], eax
cmp edx, 0x30
jl 0x419ec2
cmp edx, 0x39
jg 0x419ebe
cmp eax, 9
jge 0x419e99
lea eax, [edi - 6]
lea eax, [edi + eax*4]
lea edi, [edx + eax*2]
jmp 0x419ea7
cmp eax, 0x10
jge 0x419eab
lea eax, [ecx - 6]
lea eax, [ecx + eax*4]
lea ecx, [edx + eax*2]
mov eax, dword [esp + 0x18]
movsx edx, byte [esi + 1]
inc esi
inc eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], eax
cmp edx, 0x30
jge 0x419e84
mov dword [esp + 0x38], ecx
mov ecx, esi
mov dword [esp + 0x24], eax
sub ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], ecx
cmp edx, 0x2e
jne 0x419fff
movsx edx, byte [esi + 1]
inc esi
mov ecx, esi
mov dword [esp + 0x44], esi
sub ecx, dword [esp + 0x54]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x90], ecx
sub ecx, dword [esp + 0x8c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], esi
test eax, eax
jne 0x419f63
cmp edx, 0x30
jne 0x419f47
xor eax, eax
nop word [eax + eax]
movsx edx, byte [esi + 1]
inc esi
inc eax
mov dword [esp + 0x1c], esi
cmp edx, 0x30
je 0x419f30
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], esi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x419ffb
mov eax, dword [esp + 0x20]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x54], esi
jmp 0x419f73
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x419ff7
mov eax, dword [esp + 0x20]
inc eax
sub edx, 0x30
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], edx
je 0x419fe5
add dword [esp + 0x48], eax
cmp eax, 1
jle 0x419fbb
mov edx, dword [esp + 0x18]
lea esi, [eax - 1]
mov eax, edx
inc edx
cmp eax, 9
jge 0x419fa0
lea edi, [edi + edi*4]
add edi, edi
jmp 0x419faa
cmp edx, 0x10
jg 0x419faa
lea ecx, [ecx + ecx*4]
add ecx, ecx
sub esi, 1
jne 0x419f91
mov esi, dword [esp + 0x44]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
inc dword [esp + 0x18]
cmp eax, 9
jge 0x419fd0
lea eax, [edi + edi*4]
lea edi, [edx + eax*2]
jmp 0x419fdd
cmp dword [esp + 0x18], 0x10
jg 0x419fdd
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*2]
mov dword [esp + 0x20], 0
movsx edx, byte [esi + 1]
inc esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], esi
jmp 0x419f63
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], 0
cmp edx, 0x65
je 0x41a019
cmp edx, 0x45
jne 0x41a104
test eax, eax
jne 0x41a02d
cmp dword [esp + 0x20], eax
jne 0x41a02d
cmp dword [esp + 0x5c], eax
je case.0x41a143.74
movsx edx, byte [esi + 1]
mov dword [esp + 0x50], esi
mov eax, edx
inc esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], esi
sub eax, 0x2b
je 0x41a056
sub eax, 2
jne 0x41a05f
mov dword [esp + 0x34], 1
movsx edx, byte [esi + 1]
inc esi
mov dword [esp + 0x1c], esi
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x41a0fc
cmp edx, 0x30
jne 0x41a07e
movsx edx, byte [esi + 1]
inc esi
cmp edx, 0x30
je 0x41a070
mov dword [esp + 0x1c], esi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x41a0f2
mov dword [esp + 0x4c], esi
add edx, 0xffffffd0
inc esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x1c], esi
movsx edx, byte [esi]
cmp edx, 0x30
jl 0x41a0c1
mov ecx, dword [esp + 0x44]
cmp edx, 0x39
jg 0x41a0bd
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 0x41a0a2
mov dword [esp + 0x44], ecx
mov eax, esi
sub eax, dword [esp + 0x4c]
cmp eax, 8
jg 0x41a0d7
mov eax, dword [esp + 0x44]
cmp eax, 0x4e1f
jle 0x41a0dc
mov eax, 0x4e1f
mov ecx, eax
neg ecx
cmp dword [esp + 0x34], 0
cmove ecx, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x38]
jmp 0x41a104
mov dword [esp + 0x4c], 0
jmp 0x41a104
mov esi, dword [esp + 0x50]
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x41a20f
cmp dword [esp + 0x20], eax
jne 0x41afa6
cmp dword [esp + 0x5c], eax
jne 0x41afa6
mov eax, dword [esp + 0x3c]
test eax, eax
jne case.0x41a143.74
add edx, 0xffffffb7
cmp edx, 0x25
ja case.0x41a143.74
movzx eax, byte [edx + 0x41b100]
jmp dword [eax*4 + 0x41b0f4]
mov edx, 0x6e
mov edi, 0x4d8b19
movsx ecx, byte [esi + 1]
inc esi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x41a164
add ecx, 0x20
cmp ecx, edx
jne case.0x41a143.74
movsx edx, byte [edi]
inc edi
test edx, edx
jne 0x41a154
mov eax, esi
lea ecx, [esp + 0x1c]
mov edx, str.inity
mov dword [esp + 0x1c], eax
call fcn.00419550
mov esi, dword [esp + 0x1c]
test eax, eax
jne 0x41a191
inc esi
mov dword [esp + 0x14], 0x7ff00000
mov dword [esp + 0x10], 0
movsd xmm1, qword [esp + 0x10]
jmp 0x41afa6
mov edx, 0x61
mov edi, 0x4d8b25
movsx ecx, byte [esi + 1]
inc esi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x41a1c6
add ecx, 0x20
cmp ecx, edx
jne case.0x41a143.74
movsx edx, byte [edi]
inc edi
test edx, edx
jne 0x41a1b6
inc esi
mov dword [esp + 0x14], 0x7ff80000
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], edx
cmp byte [esi], 0x28
jne 0x41a1a1
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x10]
call fcn.00419590
movsd xmm1, qword [esp + 0x10]
mov esi, dword [esp + 0x1c]
jmp 0x41afa6
mov esi, dword [esp + 0x50]
xor eax, eax
jmp 0x41afaa
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x24]
test edx, edx
movd xmm0, edi
cmove edx, eax
mov dword [esp + 0x24], 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 + 0x4dad00]
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x10], xmm0
cmp edx, 9
jle 0x41a298
movsd xmm1, qword [edx*8 + 0x4d8b60]
mulsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4dad00]
addsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x18]
cmp eax, 0xf
jg 0x41a335
call fcn.00468dbd
cmp eax, 1
jne 0x41a327
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x41af9a
jle 0x41a305
cmp edx, 0x16
jg 0x41a2d6
movsd xmm1, qword [esp + 0x28]
mulsd xmm1, qword [edx*8 + 0x4d8ba8]
jmp 0x41afa0
mov ecx, 0xf
sub ecx, dword [esp + 0x18]
lea eax, [ecx + 0x16]
cmp edx, eax
jg 0x41a327
movsd xmm1, qword [esp + 0x28]
sub edx, ecx
mulsd xmm1, qword [ecx*8 + 0x4d8ba8]
mulsd xmm1, qword [edx*8 + 0x4d8ba8]
jmp 0x41afa0
cmp edx, 0xffffffea
jl 0x41a327
movsd xmm1, qword [esp + 0x28]
lea eax, [edx*8]
mov ecx, 0x4d8ba8
sub ecx, eax
divsd xmm1, qword [ecx]
jmp 0x41afa0
movsd xmm2, qword [esp + 0x78]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
sub ecx, edx
xor edx, edx
add ecx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0xb0], edx
test ecx, ecx
jle 0x41a40c
movsd xmm1, qword [esp + 0x28]
mov eax, ecx
and eax, 0xf
je 0x41a36e
mulsd xmm1, qword [eax*8 + 0x4d8ba8]
movsd qword [esp + 0x10], xmm1
and ecx, 0xfffffff0
je 0x41a508
cmp ecx, 0x134
jg 0x41ad7f
sar ecx, 4
xor eax, eax
cmp ecx, 1
jle 0x41a3ac
nop dword [eax]
test cl, 1
je 0x41a3a4
mulsd xmm1, qword [eax*8 + 0x4d8b50]
movsd qword [esp + 0x10], xmm1
sar ecx, 1
inc eax
cmp ecx, 1
jg 0x41a390
sub dword [esp + 0x14], 0x3500000
movsd xmm0, qword [eax*8 + 0x4d8b50]
mulsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, eax
and ecx, 0x7ff00000
cmp ecx, 0x7ca00000
ja 0x41ad7f
cmp ecx, 0x7c900000
jbe 0x41a3fe
mov dword [esp + 0x14], 0x7fefffff
mov dword [esp + 0x10], 0xffffffff
jmp 0x41a508
add eax, 0x3500000
mov dword [esp + 0x14], eax
jmp 0x41a508
jns 0x41a508
movsd xmm1, qword [esp + 0x28]
neg ecx
mov eax, ecx
and eax, 0xf
je 0x41a436
divsd xmm1, qword [eax*8 + 0x4d8ba8]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x10], xmm1
sar ecx, 4
test ecx, ecx
je 0x41a508
cmp ecx, 0x20
jge 0x41af83
test cl, 0x10
mov eax, 0x6a
cmovne edx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0xb0], edx
test ecx, ecx
jle 0x41a48e
mov eax, 0x4d8b80
nop dword [eax]
test cl, 1
je 0x41a47f
mulsd xmm1, qword [eax]
movsd qword [esp + 0x10], xmm1
sar ecx, 1
add eax, 8
test ecx, ecx
jg 0x41a470
movsd qword [esp + 0x28], xmm1
test edx, edx
je 0x41a4f4
mov edx, dword [esp + 0x14]
mov ecx, 0x6b
mov eax, edx
shr eax, 0x14
and eax, 0x7ff
sub ecx, eax
test ecx, ecx
jle 0x41a4f4
cmp ecx, 0x20
jl 0x41a4e3
mov dword [esp + 0x10], 0
cmp ecx, 0x35
jl 0x41a4cd
mov dword [esp + 0x14], 0x3700000
movsd xmm1, qword [esp + 0x10]
jmp 0x41a4fa
add ecx, 0xffffffe0
or eax, 0xffffffff
shl eax, cl
and edx, eax
mov dword [esp + 0x14], edx
movsd xmm1, qword [esp + 0x10]
jmp 0x41a4fa
or eax, 0xffffffff
shl eax, cl
and dword [esp + 0x10], eax
movsd xmm1, qword [esp + 0x10]
jmp 0x41a4fa
movsd xmm1, qword [esp + 0x28]
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x41af83
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], edx
cmp esi, 0x28
jle 0x41a5f0
mov eax, 0x12
mov ecx, eax
cmp edx, eax
jge 0x41a538
mov eax, dword [esp + 0x3c]
add eax, ecx
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x54]
dec eax
cmp eax, dword [esp + 0x58]
jg 0x41a551
cmp eax, esi
jl 0x41a551
lea eax, [esi - 1]
cmp byte [eax + edx], 0x30
jne 0x41a55a
dec ecx
jmp 0x41a543
mov esi, dword [esp + 0x18]
mov edx, ecx
sub esi, ecx
add dword [esp + 0x4c], esi
mov esi, ecx
cmp dword [esp + 0x24], ecx
mov dword [esp + 0x18], esi
cmovle edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], edx
cmp ecx, 9
jge 0x41a5f0
mov eax, dword [esp + 0x24]
xor edi, edi
xor edx, edx
test eax, eax
jle 0x41a5ae
mov esi, eax
mov eax, dword [esp + 0x54]
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 0x41a590
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
cmp edx, esi
jge 0x41a5ec
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x54]
sub esi, edx
mov dword [esp + 0x34], esi
mov esi, eax
mov dword [esp + 0x58], eax
sub dword [esp + 0x34], 1
lea edi, [edi + edi*4]
movsx eax, byte [esi]
lea edi, [edi - 0x18]
lea esi, [esi + 1]
lea edi, [eax + edi*2]
jne 0x41a5d2
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
push edi
push esi
call fcn.00418980
movsd xmm0, qword [0x4daca0]
mov edi, eax
movsd qword [esp + 0x12c], xmm0
add esp, 0xc
movsd xmm0, qword [0x4dac90]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [0x4dac80]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x4dace8]
movsd qword [esp + 0x128], xmm0
movsd xmm0, qword [0x4dacc0]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x4dac60]
movsd qword [esp + 0x138], xmm0
movsd xmm0, qword [0x4dac78]
movsd qword [esp + 0x140], xmm0
movsd xmm0, qword [0x4dac88]
mov dword [esp + 0x58], edi
movsd qword [esp + 0x148], xmm0
mov ecx, dword [edi + 4]
mov esi, 1
call fcn.004187a0
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x44], eax
lea ecx, [ecx*4 + 8]
push ecx
lea ecx, [edi + 0xc]
push ecx
lea ecx, [eax + 0xc]
push ecx
call fcn.004534f0
add esp, 0xc
lea eax, [esp + 0x5c]
lea edx, [esp + 0x50]
lea ecx, [esp + 0x10]
push eax
call fcn.00419360
add esp, 4
mov dword [esp + 0x38], eax
mov ecx, esi
call fcn.00418b20
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
test eax, eax
js 0x41a6f2
xor edi, edi
mov dword [esp + 0x3c], eax
mov ecx, eax
jmp 0x41a6fc
mov edi, eax
neg edi
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x28], ecx
mov dword [esp + 0xb8], edi
test edx, edx
js 0x41a713
add edi, edx
jmp 0x41a719
sub ecx, edx
mov dword [esp + 0x3c], ecx
sub edx, dword [esp + 0x20]
mov esi, edi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], edi
mov dword [esp + 0xfc], edi
lea ecx, [eax - 1]
add ecx, edx
add edx, 0x433
mov dword [esp + 0x48], edx
mov edx, 0x36
sub edx, eax
mov eax, dword [esp + 0x20]
cmp ecx, 0xfffffc02
mov ecx, esi
cmovl edx, dword [esp + 0x48]
add eax, edx
add edi, edx
mov edx, dword [esp + 0x3c]
add edx, eax
cmp edi, edx
mov dword [esp + 0x3c], edx
mov eax, edx
cmovl eax, edi
cmp eax, esi
cmovle ecx, eax
test ecx, ecx
jle 0x41a77d
sub edx, ecx
sub edi, ecx
mov dword [esp + 0x3c], edx
sub esi, ecx
mov eax, dword [esp + 0xb8]
test eax, eax
jle 0x41a909
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.00418ce0
mov edx, dword [esp + 0x38]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.00418bc0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x41a901
cmp dword [ecx + 4], 7
jle 0x41a7d4
push ecx
call fcn.0045b25a
mov eax, dword [esp + 0x38]
add esp, 4
mov ecx, eax
mov dword [esp + 0x38], ecx
jmp 0x41a90d
mov eax, dword [esp + 0x74]
test al, 1
je 0x41a7ef
and eax, 0xfffffffe
lea ecx, [esp + 0x150]
mov dword [esp + 0x74], eax
call fcn.00414df0
mov eax, dword [0x4e8f28]
test eax, 0xfffffffe
jne 0x41a84e
mov ecx, 1
xor eax, eax
mov edx, 0x4e8f28
lock cmpxchg dword [edx], ecx
test eax, eax
je 0x41a834
mov eax, dword [0x4e8f28]
cmp eax, 1
jne 0x41a84e
nop dword [eax]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x4e8f28]
cmp eax, 1
je 0x41a820
jmp 0x41a84e
push 0x7d0
push 0x4e8f2c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [0x4e8f28], 0x4e8f2c
mov eax, dword [0x4e8f28]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x38]
mov ecx, dword [edx + 4]
mov eax, dword [ecx*4 + 0x4e8f04]
mov dword [edx], eax
mov eax, dword [esp + 0x74]
mov dword [ecx*4 + 0x4e8f04], edx
test al, al
jns 0x41a88e
and eax, 0xffffff7f
lea ecx, [esp + 0x200]
mov dword [esp + 0x74], eax
call fcn.00414df0
mov eax, dword [0x4e8f28]
test eax, 0xfffffffe
jne 0x41a8e6
mov ecx, 1
xor eax, eax
mov edx, 0x4e8f28
lock cmpxchg dword [edx], ecx
test eax, eax
je 0x41a8cc
mov eax, dword [0x4e8f28]
cmp eax, 1
jne 0x41a8e6
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x4e8f28]
cmp eax, 1
je 0x41a8b8
jmp 0x41a8e6
push 0x7d0
push 0x4e8f2c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [0x4e8f28], 0x4e8f2c
mov eax, dword [0x4e8f28]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov ecx, eax
mov dword [esp + 0x38], ecx
jmp 0x41a90d
mov ecx, dword [esp + 0x38]
test edi, edi
jle 0x41a920
mov edx, edi
call fcn.00418e90
mov edi, eax
mov dword [esp + 0x38], edi
jmp 0x41a924
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x41a93d
mov ecx, dword [esp + 0x44]
mov edx, eax
call fcn.00418ce0
mov dword [esp + 0x44], eax
jmp 0x41a941
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jle 0x41a956
mov edx, ecx
mov ecx, eax
call fcn.00418e90
mov dword [esp + 0x44], eax
test esi, esi
jle 0x41a96d
mov ecx, dword [esp + 0x24]
mov edx, esi
call fcn.00418e90
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
mov edx, eax
mov ecx, edi
call fcn.004190a0
mov edx, dword [esp + 0x24]
mov ecx, eax
mov dword [esp + 0x48], eax
mov edi, dword [eax + 0xc]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x98], edi
mov dword [eax + 0xc], 0
call fcn.00419050
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xa4]
cmp ecx, esi
jle 0x41a9b1
test eax, eax
jle 0x41ad4a
test eax, eax
js 0x41aed7
je 0x41ada5
mov edi, dword [esp + 0x48]
lea edx, [esp + 0xcc]
mov ecx, edi
call fcn.00419200
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xd0]
movaps xmm1, xmm0
movsd qword [esp + 0xd8], xmm1
call fcn.00419200
mov ecx, dword [esp + 0x24]
mov eax, dword [edi + 0x10]
movsd qword [esp + 0xe0], xmm0
sub eax, dword [ecx + 0x10]
shl eax, 5
sub eax, dword [esp + 0xd0]
add eax, dword [esp + 0xcc]
test eax, eax
jle 0x41aa2a
shl eax, 0x14
add dword [esp + 0xdc], eax
movsd xmm1, qword [esp + 0xd8]
jmp 0x41aa40
imul eax, eax, 0xfff00000
add dword [esp + 0xe4], eax
movsd xmm0, qword [esp + 0xe0]
divsd xmm1, xmm0
mov edi, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x120]
comisd xmm0, xmm1
jb 0x41aadc
cmp dword [esp + 0x3c], 0
je 0x41aa73
movsd xmm2, qword [esp + 0xe8]
movaps xmm1, xmm2
jmp 0x41ab2c
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x41aabb
test edi, 0xfffff
jne 0x41aac8
movsd xmm0, qword [esp + 0xe8]
comisd xmm0, xmm1
jbe 0x41aaa8
movsd xmm1, qword [esp + 0xc0]
movaps xmm2, xmm1
xorps xmm2, xmmword [esp + 0x60]
jmp 0x41ab2c
mulsd xmm1, qword [esp + 0xc0]
movaps xmm2, xmm1
xorps xmm2, xmmword [esp + 0x60]
jmp 0x41ab2c
cmp eax, 1
jne 0x41aac8
test edi, edi
je 0x41ad5e
movsd xmm1, qword [esp + 0xe8]
movsd xmm2, qword [esp + 0x128]
jmp 0x41ab2c
cmp dword [esp + 0x3c], 0
mulsd xmm1, qword [esp + 0xc0]
movsd qword [esp + 0xb8], xmm1
je 0x41aafd
movsd qword [esp + 0x28], xmm1
jmp 0x41ab0b
movaps xmm0, xmm1
xorps xmm0, xmmword [esp + 0x60]
movsd qword [esp + 0x28], xmm0
call fcn.00468dbd
movsd xmm2, qword [esp + 0x28]
movsd xmm1, qword [esp + 0xb8]
test eax, eax
jne 0x41ab32
addsd xmm2, qword [esp + 0xc0]
movsd qword [esp + 0x28], xmm2
mov edx, edi
and edx, 0x7ff00000
mov dword [esp + 0x34], edx
cmp edx, 0x7fe00000
jne 0x41abf5
movsd xmm0, qword [esp + 0x10]
sub edi, 0x3500000
mov dword [esp + 0x14], edi
and edi, 0x7ff00000
sub edi, 0x3400000
movsd qword [esp + 0x80], xmm0
mov dword [esp + 0x104], edi
mov dword [esp + 0x100], 0
movsd xmm0, qword [esp + 0x100]
mulsd xmm0, xmm2
addsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ca00000
jb 0x41abdc
cmp dword [esp + 0x84], 0x7fefffff
jne 0x41abc7
cmp dword [esp + 0x80], 0xffffffff
je 0x41ad7b
mov dword [esp + 0x14], 0x7fefffff
mov dword [esp + 0x10], 0xffffffff
jmp 0x41ad1d
mov edi, dword [esp + 0x20]
add ecx, 0x3500000
mov dword [esp + 0x14], ecx
movsd xmm0, qword [esp + 0x10]
jmp 0x41acaa
mov edi, dword [esp + 0x20]
test edi, edi
je 0x41ac75
cmp edx, 0x6a00000
ja 0x41ac75
movsd xmm0, qword [esp + 0x130]
comisd xmm0, xmm1
jb 0x41ac4f
movaps xmm0, xmm1
call fcn.004b2551
test eax, eax
mov edx, 1
cmove eax, edx
mov edx, dword [esp + 0x34]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
cmp dword [esp + 0x3c], 0
addsd xmm1, qword [eax*8 + 0x4dad00]
movaps xmm0, xmm1
jne 0x41ac55
xorps xmm0, xmmword [esp + 0x60]
jmp 0x41ac55
movsd xmm0, qword [esp + 0x28]
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 + 0x108], 0
mov dword [esp + 0x10c], eax
movsd xmm0, qword [esp + 0x108]
mulsd xmm0, xmm2
addsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x14]
movsd qword [esp + 0x28], xmm0
cmp dword [esp + 0xa4], esi
jne 0x41ad1d
test edi, edi
jne 0x41ad1d
mov eax, ecx
and eax, 0x7ff00000
cmp edx, eax
jne 0x41ad1d
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cmp dword [esp + 0x3c], edi
jne 0x41acfb
cmp dword [esp + 0x10], edi
jne 0x41acfb
test ecx, 0xfffff
jne 0x41acfb
movsd xmm0, qword [esp + 0x138]
comisd xmm0, xmm1
jmp 0x41ad17
movsd xmm0, qword [esp + 0x140]
comisd xmm0, xmm1
ja 0x41afeb
comisd xmm1, xmmword [esp + 0x148]
ja 0x41afeb
mov ecx, dword [esp + 0x38]
call fcn.00418860
mov ecx, dword [esp + 0x44]
call fcn.00418860
mov ecx, dword [esp + 0x24]
call fcn.00418860
mov ecx, dword [esp + 0x48]
call fcn.00418860
mov edi, dword [esp + 0x58]
jmp 0x41a690
test edi, edi
jne 0x41afdb
mov dword [esp + 0xa4], esi
jmp 0x41aedf
cmp dword [esp + 0xa4], esi
jle 0x41af77
mov dword [esp + 0xb4], 1
jmp 0x41afdb
mov esi, dword [esp + 0x1c]
call fcn.0045b2d8
mov dword [esp + 0x14], 0x7ff00000
mov dword [esp + 0x10], 0
movsd xmm1, qword [esp + 0x10]
mov dword [eax], 0x22
jmp 0x41afa0
mov edx, dword [esp + 0x10]
test edi, edi
mov edi, dword [esp + 0x14]
je 0x41ae10
mov eax, edi
and eax, 0xfffff
cmp eax, 0xfffff
jne 0x41ae20
cmp dword [esp + 0x20], 0
je 0x41ade5
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6a00000
ja 0x41ade5
shr eax, 0x14
mov ecx, 0x6b
sub ecx, eax
or eax, 0xffffffff
shl eax, cl
jmp 0x41ade8
or eax, 0xffffffff
cmp edx, eax
jne 0x41ae20
and edi, 0x7ff00000
mov dword [esp + 0x10], 0
add edi, 0x100000
mov dword [esp + 0x98], 0
jmp 0x41afd7
test edi, 0xfffff
jne 0x41ae20
test edx, edx
je 0x41af4a
test dl, 1
je 0x41afdb
mov ecx, dword [esp + 0x3c]
and edi, 0x7ff00000
sub edi, 0x3400000
test ecx, ecx
je 0x41ae7d
mov dword [esp + 0x114], edi
mov dword [esp + 0x110], 0
movsd xmm0, qword [esp + 0x110]
addsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x10], xmm0
mov eax, 1
sub eax, ecx
mov dword [esp + 0x98], eax
jmp 0x41afe7
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x78]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x118], 0
subsd xmm0, qword [esp + 0x118]
ucomisd xmm0, xmm1
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x10], xmm0
lahf
test ah, 0x44
jp 0x41ae6a
cmp dword [esp + 0xa4], esi
jle 0x41af7d
mov dword [esp + 0xb4], 1
jmp 0x41afe7
test edi, edi
jne 0x41afdb
cmp dword [esp + 0x10], 0
jne 0x41afdb
mov edi, dword [esp + 0x14]
test edi, 0xfffff
jne 0x41afdb
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jbe 0x41afdb
mov eax, dword [esp + 0x48]
cmp dword [eax + 0x14], 0
jne 0x41af20
cmp dword [eax + 0x10], 1
jle 0x41afdb
mov edx, 1
mov ecx, eax
call fcn.00418e90
mov edx, dword [esp + 0x24]
mov ecx, eax
mov dword [esp + 0x48], eax
call fcn.00419050
test eax, eax
jle 0x41afdb
mov ecx, dword [esp + 0xa4]
cmp dword [esp + 0x20], 0
je 0x41afc8
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6b00000
ja 0x41afc8
cmp eax, 0x3700000
ja 0x41afdb
cmp ecx, esi
jle 0x41af77
mov dword [esp + 0xb4], 1
jmp 0x41afdb
movsd xmm1, qword [esp + 0x78]
mov esi, dword [esp + 0x1c]
jmp 0x41af89
movsd xmm1, qword [esp + 0x78]
movsd qword [esp + 0x28], xmm1
call fcn.0045b2d8
mov dword [eax], 0x22
movsd xmm1, qword [esp + 0x28]
movsd xmm0, qword [esp + 0x60]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xd4]
test ecx, ecx
je 0x41afb7
mov dword [ecx], esi
test eax, eax
je 0x41b0a4
xorps xmm0, xmm1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
and edi, 0x7ff00000
mov dword [esp + 0x10], 0xffffffff
dec edi
mov dword [esp + 0x14], edi
movsd xmm1, qword [esp + 0x10]
movsd qword [esp + 0x28], xmm1
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
call fcn.00418860
mov ecx, dword [esp + 0x44]
call fcn.00418860
mov ecx, dword [esp + 0x24]
call fcn.00418860
mov ecx, dword [esp + 0x58]
call fcn.00418860
mov ecx, dword [esp + 0x48]
call fcn.00418860
cmp dword [esp + 0xa4], esi
jle 0x41b048
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x14]
call fcn.004198b0
mov edi, dword [esp + 0xb4]
add esp, 4
movsd xmm1, qword [esp + 0x10]
jmp 0x41b04e
movsd xmm1, qword [esp + 0x28]
test edi, edi
je 0x41b09b
mov dword [esp + 0x84], 0x39500000
mov dword [esp + 0x80], 0
mulsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x10], xmm1
test dword [esp + 0x14], 0x7ff00000
movsd qword [esp + 0x28], xmm1
jne 0x41b09b
call fcn.0045b2d8
mov esi, dword [esp + 0x1c]
mov dword [eax], 0x22
jmp 0x41af9a
mov esi, dword [esp + 0x1c]
jmp 0x41afa0
pop edi
movaps xmm0, xmm1
pop esi
mov esp, ebp
pop ebp
ret