Function at 0x4293f0
Capabilities:
Authenticate hmac
Encrypt data using rc4 ksa

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59eba7
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1278
call fcn.004ff310
mov eax, dword [0x62acc0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x1048], edi
mov dword [ebp - 0x104c], ecx
xor eax, eax
xorps xmm0, xmm0
push 0x104
push eax
mov dword [ebp - 0xfb0], eax
mov dword [ebp - 0xf9c], eax
mov dword [ebp - 0x1074], eax
mov dword [ebp - 0xf8c], eax
lea eax, [ebp - 0x120]
push eax
movsd qword [ebp - 0x1198], xmm0
movsd qword [ebp - 0xfc0], xmm0
call fcn.00500bb0
add esp, 0xc
lea ecx, [ebp - 0x1200]
call fcn.0042f5c0
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov dword [ebp - 0x1138], 0
movlpd qword [ebp - 0x1130], xmm0
mov dword [ebp - 0x1128], 0
mov dword [ebp - 0x1124], 0
mov dword [ebp - 0x1120], 0
mov dword [ebp - 0x111c], 0
mov dword [ebp - 0x1118], 0
movlpd qword [ebp - 0x1110], xmm0
mov dword [ebp - 0x1108], 0
movlpd qword [ebp - 0x1100], xmm0
mov dword [ebp - 0x10f8], 0
mov dword [ebp - 0x10f4], 0
mov dword [ebp - 0x10f0], 0
mov dword [ebp - 0x10ec], 0
mov dword [ebp - 0x10e8], 0
movlpd qword [ebp - 0x10e0], xmm0
mov dword [ebp - 0x10d8], 0
movlpd qword [ebp - 0x10d0], xmm0
mov dword [ebp - 0x10c8], 0
mov dword [ebp - 0x10c4], 0
mov dword [ebp - 0x10c0], 0
mov dword [ebp - 0x10bc], 0
mov dword [ebp - 0x10b8], 0
movlpd qword [ebp - 0x10b0], xmm0
mov dword [ebp - 0x10a8], 0
movlpd qword [ebp - 0x10a0], xmm0
mov dword [ebp - 0x1098], 0
mov dword [ebp - 0x1094], 0
mov dword [ebp - 0x1090], 0
mov dword [ebp - 0x108c], 0
mov dword [ebp - 0x1088], 0
movlpd qword [ebp - 0x1080], xmm0
lea ecx, [ebp - 0xf48]
mov byte [ebp - 4], 4
call fcn.00407270
mov byte [ebp - 4], 5
cmp dword [edi], 0
mov esi, dword [0x5a026c]
mov dword [ebp - 0xfa8], 0
jne 0x4295fc
mov edi, 1
jmp 0x42c310
mov esi, dword [edi + 4]
mov edi, dword [0x5a01f0]
mov dword [ebp - 0x1008], esi
mov esi, dword [ebp - 0x104c]
call edi
push eax
push esi
push 0x6166a0
lea eax, [ebp - 0x120]
push 0x104
push eax
call fcn.00407c70
add esp, 0x14
lea eax, [ebp - 0x120]
push eax
call dword [0x5a0204]
cmp eax, 0xffffffff
jne 0x429611
mov esi, dword [ebp - 0x1008]
push 0
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb4]
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x1f]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
imul ecx, eax
mov dword [ebp - 0x11a4], eax
lea eax, [ebp - 0x120]
add ecx, 0x36
push ecx
push 1
push eax
lea ecx, [ebp - 0x1200]
call fcn.0042f640
test eax, eax
je 0x42969f
mov edi, 0x2c
mov dword [ebp - 0xf8c], edi
jmp 0x42c13d
push dword [esi + 0xb4]
mov edx, dword [esi + 0xb0]
lea ecx, [ebp - 0x1200]
call fcn.00427210
add esp, 4
test eax, eax
je 0x4296cd
mov edi, 0x2d
mov dword [ebp - 0xf8c], edi
jmp 0x42c13d
mov edi, dword [ebp - 0x1048]
mov eax, dword [esi + 0xb4]
mov ecx, dword [esi + 0x40]
mov dword [ebp - 0xff4], ecx
mov edi, dword [edi]
imul eax, edi
cmp byte [0x634512], 0
mov dword [ebp - 0x119c], eax
je 0x429705
mov byte [ebp - 0xf4a], 1
cmp ecx, 0x12c
jne 0x42970c
mov byte [ebp - 0xf4a], 0
mov eax, dword [0x915d90]
xor edx, edx
cmp dword [0x910754], 7
mov ecx, dword [0x915d98]
mov dword [ebp - 0x1004], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0x1044], edx
mov dword [ebp - 0x1040], edx
mov dword [ebp - 0x1024], ecx
jg 0x42976d
cmp dword [ebx + 0xc], edx
jne 0x42976d
cmp dword [esi + 0xb0], ecx
cmove edx, dword [0x91dda0]
xor ecx, ecx
cmp eax, dword [ebp - 0x1004]
mov dword [ebp - 0x1044], edx
cmove ecx, dword [0x91dda4]
mov dword [ebp - 0x1040], ecx
movsd xmm2, qword [0x6171f8]
xor ecx, ecx
movsd xmm4, qword [0x616ef8]
movsd xmm3, qword [0x616e88]
movaps xmm1, xmm2
call fcn.00407170
movsd xmm1, qword [0x616f60]
addsd xmm2, xmm3
addsd xmm0, xmm1
mulsd xmm0, xmm4
movsd qword [ebp + ecx*8 - 0xa30], xmm0
inc ecx
cmp ecx, 0x100
jle 0x429787
xor edx, edx
mov dword [ebp - 0x1008], edx
test edi, edi
jle 0x42c13b
mov eax, dword [ebp - 0xff4]
mov ecx, 0x6156f8
cmp eax, 0x12c
mov esi, 0x6156d4
cmovne ecx, esi
mov dword [ebp - 0xf90], ecx
mov dword [ebp - 0xfe8], ecx
mov ecx, dword [ebp - 0x1048]
mov edi, 0xff
imul esi, edx, 0xf26a8
add esi, dword [ecx + 4]
xor cl, cl
mov dword [ebp - 0xf5c], esi
mov byte [ebp - 0x1010], cl
cmp eax, 0x12c
je 0x42982f
movsd xmm0, qword [esi + 0x128]
comisd xmm0, xmm1
movzx eax, cl
mov ecx, 1
cmova eax, ecx
mov byte [ebp - 0x1010], al
lea eax, [ebp - 0x11d0]
push eax
lea ecx, [esi + 0x5c]
lea edx, [ebp - 0x11d8]
call fcn.00405ea0
movzx eax, byte [esi + 0x56c]
add esp, 4
mov dword [ebp - 0x11c0], eax
movzx eax, byte [esi + 0x56d]
mov dword [ebp - 0x115c], eax
movzx eax, byte [esi + 0x56e]
mov dword [ebp - 0x1160], eax
movzx eax, byte [esi + 0xf2594]
mov dword [ebp - 0xfcc], eax
movzx eax, byte [esi + 0xf2595]
mov dword [ebp - 0xfc8], eax
movzx eax, byte [esi + 0xf2596]
mov dword [ebp - 0xfc4], eax
movzx eax, byte [esi + 0x560]
mov dword [ebp - 0x1054], eax
movzx eax, byte [esi + 0x561]
mov dword [ebp - 0x1058], eax
movzx eax, byte [esi + 0x562]
mov dword [ebp - 0x105c], eax
movzx eax, byte [esi + 0x564]
mov dword [ebp - 0x1168], eax
movzx eax, byte [esi + 0x565]
mov dword [ebp - 0x116c], eax
movzx eax, byte [esi + 0x566]
mov dword [ebp - 0x1170], eax
movsx eax, byte [esi + 0x552]
imul ecx, eax, 0xff
mov eax, 0x51eb851f
movsd xmm0, qword [esi + 0x98]
mulsd xmm0, qword [0x6171f0]
movsd xmm1, qword [0x616f60]
imul ecx
movsd xmm3, qword [0x6170a8]
movaps xmm2, xmm1
movsd qword [esi + 0x98], xmm0
mov ecx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
movsx eax, byte [esi + 0x56a]
mov dword [ebp - 0x11b4], ecx
imul ecx, eax, 0xff
mov eax, 0x51eb851f
imul ecx
mov ecx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
movsx eax, byte [esi + 0x559]
mov dword [ebp - 0x1164], ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsx eax, byte [esi + 0x55a]
divsd xmm0, qword [0x617148]
addsd xmm0, xmm1
movsd qword [ebp - 0x1250], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsx eax, byte [esi + 0x55b]
divsd xmm0, xmm3
subsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsx eax, byte [esi + 0x55c]
movsd qword [ebp - 0x1240], xmm2
movaps xmm2, xmm1
divsd xmm0, xmm3
subsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm2
movsd qword [ebp - 0x1258], xmm2
divsd xmm0, xmm3
movsx eax, byte [esi + 0x554]
mov ecx, 0x64
sub ecx, eax
movsx eax, byte [esi + 0x553]
movaps xmm2, xmm1
movsd qword [ebp - 0x1248], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x617028]
movsd qword [ebp - 0x1220], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsx eax, byte [esi + 0x570]
divsd xmm0, xmm3
movsd qword [ebp - 0x1228], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsx eax, byte [esi + 0x571]
divsd xmm0, xmm3
subsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsx eax, byte [esi + 0x569]
movsd qword [ebp - 0x11e8], xmm2
movaps xmm2, xmm1
divsd xmm0, xmm3
subsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsx eax, byte [esi + 0x551]
movsd qword [ebp - 0x1288], xmm2
divsd xmm0, xmm3
movsd qword [ebp - 0x1238], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsx eax, byte [esi + 0x582]
divsd xmm0, xmm3
divsd xmm0, qword [0x6170e0]
movsd qword [ebp - 0x1218], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movzx eax, byte [esi + 0x583]
divsd xmm0, xmm3
movsd qword [ebp - 0x11e0], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [0x634530]
divsd xmm0, xmm3
movsd qword [ebp - 0x1188], xmm0
test eax, eax
jne 0x429aed
mulsd xmm0, qword [0x616ef8]
jmp 0x429afa
cmp eax, 2
jne 0x429b02
mulsd xmm0, qword [0x616f80]
movsd qword [ebp - 0x1188], xmm0
movsx eax, byte [esi + 0x56b]
mov cl, byte [esi + 0x581]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [esi + 0x44]
imul eax, dword [esi + 0x40]
divsd xmm0, xmm3
lea eax, [eax + eax*2]
cdq
mov dword [ebp - 0xf50], edx
mov edi, eax
movsx eax, cl
mov dword [ebp - 0xf70], edi
movsd qword [ebp - 0x1268], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
test cl, cl
jle 0x429b61
divsd xmm0, qword [0x617050]
addsd xmm0, xmm1
movsd xmm1, qword [0x616fa8]
jmp 0x429b71
addsd xmm0, qword [0x6170b0]
movsd xmm1, qword [0x6170c8]
cmp byte [esi + 0x48], 0
divsd xmm1, xmm0
mov byte [ebp - 0xf65], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x1190], xmm1
movlpd qword [ebp - 0xfd8], xmm0
movlpd qword [ebp - 0xfe0], xmm0
je 0x429cef
mov esi, dword [esi + 0x4c]
test esi, esi
jne 0x429bb3
mov esi, dword [ebp - 0xf5c]
mov esi, dword [esi + 0x6c]
jmp 0x429bb4
dec esi
push dword [ebp - 0xf50]
mov eax, esi
cdq
push edi
push edx
push eax
call fcn.004ff340
mov dword [ebp - 0x1050], eax
mov eax, dword [ebp - 0xf5c]
mov dword [ebp - 0x1070], edx
cmp byte [eax + 0x54], 0
je 0x429ce7
push dword [ebp - 0xf50]
lea ecx, [esi + 1]
mov byte [ebp - 0xf65], 1
xor eax, eax
cmp ecx, 0xb
push edi
cmovle eax, ecx
cdq
push edx
push eax
call fcn.004ff340
mov esi, dword [ebp - 0xf5c]
mov dword [ebp - 0x1038], eax
mov dword [ebp - 0x1034], edx
mov eax, dword [esi + 0x50]
test eax, eax
jne 0x429ccc
mov esi, dword [esi + 0x70]
add esi, 0x76c
mov eax, esi
and eax, 0x80000003
jns 0x429c38
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x429c54
mov eax, 0x51eb851f
mov ecx, esi
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
sub ecx, eax
jne 0x429c74
mov eax, 0x51eb851f
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x190
sub esi, eax
mov eax, 0x1c
jne 0x429c79
mov eax, 0x1d
mov esi, dword [ebp - 0xf5c]
mov dword [0x90dffc], eax
mov eax, dword [esi + 0x68]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x64]
lea eax, [eax + ecx*8]
add eax, 0xffffffe8
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov eax, dword [esi + 0x60]
lea eax, [eax + ecx*4]
movd xmm1, eax
mov eax, dword [esi + 0x6c]
cvtdq2pd xmm1, xmm1
imul eax, dword [eax*4 + 0x90dff8], 0x5a0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [ebp - 0x1180], xmm1
jmp 0x429d1f
dec eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x617070]
movsd qword [ebp - 0x1180], xmm0
jmp 0x429d1f
mov esi, dword [ebp - 0xf5c]
jmp 0x429d07
mov eax, dword [ebp - 0xfd4]
mov dword [ebp - 0x1070], eax
mov eax, dword [ebp - 0xfd8]
mov dword [ebp - 0x1050], eax
mov eax, dword [ebp - 0xfdc]
mov dword [ebp - 0x1034], eax
mov eax, dword [ebp - 0xfe0]
mov dword [ebp - 0x1038], eax
push 0x6156d4
push dword [esi + 0x40]
lea eax, [ebp - 0x228]
push 0x616678
push 0x910df9
push 0x616680
push 0x104
push eax
call fcn.00407c70
add esp, 0x1c
cmp byte [ebp - 0xf4a], 0
je 0x429d67
mov esi, 0x100
mov dword [ebp - 0x101c], 0
jmp 0x429df2
mov eax, edi
mov ecx, 0xaaaaaaab
mul ecx
mov esi, edx
mov dword [ebp - 0x1158], eax
mov eax, edi
mov edx, 0xaaaaaaaa
mul edx
mov edi, eax
mov dword [ebp - 0xfd0], edx
mov eax, dword [ebp - 0xf50]
mul ecx
mov ecx, eax
mov dword [ebp - 0xfb4], edx
mov eax, dword [ebp - 0xf50]
mov edx, 0xaaaaaaaa
mul edx
add ecx, esi
mov dword [ebp - 0xf60], edx
mov edx, dword [ebp - 0xfb4]
adc edx, 0
mov dword [ebp - 0xfac], eax
mov esi, eax
add edi, ecx
mov ecx, dword [ebp - 0xfd0]
adc ecx, 0
mov dword [ebp - 0x1158], edi
mov edi, dword [ebp - 0xf70]
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0xf60]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 1
shr ecx, 1
mov dword [ebp - 0x101c], ecx
push esi
lea eax, [ebp - 0x228]
push eax
lea ecx, [ebp - 0x10d8]
call fcn.004067c0
mov esi, dword [ebp - 0xf5c]
mov dword [ebp - 0x11b0], eax
mov byte [ebp - 0xf52], 0
cmp byte [esi + 0x580], 0
je 0x429f0e
push dword [ebp - 0xfe8]
lea eax, [ebp - 0x228]
push 0x6156d8
push 0x910534
push 0x6156e0
push 0x104
push eax
call fcn.00407c70
mov eax, dword [ebp - 0xfe8]
lea ecx, [ebp - 0x228]
mov dword [ebp - 0xf90], eax
xor edx, edx
lea eax, [ebp - 0x1144]
push eax
call fcn.004282a0
add esp, 0x1c
cmp eax, 0xffffffff
je 0x429f0e
mov ecx, dword [ebp - 0x113c]
mov edx, dword [ebp - 0xfe8]
mov dword [ebp - 0xf90], edx
test ecx, ecx
je 0x429f0a
mov eax, dword [ebp - 0x1140]
mov dword [ebp - 0xf90], edx
test eax, eax
je 0x429f0a
cmp byte [ebp - 0xf4a], 0
je 0x429ead
mov eax, 0x100
jmp 0x429eb0
imul eax, ecx
push eax
lea eax, [ebp - 0x228]
mov dword [ebp - 0xf90], edx
push eax
lea ecx, [ebp - 0x10a8]
call fcn.004067c0
test eax, eax
jne 0x429f0e
movd xmm1, dword [ebp - 0x1140]
movd xmm0, dword [esi + 0x40]
cvtdq2pd xmm1, xmm1
mov eax, dword [ebp - 0xfe8]
mov byte [ebp - 0xf52], 1
mov byte [ebp - 0x11b8], 1
mov dword [ebp - 0xf90], eax
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [ebp - 0x1230], xmm1
jmp 0x429f14
mov eax, edx
jmp 0x429f14
mov eax, dword [ebp - 0xf90]
push eax
push esi
push 0x910df9
push 0x6156e0
lea eax, [ebp - 0x228]
push 0x104
push eax
call fcn.00407c70
mov esi, dword [ebp - 0xf50]
add esp, 0x18
cmp byte [ebp - 0xf4a], 0
je 0x429f54
mov eax, 0x100
mov dword [ebp - 0x101c], 0
jmp 0x429f5c
mov eax, edi
mov dword [ebp - 0x101c], esi
push eax
lea eax, [ebp - 0x228]
push eax
lea ecx, [ebp - 0x1138]
call fcn.004067c0
test eax, eax
jne 0x42c111
cmp byte [ebp - 0xf65], al
je 0x429fb5
cmp byte [ebp - 0xf4a], al
je 0x429f94
mov edi, 0x100
mov dword [ebp - 0x101c], eax
jmp 0x429f9a
mov dword [ebp - 0x101c], esi
push edi
lea eax, [ebp - 0x228]
push eax
lea ecx, [ebp - 0x1108]
call fcn.004067c0
test eax, eax
jne 0x42c111
mov esi, dword [ebp - 0xf5c]
movd xmm1, dword [0x915d98]
cvtdq2pd xmm1, xmm1
mov al, byte [esi + 0xf2591]
movd xmm0, dword [esi + 0xb0]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movd xmm0, dword [esi + 0xb4]
movsd qword [ebp - 0x11c8], xmm1
movd xmm1, dword [0x915d90]
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [ebp - 0x1020], xmm1
test al, al
je 0x42a01d
cmp byte [esi + 0xf2590], 0
mov byte [ebp - 0xf51], 0
jne 0x42a024
mov byte [ebp - 0xf51], 1
cmp al, 2
jne 0x42a058
cmp byte [esi + 0xf2590], 1
jne 0x42a058
lea edx, [esi + 0xf2599]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42a040
sub ecx, esi
lea edi, [edx - 3]
add edi, ecx
cmp edi, edx
jae 0x42a0c5
mov esi, dword [ebp - 0xf5c]
mov byte [ebp - 0xf49], 0
cmp byte [esi + 0xf2590], 1
jne 0x42a504
cmp byte [esi + 0xf269e], 0
je 0x42a504
cmp byte [esi + 0xf269f], 0
je 0x42a504
cmp byte [esi + 0xf26a0], 0
je 0x42a504
lea eax, [ebp - 0x1078]
mov ecx, esi
push eax
lea eax, [ebp - 0x11a0]
push eax
lea eax, [ebp - 0xfa8]
push eax
lea edx, [ebp - 0x103c]
call fcn.00406540
add esp, 0xc
mov byte [ebp - 0xf66], al
mov dl, al
jmp 0x42a50c
push 0x614348
push edi
call fcn.00504753
xor ecx, ecx
test eax, eax
push 0x61434c
sete cl
push edi
lea ecx, [ecx*2 + 1]
mov dword [ebp - 0xfb4], ecx
call fcn.00504753
mov esi, dword [ebp - 0xfb4]
test eax, eax
mov eax, 2
push 0x614350
push edi
cmove esi, eax
call fcn.00504753
mov edi, dword [ebp - 0xf5c]
lea ecx, [ebp - 0xf48]
add esp, 0x18
test eax, eax
mov eax, 4
cmove esi, eax
add edi, 0xf2599
push esi
push edi
call fcn.00486f60
push esi
push edi
lea ecx, [ebp - 0xf48]
call fcn.00486f60
mov byte [ebp - 0xf49], al
test al, al
je 0x42a4f9
lea ecx, [ebp - 0xf48]
call fcn.00485b30
lea ecx, [ebp - 0xf48]
mov dword [ebp - 0xfa4], eax
call fcn.004859f0
mov esi, dword [ebp - 0xf5c]
mov edi, eax
mov dword [ebp - 0x100c], edi
movsx ecx, byte [esi + 0xf2598]
cmp ecx, 4
ja case.default.0x42a185
jmp dword [ecx*4 + 0x42c540]
mov ecx, dword [esi + 0xe0]
mov eax, dword [esi + 0xd8]
movd xmm3, dword [ebp - 0xfa4]
mov edx, dword [esi + 0xe4]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0xf98], ecx
sub ecx, eax
mov dword [ebp - 0xf88], eax
mov eax, dword [esi + 0xdc]
mov dword [ebp - 0xf78], edx
sub edx, eax
mov dword [ebp - 0xf74], eax
lea eax, [ecx + 1]
cvtdq2pd xmm3, xmm3
movd xmm1, eax
lea eax, [edx + 1]
divsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
comisd xmm3, xmm1
jbe 0x42a39c
mov eax, dword [ebp - 0xf88]
add eax, dword [ebp - 0xf98]
movd xmm1, edx
cvtdq2pd xmm1, xmm1
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mulsd xmm1, xmm3
mulsd xmm2, qword [0x616ef8]
mulsd xmm1, qword [0x616ef8]
movaps xmm0, xmm2
subsd xmm0, xmm1
addsd xmm2, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xf88], eax
cvttsd2si eax, xmm2
mov dword [ebp - 0xf98], eax
mov ecx, dword [ebp - 0xf78]
mov eax, dword [ebp - 0xf74]
mov edx, dword [ebp - 0xf98]
sub ecx, eax
sub edx, dword [ebp - 0xf88]
inc ecx
inc edx
mov dword [ebp - 0x11ac], ecx
cmp byte [esi + 0xf269d], 0
mov dword [ebp - 0x11a8], edx
je 0x42a4cc
push 0
call fcn.0050d930
mov ecx, eax
mov dword [ebp - 0x1154], edx
add ecx, dword [0x915d94]
add esp, 4
and ecx, 0x80000fff
jns 0x42a2a8
dec ecx
or ecx, 0xfffff000
inc ecx
mov eax, ecx
and eax, 0x80000fff
jns 0x42a2b8
dec eax
or eax, 0xfffff000
inc eax
movd xmm0, dword [ebp - 0xfa4]
movsd xmm1, qword [0x616f60]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [eax*8 + 0x915da0]
subsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0x1028], eax
lea eax, [ecx + 1]
and eax, 0x80000fff
jns 0x42a2f4
dec eax
or eax, 0xfffff000
inc eax
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [eax*8 + 0x915da0]
subsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0x102c], eax
lea eax, [ecx + 2]
mov dword [0x915d94], eax
mov al, byte [ebp - 0xf49]
mov byte [ebp - 0xf49], al
jmp 0x42a05f
mov ecx, dword [esi + 0xe0]
mov eax, dword [esi + 0xd8]
movd xmm3, dword [ebp - 0xfa4]
mov edx, dword [esi + 0xe4]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0xf98], ecx
sub ecx, eax
mov dword [ebp - 0xf88], eax
mov eax, dword [esi + 0xdc]
mov dword [ebp - 0xf78], edx
sub edx, eax
mov dword [ebp - 0xf74], eax
lea eax, [ecx + 1]
cvtdq2pd xmm3, xmm3
movd xmm1, eax
lea eax, [edx + 1]
divsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
comisd xmm3, xmm1
jbe 0x42a1fc
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mov eax, dword [ebp - 0xf74]
add eax, dword [ebp - 0xf78]
movd xmm2, eax
divsd xmm1, xmm3
cvtdq2pd xmm2, xmm2
mulsd xmm1, qword [0x616ef8]
mulsd xmm2, qword [0x616ef8]
movaps xmm0, xmm2
addsd xmm2, xmm1
subsd xmm0, xmm1
cvttsd2si ecx, xmm2
cvttsd2si eax, xmm0
mov dword [ebp - 0xf78], ecx
mov dword [ebp - 0xf74], eax
jmp 0x42a257
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0xe0]
mov dword [ebp - 0xf88], eax
mov eax, dword [esi + 0xdc]
mov dword [ebp - 0xf98], ecx
mov ecx, dword [esi + 0xe4]
mov dword [ebp - 0xf74], eax
mov dword [ebp - 0xf78], ecx
jmp 0x42a257
movd xmm1, dword [ebp - 0xfa4]
movsd xmm4, qword [0x616ef8]
cvtdq2pd xmm1, xmm1
mov eax, dword [esi + 0xe0]
add eax, dword [esi + 0xd8]
movd xmm2, eax
mulsd xmm1, xmm4
cvtdq2pd xmm2, xmm2
divsd xmm1, qword [ebp - 0x11c8]
mulsd xmm2, xmm4
movaps xmm0, xmm2
subsd xmm0, xmm1
addsd xmm1, xmm2
cvttsd2si eax, xmm0
mov dword [ebp - 0xf88], eax
cvttsd2si eax, xmm1
movd xmm1, edi
cvtdq2pd xmm1, xmm1
mov dword [ebp - 0xf98], eax
mov eax, dword [esi + 0xe4]
add eax, dword [esi + 0xdc]
mulsd xmm1, xmm4
movd xmm2, eax
cvtdq2pd xmm2, xmm2
divsd xmm1, qword [ebp - 0x1020]
mulsd xmm2, xmm4
movaps xmm0, xmm2
subsd xmm0, xmm1
addsd xmm1, xmm2
cvttsd2si eax, xmm0
cvttsd2si ecx, xmm1
mov dword [ebp - 0xf74], eax
mov dword [ebp - 0xf78], ecx
jmp 0x42a257
mov edx, dword [esi + 0xd8]
mov al, byte [ebp - 0xf49]
neg edx
mov dword [ebp - 0x1028], edx
mov edx, dword [esi + 0xdc]
neg edx
mov byte [ebp - 0xf49], al
mov dword [ebp - 0x102c], edx
jmp 0x42a05f
mov esi, dword [ebp - 0xf5c]
jmp 0x42a05f
xor dl, dl
mov byte [ebp - 0xf66], dl
xor ecx, ecx
mov dword [ebp - 0xf94], ecx
cmp dword [esi + 0xb4], ecx
jle 0x42bf36
movsd xmm0, qword [0x616f60]
subsd xmm0, qword [ebp - 0x1180]
mov eax, dword [ebp - 0x1004]
mov edi, dword [0x91593c]
dec eax
mov dword [ebp - 0x1174], eax
movsd qword [ebp - 0x1158], xmm0
nop dword [eax + eax]
mov eax, dword [ebp - 0x1040]
add eax, ecx
mov dword [ebp - 0xfd0], eax
jns 0x42a56c
add eax, dword [ebp - 0x1004]
mov dword [ebp - 0xfd0], eax
cmp eax, dword [ebp - 0x1174]
jle 0x42a580
sub eax, dword [ebp - 0x1004]
mov dword [ebp - 0xfd0], eax
test dl, dl
je 0x42a615
mov eax, dword [0x915d94]
add eax, ecx
and eax, 0x80000fff
jns 0x42a59d
dec eax
or eax, 0xfffff000
inc eax
mov dword [0x915d94], eax
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [ebp - 0x106c], eax
cmp eax, dword [ebp - 0x1078]
je 0x42a615
mov ecx, dword [ebp - 0x103c]
mov edi, dword [ebp - 0xfa8]
shl ecx, 9
push ecx
mov ecx, dword [ebp - 0x103c]
shl ecx, 8
add ecx, edi
push ecx
push edi
call fcn.00500630
movss xmm3, dword [ebp - 0x11a0]
add esp, 0xc
mov edx, edi
mov ecx, 2
push dword [ebp - 0x103c]
call fcn.004063a0
mov eax, dword [ebp - 0x106c]
add esp, 4
mov edi, dword [0x91593c]
mov ecx, dword [ebp - 0xf94]
mov dword [ebp - 0x1078], eax
cmp dword [ebp - 0xff4], 0x12c
je 0x42a65f
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
sub ecx, eax
jne 0x42a65f
mov edi, dword [ebp - 0x1074]
imul eax, edi, 0x64
cdq
idiv dword [ebp - 0x119c]
mov ecx, eax
call fcn.004212f0
add edi, 0x64
mov dword [ebp - 0x1074], edi
mov edi, dword [0x91593c]
xor edx, edx
mov dword [ebp - 0xfac], edx
cmp dword [esi + 0xb0], edx
jle 0x42bf17
cmp edx, dword [esi + 0xd8]
jl 0x42bf04
cmp edx, dword [esi + 0xe0]
jg 0x42bf04
mov eax, dword [ebp - 0xf94]
cmp eax, dword [esi + 0xdc]
jl 0x42bf04
cmp eax, dword [esi + 0xe4]
jg 0x42bf04
mov ecx, dword [ebp - 0x1044]
add ecx, edx
mov eax, dword [ebp - 0x1024]
jns 0x42a6bb
add ecx, eax
dec eax
cmp ecx, eax
jle 0x42a6c6
sub ecx, dword [ebp - 0x1024]
mov eax, dword [esi + 0xb4]
lea ecx, [ecx + ecx*2]
sub eax, dword [ebp - 0xfd0]
add ecx, 0x36
dec eax
imul eax, dword [ebp - 0x11a4]
add eax, dword [ebp - 0x1200]
add ecx, eax
cmp byte [ebp - 0xf49], 0
mov dword [ebp - 0xfb4], ecx
je 0x42a8d9
cmp edx, dword [ebp - 0xf88]
jl 0x42a8d0
cmp edx, dword [ebp - 0xf98]
jge 0x42a8d0
mov eax, dword [ebp - 0xf94]
cmp eax, dword [ebp - 0xf74]
jl 0x42a8d0
cmp eax, dword [ebp - 0xf78]
jge 0x42a8d0
movsx eax, byte [esi + 0xf2598]
cmp eax, 4
ja case.default.0x42a741
jmp dword [eax*4 + 0x42c554]
movd xmm0, dword [ebp - 0x11a8]
mov eax, edx
sub eax, dword [ebp - 0xf88]
imul eax, dword [ebp - 0xfa4]
mov ecx, dword [ebp - 0x100c]
cvtdq2pd xmm0, xmm0
push 0
push 2
push 2
sub esp, 8
movd xmm2, eax
mov eax, dword [ebp - 0xf94]
sub eax, dword [ebp - 0xf74]
imul eax, ecx
cvtdq2pd xmm2, xmm2
divsd xmm2, xmm0
movd xmm0, dword [ebp - 0x11ac]
cvtdq2pd xmm0, xmm0
movd xmm1, eax
lea eax, [ecx - 1]
cvtdq2pd xmm1, xmm1
lea ecx, [ebp - 0xf48]
divsd xmm1, xmm0
movd xmm0, eax
lea eax, [ebp - 0x125c]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
cvtpd2ps xmm0, xmm2
movss dword [esp], xmm0
push eax
call fcn.0048b740
mov edi, dword [0x91593c]
mov eax, dword [eax]
mov dword [ebp - 0x1030], eax
jmp 0x42a8a4
mov eax, dword [ebp - 0x1028]
add eax, edx
cmp dword [ebp - 0xff4], 0x12c
jne 0x42a83d
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [ebp - 0x11c8]
cvttsd2si eax, xmm0
cdq
idiv dword [ebp - 0xfa4]
mov eax, dword [ebp - 0xf94]
add eax, dword [ebp - 0x102c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [ebp - 0x1020]
cvttsd2si eax, xmm0
jmp 0x42a850
cdq
idiv dword [ebp - 0xfa4]
mov eax, dword [ebp - 0xf94]
add eax, dword [ebp - 0x102c]
mov ecx, edx
cdq
idiv dword [ebp - 0x100c]
mov eax, dword [ebp - 0x100c]
dec eax
push 1
movd xmm0, edx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cvttsd2si eax, xmm1
push eax
push ecx
lea eax, [ebp - 0x120c]
push eax
lea ecx, [ebp - 0xf48]
call fcn.004851d0
mov edi, dword [0x91593c]
mov eax, dword [eax]
mov dword [ebp - 0x1030], eax
jmp 0x42a8a4
mov eax, dword [ebp - 0x1030]
movzx ecx, al
mov dword [ebp - 0xfc4], ecx
mov ecx, eax
shr ecx, 8
movzx edx, cl
shr eax, 0x10
movzx ecx, al
mov dword [ebp - 0xfc8], edx
mov dword [ebp - 0xfcc], ecx
mov byte [ebp - 0xf51], 0
jmp 0x42a8ff
mov byte [ebp - 0xf51], 1
jmp 0x42a8e2
cmp byte [ebp - 0xf51], 0
je 0x42a8ff
movzx eax, byte [ecx]
mov dword [ebp - 0xfc4], eax
movzx eax, byte [ecx + 1]
mov dword [ebp - 0xfc8], eax
movzx eax, byte [ecx + 2]
mov dword [ebp - 0xfcc], eax
mov al, byte [esi + 0x550]
mov byte [ebp - 0xf9d], al
test al, al
jne 0x42a92f
cmp byte [esi + 0x568], al
jne 0x42a92f
movsd xmm3, qword [0x616f60]
xorps xmm0, xmm0
movsd qword [ebp - 0x1150], xmm0
jmp 0x42bcc6
mov edx, dword [ebp - 0xf94]
lea eax, [ebp - 0x1150]
mov ecx, dword [ebp - 0xfac]
push eax
push esi
lea eax, [ebp - 0x1270]
push eax
lea eax, [ebp - 0x1278]
push eax
lea eax, [ebp - 0x1280]
push eax
lea eax, [ebp - 0x1208]
push eax
call fcn.00428af0
movsd xmm3, qword [ebp - 0x1270]
xorps xmm6, xmm6
movsd xmm4, qword [0x915940]
add esp, 0x18
comisd xmm3, xmm6
mov byte [ebp - 0xf67], al
movsd xmm7, qword [0x617340]
movaps xmm0, xmm3
movsd qword [ebp - 0xfe0], xmm3
jae 0x42a99c
xorps xmm0, xmm7
divsd xmm0, xmm4
mov ecx, dword [esi + 0x578]
movsd xmm5, qword [0x616f60]
xorps xmm1, xmm1
cvttsd2si eax, xmm0
movaps xmm0, xmm5
cdq
idiv dword [0x915938]
mov eax, dword [esi + 0x57c]
sub eax, ecx
movsd xmm2, qword [edi + edx*8]
subsd xmm0, xmm2
movsd xmm2, qword [0x616ef8]
cvtsi2sd xmm1, eax
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
mov ecx, dword [0x915938]
addsd xmm1, xmm0
divsd xmm1, qword [0x617138]
mulsd xmm1, xmm2
movaps xmm0, xmm1
addsd xmm0, xmm5
mulsd xmm0, qword [0x616fd0]
mulsd xmm0, xmm2
comisd xmm0, xmm6
jae 0x42aa19
xorps xmm0, xmm7
divsd xmm0, xmm4
mulsd xmm1, qword [0x616fc0]
cvttsd2si eax, xmm0
cdq
idiv ecx
movsd xmm0, qword [edi + edx*8]
movsd qword [ebp - 0xff0], xmm0
movaps xmm0, xmm5
subsd xmm0, xmm1
mulsd xmm0, qword [0x616fd0]
mulsd xmm0, xmm2
comisd xmm0, xmm6
jae 0x42aa55
xorps xmm0, xmm7
divsd xmm0, xmm4
movsd xmm1, qword [ebp - 0x1278]
cvttsd2si eax, xmm0
movsd qword [ebp - 0x1068], xmm1
movaps xmm2, xmm1
cdq
idiv ecx
movsd xmm1, qword [ebp - 0x11d8]
movsd xmm0, qword [edi + edx*8]
movsd qword [ebp - 0x1018], xmm0
movsd xmm0, qword [ebp - 0x11d0]
call fcn.004288f0
movsd qword [ebp - 0x1000], xmm0
call fcn.00516490
cmp byte [ebp - 0xf9d], 0
addsd xmm0, xmm0
movsd xmm3, qword [0x616f60]
movaps xmm1, xmm3
divsd xmm0, qword [0x616fc8]
subsd xmm1, xmm0
movsd qword [ebp - 0xfd8], xmm1
je 0x42ab37
cmp byte [esi + 0x568], 0
je 0x42ab6d
movsd xmm1, qword [ebp - 0xff0]
movsd xmm2, qword [ebp - 0x1000]
comisd xmm1, xmm2
jb 0x42aafc
xorps xmm4, xmm4
movsd qword [ebp - 0xfc0], xmm4
movsd xmm0, qword [ebp - 0x1018]
comisd xmm2, xmm0
jb 0x42ab12
movsd qword [ebp - 0xfc0], xmm3
comisd xmm2, xmm1
jbe 0x42ab75
comisd xmm0, xmm2
jbe 0x42ab75
movaps xmm4, xmm2
subsd xmm0, xmm1
subsd xmm4, xmm1
divsd xmm4, xmm0
movsd qword [ebp - 0xfc0], xmm4
jmp 0x42ab75
cmp byte [esi + 0x568], 0
je 0x42ab6d
xorps xmm0, xmm0
movsd qword [ebp - 0x11e8], xmm3
movsd qword [ebp - 0xfc0], xmm0
movsd xmm0, qword [0x6171f0]
movsd qword [ebp - 0x1000], xmm0
movsd qword [ebp - 0xfd8], xmm0
jmp 0x42ab75
movsd qword [ebp - 0xfc0], xmm3
cmp byte [ebp - 0xf67], 0
je 0x42bcbe
push dword [ebp - 0x1010]
movsd xmm0, qword [ebp - 0x1280]
lea eax, [ebp - 0xf84]
mov edx, dword [esi + 0x40]
lea ecx, [ebp - 0x1138]
push 3
push eax
lea eax, [ebp - 0xf80]
movsd qword [ebp - 0x1018], xmm0
push eax
lea eax, [ebp - 0xf7c]
movaps xmm3, xmm0
movsd xmm0, qword [ebp - 0x1208]
push eax
push dword [esi + 0x44]
movaps xmm2, xmm0
movsd qword [ebp - 0xff0], xmm0
push dword [ebp - 0x1070]
push dword [ebp - 0x1050]
call fcn.004283a0
mov eax, dword [ebp - 0xf7c]
add esp, 0x20
cmp byte [ebp - 0xf65], 0
mov edi, dword [ebp - 0xf80]
mov dword [ebp - 0xf60], eax
mov eax, dword [ebp - 0xf84]
mov dword [ebp - 0xf70], edi
mov dword [ebp - 0xf50], eax
je 0x42ae3c
push dword [ebp - 0x1010]
mov edx, dword [esi + 0x40]
lea eax, [ebp - 0xf64]
movsd xmm3, qword [ebp - 0x1018]
lea ecx, [ebp - 0x1108]
movsd xmm2, qword [ebp - 0xff0]
push 3
push eax
lea eax, [ebp - 0xf58]
push eax
lea eax, [ebp - 0xf6c]
push eax
push dword [esi + 0x44]
push dword [ebp - 0x1034]
push dword [ebp - 0x1038]
call fcn.004283a0
mov eax, dword [esi + 0x58]
add esp, 0x20
movsd xmm7, qword [ebp - 0x1158]
mov esi, dword [ebp - 0xf58]
movaps xmm2, xmm7
mov edi, dword [ebp - 0xf64]
mov ecx, dword [ebp - 0xf6c]
test eax, eax
jle 0x42adb6
cmp eax, 1
je 0x42ad04
movd xmm0, dword [ebp - 0xf60]
movd xmm1, dword [ebp - 0xf50]
movsd xmm3, qword [0x616f78]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x42acd0
movd xmm0, dword [ebp - 0xf70]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm3
comisd xmm1, xmm0
ja 0x42ad04
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movd xmm1, edi
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x42adb6
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x42adb6
movsd xmm1, qword [ebp - 0x1018]
movsd xmm0, qword [ebp - 0xff0]
call fcn.004287a0
movzx eax, al
movsd xmm2, qword [ebp - 0x1180]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x6170e0]
comisd xmm0, xmm2
jb 0x42ad9a
ucomisd xmm0, qword [0x616de0]
lahf
test ah, 0x44
jp 0x42ad50
movsd xmm0, qword [0x616de8]
movsd xmm1, qword [0x616f60]
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x42ad71
movaps xmm1, xmm0
subsd xmm1, xmm2
divsd xmm1, xmm7
divsd xmm1, xmm0
comisd xmm2, xmmword [0x616f38]
jbe 0x42ad9d
xorps xmm1, xmm1
movaps xmm0, xmm7
ucomisd xmm1, xmm0
ja 0x42ad90
sqrtsd xmm0, xmm0
movaps xmm1, xmm0
jmp 0x42ad9d
call fcn.00514da0
movaps xmm1, xmm0
jmp 0x42ad9d
xorps xmm1, xmm1
movsd xmm2, qword [0x616f60]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xf6c]
maxsd xmm0, xmm1
minsd xmm2, xmm0
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, dword [ebp - 0xf7c]
cvtsi2sd xmm1, ecx
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, esi
mov esi, dword [ebp - 0xf5c]
cvttsd2si eax, xmm0
xorps xmm0, xmm0
mov dword [ebp - 0xf7c], eax
mov eax, dword [ebp - 0xf80]
cvtsi2sd xmm0, eax
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, edi
cvttsd2si eax, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0xf84]
mov dword [ebp - 0xf80], eax
mov edi, dword [ebp - 0xf80]
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xf84], eax
cmp dword [ebp - 0x11b0], 0
jne 0x42ae8c
push dword [ebp - 0x1010]
mov edx, dword [esi + 0x40]
lea eax, [ebp - 0xf9c]
movsd xmm3, qword [ebp - 0x1018]
lea ecx, [ebp - 0x10d8]
movsd xmm2, qword [ebp - 0xff0]
push 1
push eax
push 0
push 0
push dword [esi + 0x44]
push 0
push 0
call fcn.004283a0
mov eax, dword [ebp - 0xf9c]
add esp, 0x20
mov dword [ebp - 0xfb0], eax
movsd xmm0, qword [ebp - 0xfc0]
comisd xmm0, xmmword [0x616de0]
jbe 0x42b131
mov eax, dword [ebp - 0xf7c]
lea edx, [ebp - 0xf58]
mov dword [ebp - 0xf6c], eax
lea ecx, [ebp - 0xf6c]
mov eax, dword [ebp - 0xf84]
mov dword [ebp - 0xf64], eax
movzx eax, byte [esi + 0x555]
push eax
movzx eax, byte [esi + 0x556]
push eax
movzx eax, byte [esi + 0x557]
push eax
lea eax, [ebp - 0xf64]
mov dword [ebp - 0xf58], edi
push eax
call fcn.004291a0
mov ecx, dword [ebp - 0x11b4]
add esp, 0x10
movsd xmm1, qword [0x6170e8]
movd xmm3, eax
mov eax, dword [ebp - 0xfb0]
sub eax, ecx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movd xmm2, eax
cvtdq2pd xmm2, xmm2
subsd xmm1, xmm0
cvtdq2pd xmm3, xmm3
divsd xmm2, xmm1
mulsd xmm2, qword [0x6170e0]
cvttsd2si eax, xmm2
mov dword [ebp - 0xfb0], eax
mov dword [ebp - 0xf9c], eax
test eax, eax
jns 0x42b083
xor eax, eax
mov dword [ebp - 0xfb0], eax
mov dword [ebp - 0xf9c], eax
mov edi, dword [ebp - 0xf58]
mov esi, dword [ebp - 0xf64]
movsd xmm0, qword [ebp - 0x1000]
comisd xmm0, xmmword [0x616de0]
jbe 0x42b149
mov eax, dword [ebp - 0xf5c]
cmp byte [eax + 0x553], 0
jle 0x42b149
movd xmm0, dword [ebp - 0xf60]
movd xmm1, dword [ebp - 0xf50]
movsd xmm2, qword [0x616f78]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x42b149
movd xmm0, dword [ebp - 0xf70]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x42b149
movsd xmm0, qword [ebp - 0xfd8]
movsd xmm1, qword [ebp - 0x1220]
call fcn.00514080
movaps xmm1, xmm0
movsd xmm2, qword [0x6170d0]
movsd xmm0, qword [ebp - 0x1228]
mulsd xmm0, qword [0x616f30]
mulsd xmm1, xmm0
movsd xmm0, qword [0x6170e0]
mulsd xmm1, xmm0
minsd xmm2, xmm1
movaps xmm1, xmm0
subsd xmm1, xmm2
divsd xmm1, xmm0
movd xmm0, dword [ebp - 0xf6c]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm0, xmm2
cvttsd2si eax, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movzx ecx, al
mov dword [ebp - 0xf6c], ecx
mulsd xmm0, xmm1
addsd xmm0, xmm2
cvttsd2si eax, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
movzx eax, al
mov dword [ebp - 0xf58], eax
mulsd xmm0, xmm1
addsd xmm0, xmm2
cvttsd2si eax, xmm0
movzx edi, al
mov dword [ebp - 0xf64], edi
jmp 0x42b14f
je 0x42af57
cmp byte [esi + 0x551], 0
je 0x42af57
cmp byte [ebp - 0xf52], 0
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mulsd xmm2, qword [ebp - 0x1218]
je 0x42b0c3
movsd xmm0, qword [0x616f60]
subsd xmm0, qword [ebp - 0x1198]
mulsd xmm2, xmm0
xorps xmm1, xmm1
movaps xmm0, xmm3
cvtsi2sd xmm1, dword [ebp - 0xf6c]
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf58]
cvttsd2si eax, xmm0
movaps xmm0, xmm3
subsd xmm0, xmm1
mov dword [ebp - 0xf6c], eax
mulsd xmm0, xmm2
addsd xmm0, xmm1
cvttsd2si edi, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0xf64]
mov dword [ebp - 0xf58], edi
subsd xmm3, xmm0
mulsd xmm3, xmm2
addsd xmm3, xmm0
cvttsd2si esi, xmm3
mov dword [ebp - 0xf64], esi
jmp 0x42af63
xor edi, edi
xor esi, esi
mov dword [ebp - 0xf64], edi
mov dword [ebp - 0xf58], esi
mov dword [ebp - 0xf6c], esi
jmp 0x42b155
mov edi, dword [ebp - 0xf64]
mov esi, dword [ebp - 0xf58]
cmp byte [ebp - 0xf52], 0
je 0x42b5f9
push dword [ebp - 0x11b8]
movsd xmm0, qword [ebp - 0x1018]
lea eax, [ebp - 0xfe4]
movsd xmm1, qword [ebp - 0xff0]
lea ecx, [ebp - 0x10a8]
mulsd xmm0, qword [ebp - 0x1230]
mov edx, dword [ebp - 0x1140]
mulsd xmm1, qword [ebp - 0x1230]
push 1
push eax
push 0
push 0
push dword [ebp - 0x113c]
movaps xmm3, xmm0
movsd qword [ebp - 0x1018], xmm0
push 0
push 0
movaps xmm2, xmm1
movsd qword [ebp - 0xff0], xmm1
call fcn.004283a0
mov eax, dword [ebp - 0xf5c]
add esp, 0x20
cmp byte [eax + 0x583], 0
jbe 0x42b4de
movsd xmm1, qword [ebp - 0x1068]
subsd xmm1, qword [ebp - 0x11d0]
movsd xmm2, qword [0x616fc8]
movsd xmm0, qword [0x617008]
comisd xmm1, xmm2
movsd qword [ebp - 0x1068], xmm1
jbe 0x42b216
subsd xmm1, xmm0
movsd qword [ebp - 0x1068], xmm1
movsd xmm3, qword [0x617208]
comisd xmm3, xmm1
jbe 0x42b230
addsd xmm1, xmm0
movsd qword [ebp - 0x1068], xmm1
movsd xmm0, qword [ebp - 0xfe0]
subsd xmm0, qword [ebp - 0x11d8]
comisd xmm0, xmmword [0x616f90]
movsd qword [ebp - 0xfe0], xmm0
jbe 0x42b25e
subsd xmm0, xmm2
movsd qword [ebp - 0xfe0], xmm0
movsd xmm3, qword [0x6171f8]
comisd xmm3, xmm0
jbe 0x42b278
addsd xmm0, xmm2
movsd qword [ebp - 0xfe0], xmm0
movaps xmm2, xmm0
mulsd xmm2, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm1
addsd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x42b299
sqrtsd xmm0, xmm0
jmp 0x42b29e
call fcn.00514da0
movsd xmm1, qword [ebp - 0x1068]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.00516490
xorps xmm1, xmm1
comisd xmm1, xmmword [ebp - 0xfe0]
jbe 0x42b2c7
mulsd xmm0, qword [0x6171f0]
movsd xmm1, qword [ebp - 0x11e0]
lea eax, [ebp - 0x11bc]
mov esi, dword [ebp - 0xfe4]
lea ecx, [ebp - 0x10a8]
mov edx, dword [ebp - 0x1140]
sub esp, 0x18
movsd xmm2, qword [ebp - 0x1018]
movsd qword [esp + 0x10], xmm1
movsd xmm1, qword [ebp - 0x1190]
movsd qword [esp + 8], xmm1
movsd xmm1, qword [ebp - 0x1188]
movsd qword [esp], xmm1
movsd xmm1, qword [ebp - 0xff0]
push eax
push esi
sub esp, 8
movsd qword [esp], xmm0
push dword [ebp - 0x113c]
call fcn.00411d30
movd xmm1, esi
add esp, 0x2c
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
subsd xmm1, qword [0x6170b8]
cvttsd2si edx, xmm1
test edx, edx
jns 0x42b35b
xor edx, edx
jmp 0x42b369
cmp edx, 0xff
mov eax, 0xff
cmovg edx, eax
mov esi, dword [ebp - 0xf58]
xorps xmm2, xmm2
imul eax, dword [ebp - 0xf6c], 0x12b
xorps xmm0, xmm0
imul ecx, esi, 0x24b
xorps xmm1, xmm1
cvtsi2sd xmm0, dword [ebp - 0x11bc]
mov dword [ebp - 0xfe4], edx
add ecx, eax
movsd xmm5, qword [0x6170e0]
imul eax, edi, 0x72
divsd xmm0, xmm5
add ecx, eax
movsd xmm3, qword [0x616f60]
cvtsi2sd xmm2, ecx
cvtsi2sd xmm1, dword [ebp - 0xf6c]
minsd xmm3, xmm0
imul ecx, dword [ebp - 0xf80], 0x24b
divsd xmm2, qword [0x617148]
movaps xmm0, xmm1
divsd xmm2, xmm5
mulsd xmm0, xmm2
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, esi
cvttsd2si eax, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm2
mov dword [ebp - 0xf6c], eax
imul eax, dword [ebp - 0xf7c], 0x12b
subsd xmm0, xmm1
add ecx, eax
imul eax, dword [ebp - 0xf84], 0x72
mulsd xmm0, xmm3
add ecx, eax
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, edi
cvttsd2si esi, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm2
xorps xmm2, xmm2
mov dword [ebp - 0xf58], esi
cvtsi2sd xmm2, ecx
subsd xmm0, xmm1
divsd xmm2, qword [0x617148]
mulsd xmm0, xmm3
divsd xmm2, xmm5
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf7c]
cvttsd2si edi, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm2
mov dword [ebp - 0xf64], edi
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf80]
cvttsd2si eax, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm2
mov dword [ebp - 0xf7c], eax
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf84]
cvttsd2si eax, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm2
mov dword [ebp - 0xf80], eax
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xf84], eax
jmp 0x42b4ec
mov edx, dword [ebp - 0xfe4]
movsd xmm5, qword [0x6170e0]
test edx, edx
jle 0x42b5f9
xorps xmm0, xmm0
movsd xmm1, qword [ebp - 0x1190]
cvtsi2sd xmm0, edx
divsd xmm0, xmm5
call fcn.00514080
movsd xmm5, qword [0x6170e0]
movaps xmm3, xmm0
mulsd xmm3, qword [ebp - 0x11e0]
xorps xmm2, xmm2
cvtsi2sd xmm2, dword [ebp - 0xf6c]
movaps xmm1, xmm5
movaps xmm0, xmm5
subsd xmm1, xmm2
movsd qword [ebp - 0x1198], xmm3
mulsd xmm1, xmm3
addsd xmm1, xmm2
cvttsd2si eax, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, esi
mov dword [ebp - 0xf6c], eax
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, edi
cvttsd2si eax, xmm0
movaps xmm0, xmm5
subsd xmm0, xmm1
mov dword [ebp - 0xf58], eax
mulsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf7c]
cvttsd2si eax, xmm0
movaps xmm0, xmm5
subsd xmm0, xmm1
mov dword [ebp - 0xf64], eax
mulsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf80]
cvttsd2si edx, xmm0
movaps xmm0, xmm5
subsd xmm0, xmm1
mov dword [ebp - 0xf7c], edx
mulsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf84]
cvttsd2si ecx, xmm0
movaps xmm0, xmm5
subsd xmm0, xmm1
mov dword [ebp - 0xf80], ecx
mulsd xmm0, xmm3
addsd xmm0, xmm1
cvttsd2si esi, xmm0
mov dword [ebp - 0xf84], esi
jmp 0x42b60b
mov esi, dword [ebp - 0xf84]
mov edx, dword [ebp - 0xf7c]
mov ecx, dword [ebp - 0xf80]
movsd xmm4, qword [0x616f60]
movsd xmm0, qword [ebp - 0xfc0]
comisd xmm4, xmm0
jbe 0x42b9f7
lea eax, [ecx + esi]
movd xmm0, dword [ebp - 0x11c0]
lea eax, [eax + ecx*4]
movsd xmm3, qword [ebp - 0x1268]
lea eax, [eax + edx*2]
movd xmm1, edx
movd xmm2, eax
lea edx, [ebp - 0xf50]
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm0, xmm0
divsd xmm2, qword [0x617158]
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm2
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
lea ecx, [ebp - 0xf9c]
cvttsd2si eax, xmm0
movd xmm0, dword [ebp - 0x115c]
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0xf9c], eax
mulsd xmm0, xmm2
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
movd xmm1, esi
mov esi, dword [ebp - 0xf5c]
cvtdq2pd xmm1, xmm1
cvttsd2si eax, xmm0
movd xmm0, dword [ebp - 0x1160]
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0xf50], eax
mulsd xmm0, xmm2
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xf60], eax
movzx eax, byte [esi + 0x572]
push eax
movzx eax, byte [esi + 0x573]
push eax
movzx eax, byte [esi + 0x574]
push eax
lea eax, [ebp - 0xf60]
push eax
call fcn.004291a0
xorps xmm0, xmm0
add esp, 0x10
comisd xmm0, xmmword [ebp - 0x1000]
jbe 0x42b7bc
cmp byte [esi + 0x570], 0
jle 0x42b7bc
movsd xmm1, qword [ebp - 0x1288]
movsd xmm0, qword [ebp - 0xfd8]
addsd xmm1, xmm1
xorps xmm0, xmmword [0x617340]
addsd xmm1, qword [0x616f60]
call fcn.00514080
movsd xmm4, qword [0x616f60]
movaps xmm1, xmm4
subsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm0, qword [ebp - 0x11e8]
mulsd xmm1, xmm0
movd xmm0, dword [ebp - 0xf9c]
cvtdq2pd xmm0, xmm0
addsd xmm1, qword [ebp - 0x11e8]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movd xmm0, dword [ebp - 0xf50]
cvtdq2pd xmm0, xmm0
movzx edx, al
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movd xmm0, dword [ebp - 0xf60]
cvtdq2pd xmm0, xmm0
movzx esi, al
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movzx edi, al
jmp 0x42b7d6
mov edx, dword [ebp - 0xf9c]
mov esi, dword [ebp - 0xf50]
mov edi, dword [ebp - 0xf60]
movsd xmm4, qword [0x616f60]
mov ecx, dword [ebp - 0x1164]
mov eax, dword [ebp - 0xfb0]
movsd xmm1, qword [0x6170e8]
sub eax, ecx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movd xmm2, eax
cvtdq2pd xmm2, xmm2
subsd xmm1, xmm0
divsd xmm2, xmm1
mulsd xmm2, qword [0x6170e0]
cvttsd2si ecx, xmm2
mov dword [ebp - 0xfb0], ecx
mov dword [ebp - 0xf9c], ecx
test ecx, ecx
jle 0x42b8ee
mov eax, dword [ebp - 0xf5c]
cmp byte [eax + 0x569], 0
je 0x42b8ee
cmp byte [ebp - 0xf52], 0
movaps xmm1, xmm4
subsd xmm1, qword [ebp - 0xfc0]
movaps xmm2, xmm1
mulsd xmm2, qword [ebp - 0x1238]
je 0x42b865
movaps xmm0, xmm4
subsd xmm0, qword [ebp - 0x1198]
mulsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
mulsd xmm0, xmm1
mulsd xmm0, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, edx
cvttsd2si ecx, xmm0
xorps xmm0, xmm0
movzx eax, byte [ecx + ecx*2 + 0x615ce8]
cvtsi2sd xmm0, eax
movzx eax, byte [ecx + ecx*2 + 0x615ce9]
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, esi
cvttsd2si edx, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
movzx eax, byte [ecx + ecx*2 + 0x615cea]
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, edi
cvttsd2si esi, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
cvttsd2si edi, xmm0
movsd xmm0, qword [ebp - 0xfc0]
mulsd xmm0, qword [0x617248]
lea eax, [ebp - 0xa30]
movd xmm1, edx
cvtdq2pd xmm1, xmm1
cvttsd2si ecx, xmm0
movd xmm0, dword [ebp - 0xf6c]
cvtdq2pd xmm0, xmm0
shl ecx, 3
sub eax, ecx
movsd xmm3, qword [ebp - 0x1150]
movsd xmm2, qword [eax]
subsd xmm0, xmm1
movsd xmm6, qword [ebp - 0x1000]
movsd qword [ebp - 0xfc0], xmm2
mulsd xmm0, xmm2
addsd xmm0, xmm1
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mov esi, dword [ebp - 0xf5c]
cvttsd2si eax, xmm0
movd xmm0, dword [ebp - 0xf58]
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0xf70], eax
mov al, byte [esi + 0x558]
mov byte [ebp - 0xf67], al
test al, al
mov eax, dword [ebp - 0xf70]
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
movd xmm1, edi
cvtdq2pd xmm1, xmm1
cvttsd2si ecx, xmm0
movd xmm0, dword [ebp - 0xf64]
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0xf50], ecx
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
cvttsd2si edx, xmm0
mov dword [ebp - 0xf60], edx
je 0x42bb0e
movsd xmm5, qword [ebp - 0x1240]
comisd xmm3, xmm5
jbe 0x42bb0e
xorps xmm2, xmm2
movaps xmm1, xmm6
comisd xmm6, xmm2
jbe 0x42ba02
mulsd xmm1, qword [0x616ef8]
addsd xmm1, qword [0x616ef8]
jmp 0x42ba12
xor edi, edi
xor esi, esi
xor edx, edx
jmp 0x42b8f6
addsd xmm1, xmm4
mulsd xmm1, xmm1
mulsd xmm1, qword [0x616ef8]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0x1168]
subsd xmm0, xmm2
mulsd xmm0, xmm1
addsd xmm0, xmm2
cvttsd2si eax, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0x116c]
mov dword [ebp - 0xf7c], eax
subsd xmm0, xmm2
mulsd xmm0, xmm1
addsd xmm0, xmm2
cvttsd2si ecx, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0x1170]
mov dword [ebp - 0xf80], ecx
subsd xmm0, xmm2
mulsd xmm0, xmm1
movaps xmm1, xmm4
subsd xmm1, xmm3
addsd xmm0, xmm2
movaps xmm2, xmm4
cvttsd2si edx, xmm0
movaps xmm0, xmm4
subsd xmm0, xmm5
mov dword [ebp - 0xf84], edx
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
subsd xmm2, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf70]
mulsd xmm2, qword [ebp - 0x1248]
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf50]
cvttsd2si eax, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
mov dword [ebp - 0xf70], eax
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf60]
cvttsd2si ecx, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, edx
mov dword [ebp - 0xf50], ecx
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
cvttsd2si edx, xmm0
mov dword [ebp - 0xf60], edx
movsd xmm0, qword [0x616f40]
comisd xmm3, xmm0
jbe 0x42bca7
comisd xmm4, xmm3
jb 0x42bca7
test byte [ebp - 0xf67], 1
subsd xmm3, xmm0
xorps xmm4, xmm4
xorps xmm5, xmm5
cvtsi2sd xmm4, dword [ebp - 0xfc8]
divsd xmm3, qword [0x616eb0]
cvtsi2sd xmm5, dword [ebp - 0xfc4]
movaps xmm2, xmm3
xorps xmm0, xmm0
mulsd xmm2, xmm3
mulsd xmm2, xmm3
mulsd xmm2, xmm3
mulsd xmm2, xmm3
xorps xmm3, xmm3
cvtsi2sd xmm3, dword [ebp - 0xfcc]
movsd qword [ebp - 0x1150], xmm2
je 0x42bc60
cvtsi2sd xmm0, dword [ebp - 0x1054]
movaps xmm1, xmm6
mulsd xmm1, qword [0x616ef8]
subsd xmm0, xmm3
addsd xmm1, qword [0x616ef8]
mulsd xmm0, xmm1
addsd xmm0, xmm3
cvttsd2si eax, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0x1058]
mov dword [ebp - 0xf7c], eax
subsd xmm0, xmm4
mulsd xmm0, xmm1
addsd xmm0, xmm4
cvttsd2si ecx, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0x105c]
mov dword [ebp - 0xf80], ecx
subsd xmm0, xmm5
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf70]
addsd xmm0, xmm5
cvttsd2si edx, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov dword [ebp - 0xf84], edx
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf50]
cvttsd2si eax, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0xf60]
cvttsd2si ecx, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, edx
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
cvttsd2si edx, xmm0
jmp 0x42bedc
cvtsi2sd xmm0, eax
subsd xmm3, xmm0
mulsd xmm3, xmm2
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
cvttsd2si eax, xmm3
subsd xmm4, xmm0
mulsd xmm4, xmm2
addsd xmm4, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, edx
cvttsd2si ecx, xmm4
subsd xmm5, xmm0
mulsd xmm5, xmm2
addsd xmm5, xmm0
cvttsd2si edx, xmm5
jmp 0x42bedc
mov edx, dword [ebp - 0xf60]
mov ecx, dword [ebp - 0xf50]
mov eax, dword [ebp - 0xf70]
jmp 0x42bedc
movsd xmm0, qword [ebp - 0x1150]
cmp byte [ebp - 0xf66], 0
mov dl, byte [ebp - 0xfc4]
mov cl, byte [ebp - 0xfc8]
mov al, byte [ebp - 0xfcc]
movsd qword [ebp - 0xfd8], xmm0
mov dword [ebp - 0xf60], edx
mov dword [ebp - 0xf50], ecx
mov dword [ebp - 0xf70], eax
je 0x42bddc
push dword [ebp - 0x103c]
mov edx, dword [ebp - 0xf94]
push dword [ebp - 0xfa8]
mov ecx, dword [ebp - 0xfac]
push dword [ebp - 0x106c]
call fcn.00406670
movsx eax, byte [esi + 0xf269f]
add esp, 0xc
movsd xmm3, qword [0x616f60]
movsd xmm4, qword [0x6170e0]
movaps xmm2, xmm3
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mov eax, dword [ebp - 0xfc4]
movzx eax, al
mulsd xmm0, xmm1
xorps xmm1, xmm1
divsd xmm0, qword [0x6170a8]
maxsd xmm1, xmm0
movaps xmm0, xmm4
minsd xmm2, xmm1
movd xmm1, eax
mov eax, dword [ebp - 0xfc8]
cvtdq2pd xmm1, xmm1
movzx eax, al
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
movd xmm1, eax
mov eax, dword [ebp - 0xfcc]
cvtdq2pd xmm1, xmm1
movzx eax, al
cvttsd2si edx, xmm0
movaps xmm0, xmm4
subsd xmm0, xmm1
mov dword [ebp - 0xf60], edx
mulsd xmm0, xmm2
addsd xmm0, xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
cvttsd2si ecx, xmm0
movaps xmm0, xmm4
subsd xmm0, xmm1
mov dword [ebp - 0xf50], ecx
mulsd xmm0, xmm2
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xf70], eax
cmp byte [esi + 0x558], 0
je 0x42bedc
movsd xmm1, qword [ebp - 0xfd8]
comisd xmm1, xmm3
jbe 0x42bedc
movsd xmm4, qword [ebp - 0x1250]
comisd xmm4, xmm1
jb 0x42bedc
movsd xmm0, qword [ebp - 0x1000]
subsd xmm1, xmm3
mulsd xmm0, qword [0x616ef8]
addsd xmm0, qword [0x616ef8]
movsd qword [ebp - 0xfd8], xmm0
movaps xmm0, xmm4
subsd xmm0, xmm3
divsd xmm1, xmm0
movaps xmm0, xmm3
subsd xmm0, xmm1
movsd xmm1, qword [ebp - 0x1258]
call fcn.00514080
mov eax, dword [ebp - 0xf60]
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0x105c]
movzx eax, al
movaps xmm3, xmm0
xorps xmm2, xmm2
mulsd xmm3, qword [ebp - 0xfd8]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0x1058]
cvtsi2sd xmm2, eax
mov eax, dword [ebp - 0xf50]
movzx eax, al
subsd xmm1, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm2
cvttsd2si edx, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
mov eax, dword [ebp - 0xf70]
movzx eax, al
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
cvttsd2si ecx, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0x1054]
subsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov edi, dword [ebp - 0xfb4]
mov byte [edi], dl
mov edx, edi
mov edi, dword [0x91593c]
mov byte [edx + 2], al
mov eax, dword [ebx + 8]
mov byte [edx + 1], cl
cmp byte [eax], 0
jne 0x42c11e
mov edx, dword [ebp - 0xfac]
inc edx
mov dword [ebp - 0xfac], edx
cmp edx, dword [esi + 0xb0]
jl 0x42a673
mov ecx, dword [ebp - 0xf94]
mov dl, byte [ebp - 0xf66]
inc ecx
mov dword [ebp - 0xf94], ecx
cmp ecx, dword [esi + 0xb4]
jl 0x42a550
mov eax, dword [ebp - 0xfa8]
test eax, eax
je 0x42bf49
push eax
call fcn.00503e53
add esp, 4
mov eax, dword [ebp - 0x1124]
mov edi, dword [0x5a026c]
mov dword [ebp - 0xfa8], 0
test eax, eax
je 0x42bf66
push eax
call edi
mov eax, dword [ebp - 0x1118]
mov dword [ebp - 0x1124], 0
test eax, eax
je 0x42bf83
push eax
call fcn.00503e53
add esp, 4
mov eax, dword [ebp - 0x10f4]
mov dword [ebp - 0x1118], 0
mov dword [ebp - 0x1138], 0
mov dword [ebp - 0x1110], 0xffffffff
mov dword [ebp - 0x110c], 0xffffffff
test eax, eax
je 0x42bfb8
push eax
call edi
mov eax, dword [ebp - 0x10e8]
mov dword [ebp - 0x10f4], 0
test eax, eax
je 0x42bfd5
push eax
call fcn.00503e53
add esp, 4
mov eax, dword [ebp - 0x10c4]
mov dword [ebp - 0x10e8], 0
mov dword [ebp - 0x1108], 0
mov dword [ebp - 0x10e0], 0xffffffff
mov dword [ebp - 0x10dc], 0xffffffff
test eax, eax
je 0x42c00a
push eax
call edi
mov eax, dword [ebp - 0x10b8]
mov dword [ebp - 0x10c4], 0
test eax, eax
je 0x42c027
push eax
call fcn.00503e53
add esp, 4
mov eax, dword [ebp - 0x1094]
mov dword [ebp - 0x10b8], 0
mov dword [ebp - 0x10d8], 0
mov dword [ebp - 0x10b0], 0xffffffff
mov dword [ebp - 0x10ac], 0xffffffff
test eax, eax
je 0x42c05c
push eax
call edi
mov eax, dword [ebp - 0x1088]
mov dword [ebp - 0x1094], 0
test eax, eax
je 0x42c079
push eax
call fcn.00503e53
add esp, 4
mov dword [ebp - 0x1088], 0
mov dword [ebp - 0x10a8], 0
mov dword [ebp - 0x1080], 0xffffffff
mov dword [ebp - 0x107c], 0xffffffff
cmp byte [esi + 0x584], 0
je 0x42c0e1
cmp dword [esi + 0x588], 0
jle 0x42c0e1
mov eax, dword [ebx + 8]
cmp byte [eax], 0
jne 0x42c0e1
push dword [ebp - 0x1040]
mov ecx, dword [ebp - 0x1200]
mov edx, esi
push dword [ebp - 0x1044]
call fcn.0040c3e0
mov edi, eax
add esp, 8
mov dword [ebp - 0xf8c], edi
jmp 0x42c0e7
mov edi, dword [ebp - 0xf8c]
mov edx, dword [ebp - 0x1008]
mov eax, dword [ebp - 0x1048]
inc edx
mov dword [ebp - 0x1008], edx
cmp edx, dword [eax]
jge 0x42c13d
movsd xmm1, qword [0x616f60]
mov eax, dword [ebp - 0xff4]
jmp 0x4297e9
mov edi, 0x2b
mov dword [ebp - 0xf8c], edi
jmp 0x42c13d
xor edi, edi
mov dword [ebp - 0xf8c], edi
mov eax, dword [ebp - 0xfa8]
test eax, eax
je 0x42c13d
push eax
call fcn.00503e53
add esp, 4
jmp 0x42c13d
xor edi, edi
mov ecx, 0x64
call fcn.004212f0
mov eax, dword [ebp - 0x1124]
mov esi, dword [0x5a026c]
test eax, eax
je 0x42c15a
push eax
call esi
mov eax, dword [ebp - 0x1118]
mov dword [ebp - 0x1124], 0
test eax, eax
je 0x42c177
push eax
call fcn.00503e53
add esp, 4
mov eax, dword [ebp - 0x10f4]
mov dword [ebp - 0x1118], 0
mov dword [ebp - 0x1138], 0
mov dword [ebp - 0x1110], 0xffffffff
mov dword [ebp - 0x110c], 0xffffffff
test eax, eax
je 0x42c1ac
push eax
call esi
mov eax, dword [ebp - 0x10e8]
mov dword [ebp - 0x10f4], 0
test eax, eax
je 0x42c1c9
push eax
call fcn.00503e53
add esp, 4
mov eax, dword [ebp - 0x10c4]
mov dword [ebp - 0x10e8], 0
mov dword [ebp - 0x1108], 0
mov dword [ebp - 0x10e0], 0xffffffff
mov dword [ebp - 0x10dc], 0xffffffff
test eax, eax
je 0x42c1fe
push eax
call esi
mov eax, dword [ebp - 0x10b8]
mov dword [ebp - 0x10c4], 0
test eax, eax
je 0x42c21b
push eax
call fcn.00503e53
add esp, 4
mov eax, dword [ebp - 0x1094]
mov dword [ebp - 0x10b8], 0
mov dword [ebp - 0x10d8], 0
mov dword [ebp - 0x10b0], 0xffffffff
mov dword [ebp - 0x10ac], 0xffffffff
test eax, eax
je 0x42c250
push eax
call esi
mov eax, dword [ebp - 0x1088]
mov dword [ebp - 0x1094], 0
test eax, eax
je 0x42c26d
push eax
call fcn.00503e53
add esp, 4
lea ecx, [ebp - 0x1200]
mov dword [ebp - 0x1088], 0
mov dword [ebp - 0x10a8], 0
mov dword [ebp - 0x1080], 0xffffffff
mov dword [ebp - 0x107c], 0xffffffff
call fcn.0042f770
test edi, edi
jne 0x42c2f4
mov eax, dword [ebx + 8]
cmp byte [eax], 0
jne 0x42c2f4
mov edi, dword [0x5a0208]
lea eax, [ebp - 0x120]
xor esi, esi
push esi
push dword [ebp - 0x104c]
push eax
call edi
test eax, eax
jne 0x42c2ee
cmp esi, 0x3c
jge 0x42c2ee
push 0x3e8
call dword [0x5a020c]
push 0
push dword [ebp - 0x104c]
lea eax, [ebp - 0x120]
inc esi
push eax
call edi
test eax, eax
je 0x42c2c8
mov edi, dword [ebp - 0xf8c]
cmp byte [ebp - 0x120], 0
je 0x42c30a
lea eax, [ebp - 0x120]
push eax
call dword [0x5a0258]
mov esi, dword [0x5a026c]
mov eax, dword [ebp - 0xa40]
mov dword [ebp - 0xf48], 0x614378
mov dword [ebp - 0xa44], 0
mov dword [ebp - 0xa38], 0
test eax, eax
je 0x42c34a
cmp byte [ebp - 0xa34], 0
jne 0x42c34a
push eax
call fcn.00503e53
add esp, 4
mov dword [ebp - 0xa40], 0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xf48]
mov dword [ebp - 0xf48], 0x5ab1d8
call fcn.004888c0
lea ecx, [ebp - 0xf48]
call fcn.00488800
mov eax, dword [ebp - 0x1094]
test eax, eax
je 0x42c385
push eax
call esi
mov ecx, dword [ebp - 0x1088]
xor eax, eax
mov dword [ebp - 0x1094], eax
test ecx, ecx
je 0x42c3a6
push ecx
call fcn.00503e53
mov eax, dword [ebp - 0x1094]
add esp, 4
mov dword [ebp - 0x1088], 0
mov dword [ebp - 0x10a8], 0
mov dword [ebp - 0x1080], 0xffffffff
mov dword [ebp - 0x107c], 0xffffffff
test eax, eax
je 0x42c3d5
push eax
call esi
mov eax, dword [ebp - 0x10c4]
mov dword [ebp - 0x1094], 0
test eax, eax
je 0x42c3ec
push eax
call esi
mov ecx, dword [ebp - 0x10b8]
xor eax, eax
mov dword [ebp - 0x10c4], eax
test ecx, ecx
je 0x42c40d
push ecx
call fcn.00503e53
mov eax, dword [ebp - 0x10c4]
add esp, 4
mov dword [ebp - 0x10b8], 0
mov dword [ebp - 0x10d8], 0
mov dword [ebp - 0x10b0], 0xffffffff
mov dword [ebp - 0x10ac], 0xffffffff
test eax, eax
je 0x42c43c
push eax
call esi
mov eax, dword [ebp - 0x10f4]
mov dword [ebp - 0x10c4], 0
test eax, eax
je 0x42c453
push eax
call esi
mov ecx, dword [ebp - 0x10e8]
xor eax, eax
mov dword [ebp - 0x10f4], eax
test ecx, ecx
je 0x42c474
push ecx
call fcn.00503e53
mov eax, dword [ebp - 0x10f4]
add esp, 4
mov dword [ebp - 0x10e8], 0
mov dword [ebp - 0x1108], 0
mov dword [ebp - 0x10e0], 0xffffffff
mov dword [ebp - 0x10dc], 0xffffffff
test eax, eax
je 0x42c4a3
push eax
call esi
mov eax, dword [ebp - 0x1124]
mov dword [ebp - 0x10f4], 0
test eax, eax
je 0x42c4ba
push eax
call esi
mov ecx, dword [ebp - 0x1118]
xor eax, eax
mov dword [ebp - 0x1124], eax
test ecx, ecx
je 0x42c4db
push ecx
call fcn.00503e53
mov eax, dword [ebp - 0x1124]
add esp, 4
mov dword [ebp - 0x1118], 0
mov dword [ebp - 0x1138], 0
mov dword [ebp - 0x1110], 0xffffffff
mov dword [ebp - 0x110c], 0xffffffff
test eax, eax
je 0x42c50a
push eax
call esi
lea ecx, [ebp - 0x1200]
mov dword [ebp - 0x1124], 0
call fcn.0042f5f0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004fe8dc
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret