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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2a8
movsd xmm0, qword [0x474200]
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.0x41d507.1
nop word [eax + eax]
movzx eax, byte [eax + 0x41e78c]
jmp dword [eax*4 + 0x41e778]
movsx eax, byte [esi + 1]
inc esi
mov dword [esp + 0x1c], esi
cmp eax, 0x2d
jbe 0x41d500
jmp case.0x41d507.1
mov dword [esp + 0x3c], 1
inc esi
mov dword [esp + 0x1c], esi
cmp byte [esi], cl
je case.0x41d833.74
mov dl, byte [esi]
cmp dl, 0x30
jne 0x41d556
mov dword [esp + 0x58], 1
inc esi
cmp byte [esi], 0x30
je 0x41d542
mov dl, byte [esi]
mov dword [esp + 0x1c], esi
test dl, dl
je 0x41e66b
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 0x41d5b2
cmp edx, 0x39
jg 0x41d5ae
cmp eax, 9
jge 0x41d589
lea eax, [edi - 6]
lea eax, [edi + eax*4]
lea edi, [edx + eax*2]
jmp 0x41d597
cmp eax, 0x10
jge 0x41d59b
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 0x41d574
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 0x41d6ef
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 0x41d653
cmp edx, 0x30
jne 0x41d637
xor eax, eax
nop
movsx edx, byte [esi + 1]
inc esi
inc eax
mov dword [esp + 0x1c], esi
cmp edx, 0x30
je 0x41d620
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], esi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x41d6eb
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x4c], esi
jmp 0x41d663
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x41d6e7
mov eax, dword [esp + 0x18]
inc eax
sub edx, 0x30
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], edx
je 0x41d6d5
add dword [esp + 0x38], eax
cmp eax, 1
jle 0x41d6ab
mov edx, dword [esp + 0x14]
lea esi, [eax - 1]
mov eax, edx
inc edx
cmp eax, 9
jge 0x41d690
lea edi, [edi + edi*4]
add edi, edi
jmp 0x41d69a
cmp edx, 0x10
jg 0x41d69a
lea ecx, [ecx + ecx*4]
add ecx, ecx
sub esi, 1
jne 0x41d681
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 0x41d6c0
lea eax, [edi + edi*4]
lea edi, [edx + eax*2]
jmp 0x41d6cd
cmp dword [esp + 0x14], 0x10
jg 0x41d6cd
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 0x41d653
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], 0
cmp edx, 0x65
je 0x41d705
cmp edx, 0x45
jne 0x41d7f4
test eax, eax
jne 0x41d719
cmp dword [esp + 0x18], eax
jne 0x41d719
cmp dword [esp + 0x58], eax
je case.0x41d833.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 0x41d742
sub eax, 2
jne 0x41d74b
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 0x41d7ec
cmp edx, 0x30
jne 0x41d76e
nop dword [eax]
movsx edx, byte [esi + 1]
inc esi
cmp edx, 0x30
je 0x41d760
mov dword [esp + 0x1c], esi
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x41d7e2
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 0x41d7b4
mov ecx, eax
cmp edx, 0x39
jg 0x41d7ac
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 0x41d791
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x40]
mov eax, esi
sub eax, dword [esp + 0x5c]
cmp eax, 8
jg 0x41d7ca
mov eax, dword [esp + 0x34]
cmp eax, 0x4e1f
jle 0x41d7d3
mov eax, 0x4e1f
mov dword [esp + 0x34], eax
cmp dword [esp + 0x44], 0
je 0x41d7f4
neg eax
mov dword [esp + 0x34], eax
jmp 0x41d7f4
mov dword [esp + 0x34], 0
jmp 0x41d7f4
mov esi, dword [esp + 0x50]
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41d91d
cmp dword [esp + 0x18], eax
jne 0x41e66b
cmp dword [esp + 0x58], eax
jne 0x41e66b
mov eax, dword [esp + 0x30]
test eax, eax
jne case.0x41d833.74
add edx, 0xffffffb7
cmp edx, 0x25
ja case.0x41d833.74
movzx eax, byte [edx + 0x41e7c8]
jmp dword [eax*4 + 0x41e7bc]
mov edx, 0x6e
mov edi, 0x4725dd
movsx ecx, byte [esi + 1]
inc esi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x41d854
add ecx, 0x20
cmp ecx, edx
jne case.0x41d833.74
movsx edx, byte [edi]
inc edi
test edx, edx
jne 0x41d844
mov edx, esi
mov dword [esp + 0x48], 0x4725e1
mov edi, 0x69
movsx ecx, byte [edx + 1]
lea edx, [edx + 1]
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x41d885
add ecx, 0x20
cmp ecx, edi
jne 0x41d89e
mov eax, dword [esp + 0x48]
movsx edi, byte [eax]
inc eax
mov dword [esp + 0x48], eax
test edi, edi
jne 0x41d873
lea esi, [edx + 1]
jmp 0x41d89f
inc esi
mov dword [esp + 0xc], 0x7ff00000
mov dword [esp + 8], 0
movsd xmm1, qword [esp + 8]
jmp 0x41e66b
mov edx, 0x61
mov edi, 0x4725e9
movsx ecx, byte [esi + 1]
inc esi
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x41d8d4
add ecx, 0x20
cmp ecx, edx
jne case.0x41d833.74
movsx edx, byte [edi]
inc edi
test edx, edx
jne 0x41d8c4
inc esi
mov dword [esp + 0xc], 0x7ff80000
mov dword [esp + 0x1c], esi
mov dword [esp + 8], edx
cmp byte [esi], 0x28
jne 0x41d8af
lea edx, [esp + 0x1c]
lea ecx, [esp + 8]
call fcn.0041cdd0
movsd xmm1, qword [esp + 8]
mov esi, dword [esp + 0x1c]
jmp 0x41e66b
mov esi, dword [esp + 0x50]
xor eax, eax
jmp 0x41e66f
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 + 0x4741e0]
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm0
cmp edx, 9
jle 0x41d9a6
movsd xmm1, qword [edx*8 + 0x472620]
mulsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4741e0]
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 0x41da46
call fcn.00453fb5
cmp eax, 1
jne 0x41da35
mov edx, dword [esp + 0x34]
test edx, edx
je 0x41e65f
jle 0x41da13
cmp edx, 0x16
jg 0x41d9e4
movsd xmm1, qword [esp + 0x20]
mulsd xmm1, qword [edx*8 + 0x472668]
jmp 0x41e665
mov ecx, 0xf
sub ecx, dword [esp + 0x14]
lea eax, [ecx + 0x16]
cmp edx, eax
jg 0x41da35
movsd xmm1, qword [esp + 0x20]
sub edx, ecx
mulsd xmm1, qword [ecx*8 + 0x472668]
mulsd xmm1, qword [edx*8 + 0x472668]
jmp 0x41e665
cmp edx, 0xffffffea
jl 0x41da35
movsd xmm1, qword [esp + 0x20]
lea eax, [edx*8]
mov ecx, 0x472668
sub ecx, eax
divsd xmm1, qword [ecx]
jmp 0x41e665
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 0x41db1c
movsd xmm1, qword [esp + 0x20]
mov eax, ecx
and eax, 0xf
je 0x41da7f
mulsd xmm1, qword [eax*8 + 0x472668]
movsd qword [esp + 8], xmm1
and ecx, 0xfffffff0
je 0x41dc18
cmp ecx, 0x134
jg 0x41e433
sar ecx, 4
xor eax, eax
cmp ecx, 1
jle 0x41dabc
nop
test cl, 1
je 0x41dab4
mulsd xmm1, qword [eax*8 + 0x472610]
movsd qword [esp + 8], xmm1
sar ecx, 1
inc eax
cmp ecx, 1
jg 0x41daa0
sub dword [esp + 0xc], 0x3500000
movsd xmm0, qword [eax*8 + 0x472610]
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 0x41e433
cmp ecx, 0x7c900000
jbe 0x41db0e
mov dword [esp + 0xc], 0x7fefffff
mov dword [esp + 8], 0xffffffff
jmp 0x41dc18
add eax, 0x3500000
mov dword [esp + 0xc], eax
jmp 0x41dc18
jns 0x41dc18
movsd xmm1, qword [esp + 0x20]
neg ecx
mov eax, ecx
and eax, 0xf
je 0x41db46
divsd xmm1, qword [eax*8 + 0x472668]
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 8], xmm1
sar ecx, 4
test ecx, ecx
je 0x41dc18
cmp ecx, 0x20
jge 0x41e645
test cl, 0x10
mov eax, 0x6a
cmovne edx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0xb8], edx
test ecx, ecx
jle 0x41db9e
mov eax, 0x472640
nop dword [eax]
test cl, 1
je 0x41db8f
mulsd xmm1, qword [eax]
movsd qword [esp + 8], xmm1
sar ecx, 1
add eax, 8
test ecx, ecx
jg 0x41db80
movsd qword [esp + 0x20], xmm1
test edx, edx
je 0x41dc04
mov edx, dword [esp + 0xc]
mov ecx, 0x6b
mov eax, edx
shr eax, 0x14
and eax, 0x7ff
sub ecx, eax
test ecx, ecx
jle 0x41dc04
cmp ecx, 0x20
jl 0x41dbf3
mov dword [esp + 8], 0
cmp ecx, 0x35
jl 0x41dbdd
mov dword [esp + 0xc], 0x3700000
movsd xmm1, qword [esp + 8]
jmp 0x41dc0a
add ecx, 0xffffffe0
or eax, 0xffffffff
shl eax, cl
and edx, eax
mov dword [esp + 0xc], edx
movsd xmm1, qword [esp + 8]
jmp 0x41dc0a
or eax, 0xffffffff
shl eax, cl
and dword [esp + 8], eax
movsd xmm1, qword [esp + 8]
jmp 0x41dc0a
movsd xmm1, qword [esp + 0x20]
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x41e645
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], edx
cmp esi, 0x28
jle 0x41dcf0
mov eax, 0x12
mov ecx, eax
cmp edx, eax
jge 0x41dc48
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 0x41dc61
cmp eax, esi
jl 0x41dc61
lea eax, [esi - 1]
cmp byte [eax + edx], 0x30
jne 0x41dc6a
dec ecx
jmp 0x41dc53
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 0x41dcf0
xor edx, edx
xor edi, edi
cmp dword [esp + 0x2c], edx
jle 0x41dcba
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 0x41dca0
mov esi, dword [esp + 0x14]
cmp edx, esi
jge 0x41dcec
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 0x41dcd2
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.0041c1f0
movsd xmm0, qword [0x474178]
mov ecx, eax
movsd qword [esp + 0x12c], xmm0
add esp, 0xc
movsd xmm0, qword [0x474168]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [0x474158]
lea eax, [ecx + 0xc]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x4741c8]
movsd qword [esp + 0x128], xmm0
movsd xmm0, qword [0x4741b0]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x474138]
movsd qword [esp + 0x138], xmm0
movsd xmm0, qword [0x474150]
movsd qword [esp + 0x140], xmm0
movsd xmm0, qword [0x474160]
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.0041c010
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.0044a2e0
add esp, 0xc
lea eax, [esp + 0xd4]
lea edx, [esp + 0x58]
lea ecx, [esp + 8]
push eax
call fcn.0041cb90
add esp, 4
mov dword [esp + 0x2c], eax
mov ecx, edi
call fcn.0041c340
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
test eax, eax
js 0x41de00
xor edi, edi
mov dword [esp + 0x50], eax
xor ecx, ecx
jmp 0x41de0e
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 0x41de26
add ecx, edx
mov dword [esp + 0x44], ecx
jmp 0x41de2c
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 0x41de9a
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 0x41dfc7
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.0041c520
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.0041c3e0
mov edi, eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x41dfbd
cmp dword [eax + 4], 7
jle 0x41dee6
push eax
call fcn.004526f8
mov ecx, dword [esp + 0x48]
add esp, 4
mov dword [esp + 0x2c], edi
jmp 0x41dfcb
mov eax, dword [esp + 0x7c]
test al, 1
je 0x41df01
and eax, 0xfffffffe
lea ecx, [esp + 0x150]
mov dword [esp + 0x7c], eax
call fcn.00402420
mov eax, dword [0x47bcb0]
test eax, 0xfffffffe
jne 0x41df5e
mov ecx, 1
xor eax, eax
mov edx, 0x47bcb0
lock cmpxchg dword [edx], ecx
test eax, eax
je 0x41df44
mov eax, dword [0x47bcb0]
cmp eax, 1
jne 0x41df5e
nop dword [eax + eax]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x47bcb0]
cmp eax, 1
je 0x41df30
jmp 0x41df5e
push 0x7d0
push 0x47bcb4
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [0x47bcb0], 0x47bcb4
mov eax, dword [0x47bcb0]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 4]
mov eax, dword [ecx*4 + 0x47bc90]
mov dword [edx], eax
mov eax, dword [esp + 0x7c]
mov dword [ecx*4 + 0x47bc90], edx
test eax, 0x200
je 0x41dfa1
and eax, 0xfffffdff
lea ecx, [esp + 0x200]
mov dword [esp + 0x7c], eax
call fcn.00402420
mov ecx, 0x47bcb0
call fcn.0041a210
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 0x41dfcb
mov edi, dword [esp + 0x2c]
test ecx, ecx
jle 0x41dfde
mov edx, ecx
mov ecx, edi
call fcn.0041c6d0
mov edi, eax
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
test eax, eax
jle 0x41dff7
mov edx, eax
call fcn.0041c520
mov ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x41e00c
mov edx, eax
call fcn.0041c6d0
mov ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x41e027
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.0041c6d0
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov edx, ecx
mov ecx, edi
call fcn.0041c840
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.0041c7f0
mov ecx, dword [esp + 0xac]
cmp ecx, esi
jle 0x41e067
test eax, eax
jle 0x41e3fe
test eax, eax
js 0x41e58e
je 0x41e459
mov edi, dword [esp + 0x30]
lea edx, [esp + 0xcc]
mov ecx, edi
call fcn.0041ca30
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0xfc]
movaps xmm1, xmm0
movsd qword [esp + 0xd8], xmm1
call fcn.0041ca30
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 0x41e0e0
shl eax, 0x14
add dword [esp + 0xdc], eax
movsd xmm1, qword [esp + 0xd8]
jmp 0x41e0f6
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 0x41e192
cmp dword [esp + 0x38], 0
je 0x41e129
movsd xmm2, qword [esp + 0xe8]
movaps xmm1, xmm2
jmp 0x41e1dc
mov eax, dword [esp + 8]
test eax, eax
jne 0x41e171
test edi, 0xfffff
jne 0x41e17e
movsd xmm0, qword [esp + 0xe8]
comisd xmm0, xmm1
jbe 0x41e15e
movsd xmm1, qword [esp + 0xc0]
movaps xmm2, xmm1
xorps xmm2, xmmword [esp + 0x60]
jmp 0x41e1dc
mulsd xmm1, qword [esp + 0xc0]
movaps xmm2, xmm1
xorps xmm2, xmmword [esp + 0x60]
jmp 0x41e1dc
cmp eax, 1
jne 0x41e17e
test edi, edi
je 0x41e412
movsd xmm1, qword [esp + 0xe8]
movsd xmm2, qword [esp + 0x128]
jmp 0x41e1dc
cmp dword [esp + 0x38], 0
mulsd xmm1, qword [esp + 0xc0]
movsd qword [esp + 0x50], xmm1
je 0x41e1b0
movsd qword [esp + 0x20], xmm1
jmp 0x41e1be
movaps xmm0, xmm1
xorps xmm0, xmmword [esp + 0x60]
movsd qword [esp + 0x20], xmm0
call fcn.00453fb5
movsd xmm2, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x50]
test eax, eax
jne 0x41e1e2
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 0x41e2a5
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 0x41e28c
cmp dword [esp + 0x8c], 0x7fefffff
jne 0x41e277
cmp dword [esp + 0x88], 0xffffffff
je 0x41e42f
mov dword [esp + 0xc], 0x7fefffff
mov dword [esp + 8], 0xffffffff
jmp 0x41e3d1
mov edi, dword [esp + 0x18]
add ecx, 0x3500000
mov dword [esp + 0xc], ecx
movsd xmm0, qword [esp + 8]
jmp 0x41e35e
mov edi, dword [esp + 0x18]
test edi, edi
je 0x41e329
cmp edx, 0x6a00000
ja 0x41e329
movsd xmm0, qword [esp + 0x130]
comisd xmm0, xmm1
jb 0x41e303
movaps xmm0, xmm1
call fcn.004669c1
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 + 0x4741e0]
movaps xmm0, xmm1
jne 0x41e309
xorps xmm0, xmmword [esp + 0x60]
jmp 0x41e309
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 0x41e3d1
test edi, edi
jne 0x41e3d1
mov eax, ecx
and eax, 0x7ff00000
cmp edx, eax
jne 0x41e3d1
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cmp dword [esp + 0x38], edi
jne 0x41e3af
cmp dword [esp + 8], edi
jne 0x41e3af
test ecx, 0xfffff
jne 0x41e3af
movsd xmm0, qword [esp + 0x138]
comisd xmm0, xmm1
jmp 0x41e3cb
movsd xmm0, qword [esp + 0x140]
comisd xmm0, xmm1
ja 0x41e6b6
comisd xmm1, xmmword [esp + 0x148]
ja 0x41e6b6
mov ecx, dword [esp + 0x2c]
call fcn.0041c0d0
mov ecx, dword [esp + 0x40]
call fcn.0041c0d0
mov ecx, dword [esp + 0x14]
call fcn.0041c0d0
mov ecx, dword [esp + 0x30]
call fcn.0041c0d0
mov ecx, dword [esp + 0x48]
jmp 0x41dd97
test edi, edi
jne 0x41e6a6
mov dword [esp + 0xac], esi
jmp 0x41e596
cmp dword [esp + 0xac], esi
jle 0x41e636
mov dword [esp + 0xbc], 1
jmp 0x41e6a6
mov esi, dword [esp + 0x1c]
call fcn.004534da
mov dword [esp + 0xc], 0x7ff00000
mov dword [esp + 8], 0
movsd xmm1, qword [esp + 8]
mov dword [eax], 0x22
jmp 0x41e665
mov edx, dword [esp + 8]
test edi, edi
mov edi, dword [esp + 0xc]
je 0x41e4c4
mov eax, edi
and eax, 0xfffff
cmp eax, 0xfffff
jne 0x41e4d4
cmp dword [esp + 0x18], 0
je 0x41e499
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6a00000
ja 0x41e499
shr eax, 0x14
mov ecx, 0x6b
sub ecx, eax
or eax, 0xffffffff
shl eax, cl
jmp 0x41e49c
or eax, 0xffffffff
cmp edx, eax
jne 0x41e4d4
and edi, 0x7ff00000
mov dword [esp + 8], 0
add edi, 0x100000
mov dword [esp + 0xa0], 0
jmp 0x41e6a2
test edi, 0xfffff
jne 0x41e4d4
test edx, edx
je 0x41e601
test dl, 1
je 0x41e6a6
mov ecx, dword [esp + 0x38]
and edi, 0x7ff00000
sub edi, 0x3400000
test ecx, ecx
je 0x41e531
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 0x41e6b2
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 0x41e51e
cmp dword [esp + 0xac], esi
jle 0x41e63f
mov dword [esp + 0xbc], 1
jmp 0x41e6b2
test edi, edi
jne 0x41e6a6
cmp dword [esp + 8], 0
jne 0x41e6a6
mov edi, dword [esp + 0xc]
test edi, 0xfffff
jne 0x41e6a6
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jbe 0x41e6a6
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x14], 0
jne 0x41e5d7
cmp dword [eax + 0x10], 1
jle 0x41e6a6
mov edx, 1
mov ecx, eax
call fcn.0041c6d0
mov edx, dword [esp + 0x14]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.0041c7f0
test eax, eax
jle 0x41e6a6
mov ecx, dword [esp + 0xac]
cmp dword [esp + 0x18], 0
je 0x41e68d
mov eax, edi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jg 0x41e68d
cmp eax, 0x3700000
jg 0x41e6a6
cmp ecx, esi
jle 0x41e636
mov dword [esp + 0xbc], 1
jmp 0x41e6a6
movsd xmm1, qword [esp + 0x80]
mov esi, dword [esp + 0x1c]
jmp 0x41e64e
movsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x20], xmm1
call fcn.004534da
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 0x41e67c
mov dword [ecx], esi
test eax, eax
je 0x41e76f
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.0041c0d0
mov ecx, dword [esp + 0x40]
call fcn.0041c0d0
mov ecx, dword [esp + 0x14]
call fcn.0041c0d0
mov ecx, dword [esp + 0x48]
call fcn.0041c0d0
mov ecx, dword [esp + 0x30]
call fcn.0041c0d0
cmp dword [esp + 0xac], esi
jle 0x41e713
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0xc]
call fcn.0041d120
mov edi, dword [esp + 0xbc]
add esp, 4
movsd xmm1, qword [esp + 8]
jmp 0x41e719
movsd xmm1, qword [esp + 0x20]
test edi, edi
je 0x41e766
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 0x41e766
call fcn.004534da
mov esi, dword [esp + 0x1c]
mov dword [eax], 0x22
jmp 0x41e65f
mov esi, dword [esp + 0x1c]
jmp 0x41e665
pop edi
movaps xmm0, xmm1
pop esi
mov esp, ebp
pop ebp
ret