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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2a8
movsd xmm0, qword [0x48d600]
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 + 0x44], 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 + 0x28], esi
movsd qword [esp + 0x5c], xmm0
push edi
cmp eax, 0x2d
ja case.0x4199e7.1
nop word [eax + eax]
movzx eax, byte [eax + 0x41acd0]
jmp dword [eax*4 + 0x41acbc]
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x2c], esi
cmp eax, 0x2d
jbe 0x4199e0
jmp case.0x4199e7.1
mov dword [esp + 0x40], 1
inc esi
mov dword [esp + 0x2c], esi
cmp byte [esi], cl
je case.0x419d13.74
mov dl, byte [esi]
cmp dl, 0x30
jne 0x419a36
mov dword [esp + 0x5c], 1
inc esi
cmp byte [esi], 0x30
je 0x419a22
mov dl, byte [esi]
mov dword [esp + 0x2c], esi
test dl, dl
je 0x41abb3
xor ecx, ecx
movsx edx, dl
xor eax, eax
mov dword [esp + 0x54], esi
xor edi, edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], eax
cmp edx, 0x30
jl 0x419a92
cmp edx, 0x39
jg 0x419a8e
cmp eax, 9
jge 0x419a69
lea eax, [edi - 6]
lea eax, [edi + eax*4]
lea edi, [edx + eax*2]
jmp 0x419a77
cmp eax, 0x10
jge 0x419a7b
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 + 0x2c], esi
mov dword [esp + 0x18], eax
cmp edx, 0x30
jge 0x419a54
mov dword [esp + 0x3c], ecx
mov ecx, esi
mov dword [esp + 0x1c], 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 0x419bcf
movsx edx, byte [esi + 1]
inc esi
mov ecx, esi
mov dword [esp + 0x24], esi
sub ecx, dword [esp + 0x54]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x90], ecx
sub ecx, dword [esp + 0x8c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], esi
test eax, eax
jne 0x419b33
cmp edx, 0x30
jne 0x419b17
xor eax, eax
nop word [eax + eax]
movsx edx, byte [esi + 1]
inc esi
inc eax
mov dword [esp + 0x2c], esi
cmp edx, 0x30
je 0x419b00
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x419bcb
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x54], esi
jmp 0x419b43
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x419bc7
mov eax, dword [esp + 0x20]
inc eax
sub edx, 0x30
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
je 0x419bb5
add dword [esp + 0x44], eax
cmp eax, 1
jle 0x419b8b
mov edx, dword [esp + 0x18]
lea esi, [eax - 1]
mov eax, edx
inc edx
cmp eax, 9
jge 0x419b70
lea edi, [edi + edi*4]
add edi, edi
jmp 0x419b7a
cmp edx, 0x10
jg 0x419b7a
lea ecx, [ecx + ecx*4]
add ecx, ecx
sub esi, 1
jne 0x419b61
mov esi, dword [esp + 0x24]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
inc dword [esp + 0x18]
cmp eax, 9
jge 0x419ba0
lea eax, [edi + edi*4]
lea edi, [edx + eax*2]
jmp 0x419bad
cmp dword [esp + 0x18], 0x10
jg 0x419bad
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 + 0x24], esi
mov dword [esp + 0x2c], esi
jmp 0x419b33
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x4c], 0
cmp edx, 0x65
je 0x419be9
cmp edx, 0x45
jne 0x419cd4
test eax, eax
jne 0x419bfd
cmp dword [esp + 0x20], eax
jne 0x419bfd
cmp dword [esp + 0x5c], eax
je case.0x419d13.74
movsx edx, byte [esi + 1]
mov dword [esp + 0x50], esi
mov eax, edx
inc esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], esi
sub eax, 0x2b
je 0x419c26
sub eax, 2
jne 0x419c2f
mov dword [esp + 0x28], 1
movsx edx, byte [esi + 1]
inc esi
mov dword [esp + 0x2c], esi
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x419ccc
cmp edx, 0x30
jne 0x419c4e
movsx edx, byte [esi + 1]
inc esi
cmp edx, 0x30
je 0x419c40
mov dword [esp + 0x2c], esi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x419cc2
mov dword [esp + 0x4c], esi
add edx, 0xffffffd0
inc esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], esi
movsx edx, byte [esi]
cmp edx, 0x30
jl 0x419c91
mov ecx, dword [esp + 0x24]
cmp edx, 0x39
jg 0x419c8d
inc esi
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
mov dword [esp + 0x2c], esi
lea ecx, [edx + ecx*2]
movsx edx, byte [esi]
cmp edx, 0x30
jge 0x419c72
mov dword [esp + 0x24], ecx
mov eax, esi
sub eax, dword [esp + 0x4c]
cmp eax, 8
jg 0x419ca7
mov eax, dword [esp + 0x24]
cmp eax, 0x4e1f
jle 0x419cac
mov eax, 0x4e1f
mov ecx, eax
neg ecx
cmp dword [esp + 0x28], 0
cmove ecx, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x3c]
jmp 0x419cd4
mov dword [esp + 0x4c], 0
jmp 0x419cd4
mov esi, dword [esp + 0x50]
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x419dfd
cmp dword [esp + 0x20], eax
jne 0x41abb3
cmp dword [esp + 0x5c], eax
jne 0x41abb3
mov eax, dword [esp + 0x48]
test eax, eax
jne case.0x419d13.74
add edx, 0xffffffb7
cmp edx, 0x25
ja case.0x419d13.74
movzx eax, byte [edx + 0x41ad0c]
jmp dword [eax*4 + 0x41ad00]
mov edx, 0x6e
mov edi, 0x48cfdd
movsx ecx, byte [esi + 1]
inc esi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x419d34
add ecx, 0x20
cmp ecx, edx
jne case.0x419d13.74
movsx edx, byte [edi]
inc edi
test edx, edx
jne 0x419d24
mov edx, esi
mov dword [esp + 0x28], 0x48cfe1
mov edi, 0x69
movsx ecx, byte [edx + 1]
lea edx, [edx + 1]
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x419d65
add ecx, 0x20
cmp ecx, edi
jne 0x419d7e
mov eax, dword [esp + 0x28]
movsx edi, byte [eax]
inc eax
mov dword [esp + 0x28], eax
test edi, edi
jne 0x419d53
lea esi, [edx + 1]
jmp 0x419d7f
inc esi
mov dword [esp + 0x14], 0x7ff00000
mov dword [esp + 0x10], 0
movsd xmm1, qword [esp + 0x10]
jmp 0x41abb3
mov edx, 0x61
mov edi, 0x48cfe9
movsx ecx, byte [esi + 1]
inc esi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x419db4
add ecx, 0x20
cmp ecx, edx
jne case.0x419d13.74
movsx edx, byte [edi]
inc edi
test edx, edx
jne 0x419da4
inc esi
mov dword [esp + 0x14], 0x7ff80000
mov dword [esp + 0x2c], esi
mov dword [esp + 0x10], edx
cmp byte [esi], 0x28
jne 0x419d8f
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x10]
call fcn.004192b0
movsd xmm1, qword [esp + 0x10]
mov esi, dword [esp + 0x2c]
jmp 0x41abb3
mov esi, dword [esp + 0x50]
xor eax, eax
jmp 0x41abb7
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x44]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x1c]
test edx, edx
movd xmm0, edi
cmove edx, eax
mov dword [esp + 0x1c], 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 + 0x48d5e0]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x10], xmm0
cmp edx, 9
jle 0x419e86
movsd xmm1, qword [edx*8 + 0x48d020]
mulsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x48d5e0]
addsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x18]
cmp eax, 0xf
jg 0x419f23
call fcn.004546a8
cmp eax, 1
jne 0x419f15
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x41aba7
jle 0x419ef3
cmp edx, 0x16
jg 0x419ec4
movsd xmm1, qword [esp + 0x30]
mulsd xmm1, qword [edx*8 + 0x48d068]
jmp 0x41abad
mov ecx, 0xf
sub ecx, dword [esp + 0x18]
lea eax, [ecx + 0x16]
cmp edx, eax
jg 0x419f15
movsd xmm1, qword [esp + 0x30]
sub edx, ecx
mulsd xmm1, qword [ecx*8 + 0x48d068]
mulsd xmm1, qword [edx*8 + 0x48d068]
jmp 0x41abad
cmp edx, 0xffffffea
jl 0x419f15
movsd xmm1, qword [esp + 0x30]
lea eax, [edx*8]
mov ecx, 0x48d068
sub ecx, eax
divsd xmm1, qword [ecx]
jmp 0x41abad
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 0x419ffc
movsd xmm1, qword [esp + 0x30]
mov eax, ecx
and eax, 0xf
je 0x419f5c
mulsd xmm1, qword [eax*8 + 0x48d068]
movsd qword [esp + 0x10], xmm1
and ecx, 0xfffffff0
je 0x41a0f8
cmp ecx, 0x134
jg 0x41a940
sar ecx, 4
xor eax, eax
cmp ecx, 1
jle 0x419f9c
nop dword [eax + eax]
test cl, 1
je 0x419f94
mulsd xmm1, qword [eax*8 + 0x48d010]
movsd qword [esp + 0x10], xmm1
sar ecx, 1
inc eax
cmp ecx, 1
jg 0x419f80
sub dword [esp + 0x14], 0x3500000
movsd xmm0, qword [eax*8 + 0x48d010]
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 0x41a940
cmp ecx, 0x7c900000
jbe 0x419fee
mov dword [esp + 0x14], 0x7fefffff
mov dword [esp + 0x10], 0xffffffff
jmp 0x41a0f8
add eax, 0x3500000
mov dword [esp + 0x14], eax
jmp 0x41a0f8
jns 0x41a0f8
movsd xmm1, qword [esp + 0x30]
neg ecx
mov eax, ecx
and eax, 0xf
je 0x41a026
divsd xmm1, qword [eax*8 + 0x48d068]
movsd qword [esp + 0x30], xmm1
movsd qword [esp + 0x10], xmm1
sar ecx, 4
test ecx, ecx
je 0x41a0f8
cmp ecx, 0x20
jge 0x41ab90
test cl, 0x10
mov eax, 0x6a
cmovne edx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0xb0], edx
test ecx, ecx
jle 0x41a07e
mov eax, 0x48d040
nop dword [eax]
test cl, 1
je 0x41a06f
mulsd xmm1, qword [eax]
movsd qword [esp + 0x10], xmm1
sar ecx, 1
add eax, 8
test ecx, ecx
jg 0x41a060
movsd qword [esp + 0x30], xmm1
test edx, edx
je 0x41a0e4
mov edx, dword [esp + 0x14]
mov ecx, 0x6b
mov eax, edx
shr eax, 0x14
and eax, 0x7ff
sub ecx, eax
test ecx, ecx
jle 0x41a0e4
cmp ecx, 0x20
jl 0x41a0d3
mov dword [esp + 0x10], 0
cmp ecx, 0x35
jl 0x41a0bd
mov dword [esp + 0x14], 0x3700000
movsd xmm1, qword [esp + 0x10]
jmp 0x41a0ea
add ecx, 0xffffffe0
or eax, 0xffffffff
shl eax, cl
and edx, eax
mov dword [esp + 0x14], edx
movsd xmm1, qword [esp + 0x10]
jmp 0x41a0ea
or eax, 0xffffffff
shl eax, cl
and dword [esp + 0x10], eax
movsd xmm1, qword [esp + 0x10]
jmp 0x41a0ea
movsd xmm1, qword [esp + 0x30]
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x41ab90
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], edx
cmp esi, 0x28
jle 0x41a1e0
mov eax, 0x12
mov ecx, eax
cmp edx, eax
jge 0x41a128
mov eax, dword [esp + 0x48]
add eax, ecx
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x54]
dec eax
cmp eax, dword [esp + 0x58]
jg 0x41a141
cmp eax, esi
jl 0x41a141
lea eax, [esi - 1]
cmp byte [eax + edx], 0x30
jne 0x41a14a
dec ecx
jmp 0x41a133
mov esi, dword [esp + 0x18]
mov edx, ecx
sub esi, ecx
add dword [esp + 0x4c], esi
mov esi, ecx
cmp dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
cmovle edx, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], edx
cmp ecx, 9
jge 0x41a1e0
mov eax, dword [esp + 0x1c]
xor edi, edi
xor edx, edx
test eax, eax
jle 0x41a19e
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 0x41a180
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
cmp edx, esi
jge 0x41a1dc
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x54]
sub esi, edx
mov dword [esp + 0x28], esi
mov esi, eax
mov dword [esp + 0x58], eax
sub dword [esp + 0x28], 1
lea edi, [edi + edi*4]
movsx eax, byte [esi]
lea edi, [edi - 0x18]
lea esi, [esi + 1]
lea edi, [eax + edi*2]
jne 0x41a1c2
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
push edi
push esi
call fcn.004186f0
movsd xmm0, qword [0x48d588]
mov edi, eax
movsd qword [esp + 0x12c], xmm0
add esp, 0xc
movsd xmm0, qword [0x48d578]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [0x48d568]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x48d5c8]
movsd qword [esp + 0x128], xmm0
movsd xmm0, qword [0x48d5b8]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x48d548]
movsd qword [esp + 0x138], xmm0
movsd xmm0, qword [0x48d560]
movsd qword [esp + 0x140], xmm0
movsd xmm0, qword [0x48d570]
mov dword [esp + 0x58], edi
movsd qword [esp + 0x148], xmm0
mov ecx, dword [edi + 4]
mov esi, 1
call fcn.00418510
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x48], eax
lea ecx, [ecx*4 + 8]
push ecx
lea ecx, [edi + 0xc]
push ecx
lea ecx, [eax + 0xc]
push ecx
call fcn.0044b300
add esp, 0xc
lea eax, [esp + 0x5c]
lea edx, [esp + 0x50]
lea ecx, [esp + 0x10]
push eax
call fcn.00419070
add esp, 4
mov dword [esp + 0x3c], eax
mov ecx, esi
call fcn.00418840
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
test eax, eax
js 0x41a2e2
xor edi, edi
mov dword [esp + 0x24], eax
mov ecx, eax
jmp 0x41a2ec
mov edi, eax
neg edi
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x30], ecx
mov dword [esp + 0xb8], edi
test edx, edx
js 0x41a303
add edi, edx
jmp 0x41a309
sub ecx, edx
mov dword [esp + 0x24], ecx
sub edx, dword [esp + 0x20]
mov esi, edi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], edi
mov dword [esp + 0xfc], edi
lea ecx, [eax - 1]
add ecx, edx
add edx, 0x433
mov dword [esp + 0x44], edx
mov edx, 0x36
sub edx, eax
mov eax, dword [esp + 0x20]
cmp ecx, 0xfffffc02
mov ecx, dword [esp + 0x24]
cmovl edx, dword [esp + 0x44]
add eax, edx
add edi, edx
add ecx, eax
mov edx, esi
cmp edi, ecx
mov dword [esp + 0x24], ecx
mov eax, ecx
cmovl eax, edi
cmp eax, esi
cmovle edx, eax
test edx, edx
jle 0x41a36d
sub ecx, edx
sub edi, edx
mov dword [esp + 0x24], ecx
sub esi, edx
mov eax, dword [esp + 0xb8]
test eax, eax
jle 0x41a4a4
mov ecx, dword [esp + 0x1c]
mov edx, eax
call fcn.00418a00
mov edx, dword [esp + 0x3c]
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.004188e0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x41a49c
cmp dword [ecx + 4], 7
jle 0x41a3c4
push ecx
call fcn.00452146
mov eax, dword [esp + 0x2c]
add esp, 4
mov ecx, eax
mov dword [esp + 0x3c], ecx
jmp 0x41a4a8
mov eax, dword [esp + 0x74]
test al, 1
je 0x41a3df
and eax, 0xfffffffe
lea ecx, [esp + 0x150]
mov dword [esp + 0x74], eax
call fcn.00401d20
mov eax, dword [0x493a00]
test eax, 0xfffffffe
jne 0x41a43e
mov ecx, 1
xor eax, eax
mov edx, 0x493a00
lock cmpxchg dword [edx], ecx
test eax, eax
je 0x41a424
mov eax, dword [0x493a00]
cmp eax, 1
jne 0x41a43e
nop dword [eax]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x493a00]
cmp eax, 1
je 0x41a410
jmp 0x41a43e
push 0x7d0
push 0x493a04
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [0x493a00], 0x493a04
mov eax, dword [0x493a00]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx + 4]
mov eax, dword [ecx*4 + 0x4939e0]
mov dword [edx], eax
mov eax, dword [esp + 0x74]
mov dword [ecx*4 + 0x4939e0], edx
test al, 0x20
je 0x41a47c
and eax, 0xffffffdf
lea ecx, [esp + 0x200]
mov dword [esp + 0x74], eax
call fcn.00401d20
mov ecx, 0x493a00
call fcn.00415900
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov ecx, eax
mov dword [esp + 0x3c], ecx
jmp 0x41a4a8
mov ecx, dword [esp + 0x3c]
test edi, edi
jle 0x41a4bb
mov edx, edi
call fcn.00418bb0
mov edi, eax
mov dword [esp + 0x3c], edi
jmp 0x41a4bf
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x41a4d8
mov ecx, dword [esp + 0x48]
mov edx, eax
call fcn.00418a00
mov dword [esp + 0x48], eax
jmp 0x41a4dc
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
test ecx, ecx
jle 0x41a4f1
mov edx, ecx
mov ecx, eax
call fcn.00418bb0
mov dword [esp + 0x48], eax
test esi, esi
jle 0x41a508
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.00418bb0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov edx, eax
mov ecx, edi
call fcn.00418d20
mov esi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], esi
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov ecx, edi
mov dword [esi + 0xc], 0
mov eax, dword [eax + 0x10]
mov dword [esp + 0x24], edx
mov dword [esp + 0x98], edx
sub ecx, eax
jne 0x41a578
mov edx, dword [esp + 0x1c]
lea ecx, [eax - 1]
add esi, 0x14
lea ecx, [esi + ecx*4]
lea edx, [edx + eax*4]
mov eax, dword [ecx]
add edx, 0x10
cmp eax, dword [edx]
jne 0x41a56a
cmp ecx, esi
jbe 0x41a601
mov eax, dword [ecx - 4]
sub ecx, 4
sub edx, 4
cmp eax, dword [edx]
je 0x41a555
mov eax, dword [ecx]
cmp eax, dword [edx]
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
cmp dword [esp + 0xa4], esi
jle 0x41a58d
test ecx, ecx
jle 0x41a928
test ecx, ecx
js 0x41aa98
je 0x41a966
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xcc]
call fcn.00418f10
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0xd0]
movaps xmm1, xmm0
movsd qword [esp + 0xd8], xmm1
call fcn.00418f10
mov eax, dword [esp + 0x1c]
movsd qword [esp + 0xe0], xmm0
sub edi, dword [eax + 0x10]
shl edi, 5
sub edi, dword [esp + 0xd0]
add edi, dword [esp + 0xcc]
test edi, edi
jle 0x41a608
shl edi, 0x14
add dword [esp + 0xdc], edi
movsd xmm1, qword [esp + 0xd8]
jmp 0x41a61e
xor ecx, ecx
jmp 0x41a574
imul eax, edi, 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 0x41a6ba
cmp dword [esp + 0x24], 0
je 0x41a651
movsd xmm2, qword [esp + 0xe8]
movaps xmm1, xmm2
jmp 0x41a70a
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x41a699
test edi, 0xfffff
jne 0x41a6a6
movsd xmm0, qword [esp + 0xe8]
comisd xmm0, xmm1
jbe 0x41a686
movsd xmm1, qword [esp + 0xc0]
movaps xmm2, xmm1
xorps xmm2, xmmword [esp + 0x60]
jmp 0x41a70a
mulsd xmm1, qword [esp + 0xc0]
movaps xmm2, xmm1
xorps xmm2, xmmword [esp + 0x60]
jmp 0x41a70a
cmp eax, 1
jne 0x41a6a6
test edi, edi
je 0x41ab6e
movsd xmm1, qword [esp + 0xe8]
movsd xmm2, qword [esp + 0x128]
jmp 0x41a70a
cmp dword [esp + 0x24], 0
mulsd xmm1, qword [esp + 0xc0]
movsd qword [esp + 0xb8], xmm1
je 0x41a6db
movsd qword [esp + 0x30], xmm1
jmp 0x41a6e9
movaps xmm0, xmm1
xorps xmm0, xmmword [esp + 0x60]
movsd qword [esp + 0x30], xmm0
call fcn.004546a8
movsd xmm2, qword [esp + 0x30]
movsd xmm1, qword [esp + 0xb8]
test eax, eax
jne 0x41a710
addsd xmm2, qword [esp + 0xc0]
movsd qword [esp + 0x30], xmm2
mov edx, edi
and edx, 0x7ff00000
mov dword [esp + 0x28], edx
cmp edx, 0x7fe00000
jne 0x41a7d3
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 0x41a7ba
cmp dword [esp + 0x84], 0x7fefffff
jne 0x41a7a5
cmp dword [esp + 0x80], 0xffffffff
je 0x41a93c
mov dword [esp + 0x14], 0x7fefffff
mov dword [esp + 0x10], 0xffffffff
jmp 0x41a8fb
mov edi, dword [esp + 0x20]
add ecx, 0x3500000
mov dword [esp + 0x14], ecx
movsd xmm0, qword [esp + 0x10]
jmp 0x41a888
mov edi, dword [esp + 0x20]
test edi, edi
je 0x41a853
cmp edx, 0x6a00000
ja 0x41a853
movsd xmm0, qword [esp + 0x130]
comisd xmm0, xmm1
jb 0x41a82d
movaps xmm0, xmm1
call fcn.0044a2c1
mov edx, dword [esp + 0x28]
test eax, eax
mov ecx, 1
cmove eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
cmp dword [esp + 0x24], 0
addsd xmm1, qword [eax*8 + 0x48d5e0]
movaps xmm0, xmm1
jne 0x41a833
xorps xmm0, xmmword [esp + 0x60]
jmp 0x41a833
movsd xmm0, qword [esp + 0x30]
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 + 0x30], xmm0
cmp dword [esp + 0xa4], esi
jne 0x41a8fb
test edi, edi
jne 0x41a8fb
mov eax, ecx
and eax, 0x7ff00000
cmp edx, eax
jne 0x41a8fb
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cmp dword [esp + 0x24], edi
jne 0x41a8d9
cmp dword [esp + 0x10], edi
jne 0x41a8d9
test ecx, 0xfffff
jne 0x41a8d9
movsd xmm0, qword [esp + 0x138]
comisd xmm0, xmm1
jmp 0x41a8f5
movsd xmm0, qword [esp + 0x140]
comisd xmm0, xmm1
ja 0x41abf8
comisd xmm1, xmmword [esp + 0x148]
ja 0x41abf8
mov ecx, dword [esp + 0x3c]
call fcn.004185d0
mov ecx, dword [esp + 0x48]
call fcn.004185d0
mov ecx, dword [esp + 0x1c]
call fcn.004185d0
mov ecx, dword [esp + 0x44]
call fcn.004185d0
mov edi, dword [esp + 0x58]
jmp 0x41a280
test edx, edx
jne 0x41abe8
mov dword [esp + 0xa4], esi
jmp 0x41aaa0
mov esi, dword [esp + 0x2c]
call fcn.0045385a
mov dword [esp + 0x14], 0x7ff00000
mov dword [esp + 0x10], 0
movsd xmm1, qword [esp + 0x10]
mov dword [eax], 0x22
jmp 0x41abad
mov edi, dword [esp + 0x14]
test edx, edx
mov edx, dword [esp + 0x10]
je 0x41a9d1
mov eax, edi
and eax, 0xfffff
cmp eax, 0xfffff
jne 0x41a9e1
cmp dword [esp + 0x20], 0
je 0x41a9a6
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6a00000
ja 0x41a9a6
shr eax, 0x14
mov ecx, 0x6b
sub ecx, eax
or eax, 0xffffffff
shl eax, cl
jmp 0x41a9a9
or eax, 0xffffffff
cmp edx, eax
jne 0x41a9e1
and edi, 0x7ff00000
mov dword [esp + 0x10], 0
add edi, 0x100000
mov dword [esp + 0x98], 0
jmp 0x41abe4
test edi, 0xfffff
jne 0x41a9e1
test edx, edx
je 0x41ab52
test dl, 1
je 0x41abe8
mov ecx, dword [esp + 0x24]
and edi, 0x7ff00000
sub edi, 0x3400000
test ecx, ecx
je 0x41aa3e
mov dword [esp + 0x114], edi
mov dword [esp + 0x110], 0
movsd xmm0, qword [esp + 0x110]
addsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x10], xmm0
mov eax, 1
sub eax, ecx
mov dword [esp + 0x98], eax
jmp 0x41abf4
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 + 0x30], xmm0
movsd qword [esp + 0x10], xmm0
lahf
test ah, 0x44
jp 0x41aa2b
cmp dword [esp + 0xa4], esi
jle 0x41ab8a
mov dword [esp + 0xb4], 1
jmp 0x41abf4
test edx, edx
jne 0x41abe8
cmp dword [esp + 0x10], 0
jne 0x41abe8
mov edi, dword [esp + 0x14]
test edi, 0xfffff
jne 0x41abe8
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jbe 0x41abe8
mov ecx, dword [esp + 0x44]
cmp dword [ecx + 0x14], 0
jne 0x41aae1
cmp dword [ecx + 0x10], 1
jle 0x41abe8
mov edx, 1
call fcn.00418bb0
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0x10]
mov eax, dword [ecx + 0x10]
sub eax, edx
jne 0x41ab4a
lea eax, [ecx + 0x14]
lea ecx, [edx - 1]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x1c]
add eax, 0x10
lea edx, [eax + edx*4]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41ab40
nop dword [eax + eax]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x18]
add eax, 0x14
cmp ecx, eax
jbe 0x41abe8
mov eax, dword [ecx - 4]
sub ecx, 4
sub edx, 4
cmp eax, dword [edx]
je 0x41ab20
mov eax, dword [ecx]
cmp eax, dword [edx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
jle 0x41abe8
cmp dword [esp + 0x20], 0
je 0x41abd5
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6b00000
ja 0x41abd5
cmp eax, 0x3700000
ja 0x41abe8
cmp dword [esp + 0xa4], esi
jle 0x41ab84
mov dword [esp + 0xb4], 1
jmp 0x41abe8
movsd xmm1, qword [esp + 0x78]
mov esi, dword [esp + 0x2c]
jmp 0x41ab96
movsd xmm1, qword [esp + 0x78]
movsd qword [esp + 0x30], xmm1
call fcn.0045385a
mov dword [eax], 0x22
movsd xmm1, qword [esp + 0x30]
movsd xmm0, qword [esp + 0x60]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xd4]
test ecx, ecx
je 0x41abc4
mov dword [ecx], esi
test eax, eax
je 0x41acb1
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 + 0x30], xmm1
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
call fcn.004185d0
mov ecx, dword [esp + 0x48]
call fcn.004185d0
mov ecx, dword [esp + 0x1c]
call fcn.004185d0
mov ecx, dword [esp + 0x58]
call fcn.004185d0
mov ecx, dword [esp + 0x44]
call fcn.004185d0
cmp dword [esp + 0xa4], esi
jle 0x41ac55
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x14]
call fcn.00419600
mov edi, dword [esp + 0xb4]
add esp, 4
movsd xmm1, qword [esp + 0x10]
jmp 0x41ac5b
movsd xmm1, qword [esp + 0x30]
test edi, edi
je 0x41aca8
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 + 0x30], xmm1
jne 0x41aca8
call fcn.0045385a
mov esi, dword [esp + 0x2c]
mov dword [eax], 0x22
jmp 0x41aba7
mov esi, dword [esp + 0x2c]
jmp 0x41abad
pop edi
movaps xmm0, xmm1
pop esi
mov esp, ebp
pop ebp
ret