Function at 0x52ba10
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1364
call fcn.0054f750
mov eax, dword [0x62aabc]
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 0x52bd83
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 0x52c29f
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.0052adb0
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 0x52bb00
mov ebx, dword [ebp - 0x1344]
mov ecx, dword [ebp - 0x1320]
mov eax, dword [ebp - 0x1334]
test eax, eax
je 0x52c29f
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 0x52bc83
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 [0x619e70]
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 0x52bba4
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 0x52bdbd
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 [0x619e60]
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 [0x619e60]
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 0x52bdc1
jne 0x52badf
push edi
push ecx
lea eax, [ebp - 0x1318]
push eax
push ecx
push 0
push dword [ebp - 0x134c]
push dword [ebp - 0x1350]
call fcn.0052adb0
lea ecx, [ebx - 1]
mov dword [ebp - 0x1338], esi
add esp, 0x1c
mov dword [ebp - 0x1320], ecx
jmp 0x52bb55
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 0x52c105
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 0x52c0c5
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 0x52be7e
test eax, eax
jns 0x52be74
mov eax, ecx
jmp 0x52be78
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 0x52beb1
test ecx, ecx
jns 0x52bea2
mov ecx, dword [ebp + edi*4 - 0x108]
jmp 0x52beab
add ecx, dword [ebp + edi*4 - 0x108]
sar ecx, 1
mov dword [ebp - 0x1354], ecx
cmp eax, 0xffffffff
je 0x52c0fd
cmp ecx, 0xffffffff
je 0x52c0fd
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.0052c510
add esp, 0x1c
test eax, eax
je 0x52c0a9
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.0052af80
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.0052af80
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 0x52bfc1
mov ecx, dword [ebp - 0x1334]
jmp 0x52bfcd
mov ecx, dword [ebp - 0x1364]
mov eax, dword [ebp - 0x1348]
mov dword [ebp - 0x1348], eax
test edx, edx
je 0x52bfe5
mov edx, dword [ebp - 0x1354]
mov dword [ebp - 0x131c], eax
jmp 0x52bfeb
mov edx, dword [ebp - 0x1358]
cmp dword [ebp - 0x133c], 0
je 0x52c001
cmp dword [ebp - 0x1328], 0
jne 0x52c0a9
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 0x52c059
cmp dword [ebp - 0x131c], 0
jl 0x52c0bf
mov eax, dword [ebp - 0x1320]
mov ecx, dword [eax]
lea eax, [ecx - 1]
test eax, eax
js 0x52c085
nop dword [eax + eax]
cmp dword [ebp + eax*4 - 0x310], edi
jne 0x52c085
mov dword [ebp + eax*4 - 0x310], esi
sub eax, 1
jns 0x52c070
mov edi, dword [ebp - 0x1344]
lea eax, [ecx + 1]
cmp eax, edi
jge 0x52c0bf
cmp dword [ebp + eax*4 - 0x414], ebx
jne 0x52c0bf
mov dword [ebp + eax*4 - 0x414], esi
inc eax
cmp eax, edi
jl 0x52c092
jmp 0x52c0bf
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 0x52be10
mov eax, dword [ebp - 0x20c]
mov esi, dword [ebp - 0x104]
mov edi, dword [ebp - 0x1324]
mov dword [ebp - 0x1320], eax
jmp 0x52c10b
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.004ddf40
mov edx, dword [ebp - 0x1320]
add esp, 8
cmp dword [ebp - 0x108], 0
mov ecx, eax
mov dword [ebp - 0x131c], ecx
jl 0x52c14a
test edx, edx
jns 0x52c142
mov edx, dword [ebp - 0x108]
jmp 0x52c14a
add edx, dword [ebp - 0x108]
sar edx, 1
mov dword [ecx], edx
test esi, esi
jns 0x52c158
mov esi, dword [ebp - 0x208]
jmp 0x52c169
cmp dword [ebp - 0x208], 0
jl 0x52c169
add esi, dword [ebp - 0x208]
sar esi, 1
mov dword [ecx + 4], esi
mov dword [ebp - 0x133c], 2
cmp ebx, 2
jle 0x52c2a1
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 0x52c228
mov eax, dword [ebp + ebx*4 - 0x20c]
jmp 0x52c237
mov ecx, dword [ebp + ebx*4 - 0x20c]
test ecx, ecx
js 0x52c23b
add eax, ecx
sar eax, 1
test eax, eax
js 0x52c23f
cmp edx, eax
jne 0x52c246
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 0x52c1b0
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0054f742
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.0054f742
mov esp, ebp
pop ebp
ret