Function at 0x505980
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1364
call fcn.005091e0
mov eax, dword [0x55ca98]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x1360], eax
mov ebx, dword [edx + 0x504]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 0x508]
mov dword [ebp - 0x134c], eax
mov eax, dword [ebp + 0x14]
push esi
mov dword [ebp - 0x1350], eax
lea esi, [ebx*4]
xor eax, eax
mov dword [ebp - 0x1330], edx
mov dword [ebp - 0x1344], ebx
mov dword [ebp - 0x1334], eax
mov dword [ebp - 0x1338], esi
push edi
mov edi, dword [edx + 0x510]
mov dword [ebp - 0x1324], edi
test ebx, ebx
jle 0x505cf3
mov ecx, esi
lea edi, [ebp - 0x108]
shr ecx, 2
mov eax, 0xffffff38
rep stosd dword es:[edi], eax
mov ecx, esi
lea edi, [ebp - 0x20c]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
lea edi, [ebp - 0x414]
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, esi
lea edi, [ebp - 0x310]
shr ecx, 2
mov eax, 1
rep stosd dword es:[edi], eax
mov ecx, esi
lea edi, [ebp - 0x518]
shr ecx, 2
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x1324]
lea ecx, [ebx - 1]
xor esi, esi
mov dword [ebp - 0x1320], ecx
test ecx, ecx
jle 0x50620f
lea eax, [ebp - 0x1318]
mov ebx, ecx
mov dword [ebp - 0x131c], eax
push edi
push dword [edx + 0x508]
push eax
push dword [edx + esi*4 + 4]
push dword [edx + esi*4]
push dword [ebp - 0x134c]
push dword [ebp - 0x1350]
call fcn.00504d30
add dword [ebp - 0x1334], eax
inc esi
mov eax, dword [ebp - 0x131c]
add esp, 0x1c
mov edx, dword [ebp - 0x1330]
add eax, 0x38
mov dword [ebp - 0x131c], eax
cmp esi, ebx
jl 0x505a70
mov ebx, dword [ebp - 0x1344]
mov ecx, dword [ebp - 0x1320]
mov eax, dword [ebp - 0x1334]
test eax, eax
je 0x50620f
lea eax, [ecx*8]
xorps xmm2, xmm2
sub eax, ecx
movsd qword [ebp - 0x132c], xmm2
xorps xmm5, xmm5
xorps xmm4, xmm4
xorps xmm7, xmm7
xorps xmm6, xmm6
xorps xmm3, xmm3
mov eax, dword [ebp + eax*8 - 0x134c]
mov dword [ebp - 0x131c], eax
test ecx, ecx
jle 0x505bf3
mov ebx, dword [ebp - 0x1320]
lea esi, [ebp - 0x12e4]
movaps xmm5, xmm2
mov ecx, dword [esi - 0x18]
xorps xmm1, xmm1
mov edx, dword [esi]
xorps xmm0, xmm0
lea eax, [edx + ecx]
cvtsi2ss xmm1, eax
lea eax, [ecx + 1]
cvtsi2ss xmm0, eax
mulss xmm1, dword [edi + 0x454]
divss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esi - 0x14]
cvtps2pd xmm2, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [esi - 0x2c]
addsd xmm2, qword [0x520258]
mulsd xmm1, xmm2
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esi - 0x10]
addsd xmm4, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [esi - 0x28]
mulsd xmm1, xmm2
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esi - 0xc]
addsd xmm7, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [esi - 0x24]
mulsd xmm1, xmm2
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esi - 4]
addsd xmm6, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [esi - 0x1c]
add esi, 0x38
mulsd xmm1, xmm2
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, edx
addsd xmm5, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, ecx
mulsd xmm1, xmm2
addsd xmm1, xmm0
addsd xmm3, xmm1
sub ebx, 1
jne 0x505b14
mov ebx, dword [ebp - 0x1344]
movsd qword [ebp - 0x132c], xmm5
xorps xmm5, xmm5
movsd xmm2, qword [ebp - 0x132c]
movaps xmm1, xmm3
movaps xmm0, xmm4
mulsd xmm1, xmm6
mulsd xmm0, xmm4
subsd xmm1, xmm0
comisd xmm1, xmm5
jbe 0x505d2d
mulsd xmm6, xmm7
movaps xmm0, xmm2
sub esp, 8
mulsd xmm3, xmm2
mulsd xmm7, xmm4
mulsd xmm0, xmm4
subsd xmm3, xmm7
subsd xmm6, xmm0
movd xmm0, dword [ebp - 0x1318]
cvtdq2pd xmm0, xmm0
divsd xmm3, xmm1
divsd xmm6, xmm1
mulsd xmm0, xmm3
movsd qword [ebp - 0x135c], xmm6
movsd qword [ebp - 0x1340], xmm3
addsd xmm0, xmm6
addsd xmm0, qword [0x514588]
movsd qword [ebp - 0x132c], xmm0
fld qword [ebp - 0x132c]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movd xmm1, dword [ebp - 0x131c]
movsd xmm0, qword [ebp - 0x1340]
cvtdq2pd xmm1, xmm1
fstp qword [ebp - 0x132c]
cvttsd2si esi, qword [ebp - 0x132c]
mulsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x135c]
addsd xmm0, qword [0x514588]
movsd qword [ebp - 0x132c], xmm0
fld qword [ebp - 0x132c]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [ebp - 0x132c]
cvttsd2si eax, qword [ebp - 0x132c]
mov ecx, 0x3ff
add esp, 8
cmp esi, ecx
cmovg esi, ecx
cmp eax, ecx
cmovg eax, ecx
xor edx, edx
test esi, esi
cmovns edx, esi
xor ecx, ecx
test eax, eax
cmovns ecx, eax
jmp 0x505d31
jne 0x505a4f
push edi
push ecx
lea eax, [ebp - 0x1318]
push eax
push ecx
push 0
push dword [ebp - 0x134c]
push dword [ebp - 0x1350]
call fcn.00504d30
lea ecx, [ebx - 1]
mov dword [ebp - 0x1338], esi
add esp, 0x1c
mov dword [ebp - 0x1320], ecx
jmp 0x505ac5
xor edx, edx
xor ecx, ecx
mov esi, 2
mov dword [ebp - 0x133c], ecx
mov dword [ebp - 0x1320], edx
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x20c], edx
mov dword [ebp - 0x208], ecx
mov dword [ebp - 0x104], ecx
cmp ebx, esi
jle 0x506075
mov ecx, dword [ebp - 0x1330]
lea eax, [ecx + 0x210]
mov dword [ebp - 0x1320], eax
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [eax]
mov ebx, dword [ebp + eax*4 - 0x414]
mov edi, dword [ebp + eax*4 - 0x310]
cmp dword [ebp + ebx*4 - 0x518], edi
je 0x506035
mov eax, dword [ecx + ebx*4 + 0x208]
mov edx, dword [ebp - 0x1324]
mov dword [ebp - 0x133c], eax
mov eax, dword [ecx + edi*4 + 0x208]
mov ecx, dword [ebp + ebx*4 - 0x108]
mov dword [ebp - 0x1328], eax
mov eax, dword [ebp + ebx*4 - 0x20c]
mov dword [ebp + ebx*4 - 0x518], edi
mov dword [ebp - 0x1334], eax
test ecx, ecx
js 0x505dee
test eax, eax
jns 0x505de4
mov eax, ecx
jmp 0x505de8
add eax, ecx
sar eax, 1
mov dword [ebp - 0x1334], eax
cmp dword [ebp + edi*4 - 0x108], 0
mov ecx, dword [ebp + edi*4 - 0x20c]
mov dword [ebp - 0x1354], ecx
jl 0x505e21
test ecx, ecx
jns 0x505e12
mov ecx, dword [ebp + edi*4 - 0x108]
jmp 0x505e1b
add ecx, dword [ebp + edi*4 - 0x108]
sar ecx, 1
mov dword [ebp - 0x1354], ecx
cmp eax, 0xffffffff
je 0x50606d
cmp ecx, 0xffffffff
je 0x50606d
push edx
push dword [ebp - 0x134c]
push dword [ebp - 0x1350]
push ecx
push eax
push dword [edx + edi*4 + 0x344]
push dword [edx + ebx*4 + 0x344]
call fcn.00506480
add esp, 0x1c
test eax, eax
je 0x506019
mov ecx, dword [ebp - 0x1324]
lea eax, [ebp - 0x1348]
push ecx
mov ecx, dword [ebp - 0x133c]
push eax
lea eax, [ebp - 0x1364]
mov dword [ebp - 0x1364], 0xffffff38
push eax
mov eax, dword [ebp - 0x1320]
mov dword [ebp - 0x1348], 0xffffff38
mov dword [ebp - 0x131c], 0xffffff38
mov dword [ebp - 0x1358], 0xffffff38
mov eax, dword [eax]
sub eax, ecx
push eax
lea eax, [ecx*8]
sub eax, ecx
lea ecx, [ebp - 0x1318]
lea eax, [ecx + eax*8]
push eax
call fcn.00504f00
push dword [ebp - 0x1324]
mov edx, dword [ebp - 0x1320]
lea ecx, [ebp - 0x1358]
push ecx
mov dword [ebp - 0x133c], eax
lea ecx, [ebp - 0x131c]
mov eax, dword [ebp - 0x1328]
push ecx
mov ecx, dword [edx]
sub eax, ecx
push eax
lea eax, [ecx*8]
sub eax, ecx
lea ecx, [ebp - 0x1318]
lea eax, [ecx + eax*8]
push eax
call fcn.00504f00
mov edx, eax
add esp, 0x28
cmp dword [ebp - 0x133c], 0
mov eax, dword [ebp - 0x131c]
mov dword [ebp - 0x1328], edx
mov dword [ebp - 0x131c], eax
je 0x505f31
mov ecx, dword [ebp - 0x1334]
jmp 0x505f3d
mov ecx, dword [ebp - 0x1364]
mov eax, dword [ebp - 0x1348]
mov dword [ebp - 0x1348], eax
test edx, edx
je 0x505f55
mov edx, dword [ebp - 0x1354]
mov dword [ebp - 0x131c], eax
jmp 0x505f5b
mov edx, dword [ebp - 0x1358]
cmp dword [ebp - 0x133c], 0
je 0x505f71
cmp dword [ebp - 0x1328], 0
jne 0x506019
mov eax, dword [ebp - 0x108]
test ebx, ebx
mov dword [ebp + ebx*4 - 0x20c], ecx
cmove eax, ecx
mov ecx, dword [ebp - 0x1348]
mov dword [ebp - 0x108], eax
cmp edi, 1
mov eax, dword [ebp - 0x131c]
mov dword [ebp + esi*4 - 0x20c], eax
mov eax, dword [ebp - 0x208]
cmove eax, edx
mov dword [ebp + esi*4 - 0x108], ecx
mov dword [ebp + edi*4 - 0x108], edx
mov dword [ebp - 0x208], eax
test ecx, ecx
jns 0x505fc9
cmp dword [ebp - 0x131c], 0
jl 0x50602f
mov eax, dword [ebp - 0x1320]
mov ecx, dword [eax]
lea eax, [ecx - 1]
test eax, eax
js 0x505ff5
nop dword [eax + eax]
cmp dword [ebp + eax*4 - 0x310], edi
jne 0x505ff5
mov dword [ebp + eax*4 - 0x310], esi
sub eax, 1
jns 0x505fe0
mov edi, dword [ebp - 0x1344]
lea eax, [ecx + 1]
cmp eax, edi
jge 0x50602f
cmp dword [ebp + eax*4 - 0x414], ebx
jne 0x50602f
mov dword [ebp + eax*4 - 0x414], esi
inc eax
cmp eax, edi
jl 0x506002
jmp 0x50602f
mov dword [ebp + esi*4 - 0x20c], 0xffffff38
mov dword [ebp + esi*4 - 0x108], 0xffffff38
mov ecx, dword [ebp - 0x1330]
mov eax, dword [ebp - 0x1320]
inc esi
mov ebx, dword [ebp - 0x1344]
add eax, 4
mov dword [ebp - 0x1320], eax
cmp esi, ebx
jl 0x505d80
mov eax, dword [ebp - 0x20c]
mov esi, dword [ebp - 0x104]
mov edi, dword [ebp - 0x1324]
mov dword [ebp - 0x1320], eax
jmp 0x50607b
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov esi, dword [ebp - 0x133c]
push dword [ebp - 0x1338]
push dword [ebp - 0x1360]
call fcn.004f8600
mov edx, dword [ebp - 0x1320]
add esp, 8
cmp dword [ebp - 0x108], 0
mov ecx, eax
mov dword [ebp - 0x131c], ecx
jl 0x5060ba
test edx, edx
jns 0x5060b2
mov edx, dword [ebp - 0x108]
jmp 0x5060ba
add edx, dword [ebp - 0x108]
sar edx, 1
mov dword [ecx], edx
test esi, esi
jns 0x5060c8
mov esi, dword [ebp - 0x208]
jmp 0x5060d9
cmp dword [ebp - 0x208], 0
jl 0x5060d9
add esi, dword [ebp - 0x208]
sar esi, 1
mov dword [ecx + 4], esi
mov dword [ebp - 0x133c], 2
cmp ebx, 2
jle 0x506211
lea eax, [edi + 0x34c]
mov ebx, 0xfffffcfc
mov dword [ebp - 0x1338], eax
mov eax, dword [ebp - 0x1330]
sub ebx, eax
mov dword [ebp - 0x1328], ebx
lea edx, [eax + 0x30c]
mov dword [ebp - 0x1358], edx
nop word [eax + eax]
mov eax, dword [edx + 0xfc]
mov esi, dword [edx]
mov edi, dword [edi + eax*4 + 0x344]
mov eax, dword [ecx + eax*4]
mov ebx, dword [ecx + esi*4]
and eax, 0x7fff
mov ecx, dword [ebp - 0x1338]
and ebx, 0x7fff
sub ebx, eax
mov dword [ebp - 0x1360], eax
mov eax, ebx
cdq
mov ecx, dword [ecx]
xor eax, edx
sub eax, edx
sub ecx, edi
imul eax, ecx
mov ecx, dword [ebp - 0x1324]
mov ecx, dword [ecx + esi*4 + 0x344]
sub ecx, edi
cdq
idiv ecx
mov edx, dword [ebp - 0x1360]
lea ecx, [eax + edx]
sub edx, eax
test ebx, ebx
mov ebx, dword [ebp - 0x133c]
cmovns edx, ecx
mov eax, dword [ebp + ebx*4 - 0x108]
test eax, eax
jns 0x506198
mov eax, dword [ebp + ebx*4 - 0x20c]
jmp 0x5061a7
mov ecx, dword [ebp + ebx*4 - 0x20c]
test ecx, ecx
js 0x5061ab
add eax, ecx
sar eax, 1
test eax, eax
js 0x5061af
cmp edx, eax
jne 0x5061b6
mov eax, edx
or eax, 0x8000
mov edx, dword [ebp - 0x1358]
inc ebx
mov ecx, dword [ebp - 0x1328]
mov esi, dword [ebp - 0x131c]
add ecx, edx
add dword [ebp - 0x1338], 4
add edx, 4
mov edi, dword [ebp - 0x1324]
mov dword [ebp - 0x133c], ebx
mov dword [ecx + esi], eax
mov ecx, dword [ebp - 0x131c]
mov dword [ebp - 0x1358], edx
cmp ebx, dword [ebp - 0x1344]
jl 0x506120
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005091c5
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov eax, ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005091c5
mov esp, ebp
pop ebp
ret