Function at 0x5cf060
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push esi
and esp, 0xfffffff8
sub esp, 0x2e0
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov eax, dword [0x5c50b0]
xor eax, ebp
mov dword [esp + 0x2d8], eax
lea eax, str..reloc
mov dword [esp + 0x200], eax
lea eax, [esp + 0x2d0]
mov dword [esp + 0x1fc], eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x1cc], eax
mov byte [eax], 0
mov ecx, dword [esp + 0x200]
mov cl, byte [ecx]
mov byte [esp + 0x2cf], cl
mov dword [esp + 0x2c8], eax
movzx eax, byte [esp + 0x2cf]
imul eax, eax, 0x65
add eax, 0x69
mov ecx, 0x7f
cdq
idiv ecx
mov eax, dword [esp + 0x1cc]
mov cl, dl
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x200]
mov cl, byte [ecx + 1]
mov byte [esp + 0x2c7], cl
mov dword [esp + 0x2c0], eax
movzx eax, byte [esp + 0x2c7]
imul eax, eax, 0x65
add eax, 0x69
mov ecx, 0x7f
cdq
idiv ecx
mov eax, dword [esp + 0x1cc]
mov cl, dl
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x200]
mov cl, byte [ecx + 2]
mov byte [esp + 0x2bf], cl
mov dword [esp + 0x2b8], eax
movzx eax, byte [esp + 0x2bf]
imul eax, eax, 0x65
add eax, 0x69
mov ecx, 0x7f
cdq
idiv ecx
mov eax, dword [esp + 0x1cc]
mov cl, dl
mov byte [eax + 3], cl
mov ecx, dword [esp + 0x200]
mov cl, byte [ecx + 3]
mov byte [esp + 0x2b7], cl
mov dword [esp + 0x2b0], eax
movzx eax, byte [esp + 0x2b7]
imul eax, eax, 0x65
add eax, 0x69
mov ecx, 0x7f
cdq
idiv ecx
mov eax, dword [esp + 0x1cc]
mov cl, dl
mov byte [eax + 4], cl
mov ecx, dword [esp + 0x200]
mov cl, byte [ecx + 4]
mov byte [esp + 0x2af], cl
mov dword [esp + 0x2a8], eax
movzx eax, byte [esp + 0x2af]
imul eax, eax, 0x65
add eax, 0x69
mov ecx, 0x7f
cdq
idiv ecx
mov eax, dword [esp + 0x1cc]
mov cl, dl
mov byte [eax + 5], cl
mov ecx, dword [esp + 0x200]
mov cl, byte [ecx + 5]
mov byte [esp + 0x2a7], cl
mov dword [esp + 0x2a0], eax
movzx eax, byte [esp + 0x2a7]
imul eax, eax, 0x65
add eax, 0x69
mov ecx, 0x7f
cdq
idiv ecx
mov eax, dword [esp + 0x1cc]
mov cl, dl
mov byte [eax + 6], cl
mov ecx, dword [esp + 0x200]
mov cl, byte [ecx + 6]
mov byte [esp + 0x29f], cl
mov dword [esp + 0x298], eax
movzx eax, byte [esp + 0x29f]
imul eax, eax, 0x65
add eax, 0x69
mov ecx, 0x7f
cdq
idiv ecx
mov eax, dword [esp + 0x1cc]
mov cl, dl
mov byte [eax + 7], cl
lea ecx, [esp + 0x2d0]
call fcn.005d04e0
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f0], 0
mov eax, dword [esp + 0x1f0]
mov ecx, dword [ebp + 8]
movzx ecx, word [ecx + 6]
cmp eax, ecx
jge 0x5d0485
mov eax, dword [0x5c4b00]
mov esi, dword [esp + 0x1f4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x1f0]
lea edx, [edx + edx*4]
lea edx, [ecx + edx*8]
mov ecx, esp
mov dword [ecx + 4], esi
mov dword [ecx], edx
call eax
test eax, eax
movsd xmm0, qword [0x4802b0]
xorps xmm1, xmm1
movsd qword [esp + 0x1b8], xmm1
movsd qword [esp + 0x1c0], xmm0
je 0x5cf2d2
movsd xmm0, qword [esp + 0x1b8]
movsd qword [esp + 0x1c0], xmm0
movsd xmm0, qword [esp + 0x1c0]
movsd qword [esp + 0x288], xmm0
movsd xmm0, qword [esp + 0x288]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x280], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x1ac], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x1ac]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x1b4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x1b0], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x1b0]
mov dl, al
mov eax, dword [esp + 0x1b4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5cf513
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x1a0], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x1a0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x1a4], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x1a4]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x1a8], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x1a8]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5cf50e
mov dword [esp + 0x27c], 0
cmp dword [esp + 0x27c], 4
jae 0x5cf509
movsd xmm0, qword [esp + 0x280]
cvtsi2sd xmm1, dword [esp + 0x27c]
addsd xmm0, xmm1
movsd qword [esp + 0x198], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x198]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5cf476
jp 0x5cf476
movsd xmm0, qword [esp + 0x280]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x280], xmm0
jmp 0x5cf313
movsd xmm0, qword [esp + 0x280]
cvtsi2sd xmm1, dword [esp + 0x27c]
addsd xmm0, xmm1
movsd qword [esp + 0x190], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x190]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5cf504
jp 0x5cf504
mov eax, dword [esp + 0x27c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x280]
addsd xmm0, xmm1
movsd qword [esp + 0x280], xmm0
movsd xmm0, qword [esp + 0x280]
cvtsi2sd xmm1, dword [esp + 0x27c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x294], eax
jmp 0x5cf5ce
jmp 0x5cf518
jmp 0x5cf313
jmp 0x5cf518
jmp 0x5cf518
movsd xmm0, qword [esp + 0x280]
movsd qword [esp + 0x180], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x178], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x178]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x18c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x17c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x17c]
movsd xmm0, qword [esp + 0x180]
mov dl, al
mov eax, dword [esp + 0x18c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x294], eax
mov eax, dword [esp + 0x294]
mov dword [esp + 0x174], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x168], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x168]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x170], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x16c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x16c]
mov dl, al
mov eax, dword [esp + 0x170]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x174]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d00cf
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x14c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x14c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x150], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x150]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x154], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x154]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x164], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x158], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x158]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x160], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x15c], eax
call fcn.005ceb20
mov edx, dword [esp + 0x15c]
mov cl, al
mov eax, dword [esp + 0x160]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x164]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d00cf
mov dword [esp + 0x1ec], 0x7835
mov dword [esp + 0x1e8], 0x4121
mov dword [esp + 0x1e4], 0x27d5
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x1ec], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x270], xmm0
movsd xmm0, qword [esp + 0x270]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x268], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x140], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x140]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x148], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x144], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x144]
mov dl, al
mov eax, dword [esp + 0x148]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5cf9c2
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x134], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x134]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x138], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x138]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x13c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x13c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5cf9bd
mov dword [esp + 0x264], 0
cmp dword [esp + 0x264], 4
jae 0x5cf9b8
movsd xmm0, qword [esp + 0x268]
cvtsi2sd xmm1, dword [esp + 0x264]
addsd xmm0, xmm1
movsd qword [esp + 0x128], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x128]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5cf925
jp 0x5cf925
movsd xmm0, qword [esp + 0x268]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x268], xmm0
jmp 0x5cf7c2
movsd xmm0, qword [esp + 0x268]
cvtsi2sd xmm1, dword [esp + 0x264]
addsd xmm0, xmm1
movsd qword [esp + 0x120], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x120]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5cf9b3
jp 0x5cf9b3
mov eax, dword [esp + 0x264]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x268]
addsd xmm0, xmm1
movsd qword [esp + 0x268], xmm0
movsd xmm0, qword [esp + 0x268]
cvtsi2sd xmm1, dword [esp + 0x264]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x278], eax
jmp 0x5cfa7d
jmp 0x5cf9c7
jmp 0x5cf7c2
jmp 0x5cf9c7
jmp 0x5cf9c7
movsd xmm0, qword [esp + 0x268]
movsd qword [esp + 0x110], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x108], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x108]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x11c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x10c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x10c]
movsd xmm0, qword [esp + 0x110]
mov dl, al
mov eax, dword [esp + 0x11c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x104], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0xf8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0xf8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x100], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0xfc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0xfc]
mov dl, al
mov eax, dword [esp + 0x100]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x104]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d00a4
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0xdc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0xdc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0xe0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0xe0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0xe4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0xe4]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0xf4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0xe8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0xe8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0xf0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0xec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0xec]
mov dl, al
mov eax, dword [esp + 0xf0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d00a4
mov dword [esp + 0x1e4], 0x77c3
mov dword [esp + 0x1e0], 0x5ea9
mov dword [esp + 0x1dc], 0x9432
mov dword [esp + 0x1d8], 0x5b28
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x1e0], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x258], xmm0
movsd xmm0, qword [esp + 0x258]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x250], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0xd0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0xd0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0xd8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0xd4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0xd4]
mov dl, al
mov eax, dword [esp + 0xd8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5cfe75
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0xc4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0xc4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0xc8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0xc8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0xcc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0xcc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5cfe70
mov dword [esp + 0x24c], 0
cmp dword [esp + 0x24c], 4
jae 0x5cfe6b
movsd xmm0, qword [esp + 0x250]
cvtsi2sd xmm1, dword [esp + 0x24c]
addsd xmm0, xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0xb8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5cfdd8
jp 0x5cfdd8
movsd xmm0, qword [esp + 0x250]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x250], xmm0
jmp 0x5cfc75
movsd xmm0, qword [esp + 0x250]
cvtsi2sd xmm1, dword [esp + 0x24c]
addsd xmm0, xmm1
movsd qword [esp + 0xb0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0xb0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5cfe66
jp 0x5cfe66
mov eax, dword [esp + 0x24c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x250]
addsd xmm0, xmm1
movsd qword [esp + 0x250], xmm0
movsd xmm0, qword [esp + 0x250]
cvtsi2sd xmm1, dword [esp + 0x24c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x260], eax
jmp 0x5cff30
jmp 0x5cfe7a
jmp 0x5cfc75
jmp 0x5cfe7a
jmp 0x5cfe7a
movsd xmm0, qword [esp + 0x250]
movsd qword [esp + 0xa0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x98], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x98]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0xac], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x9c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x9c]
movsd xmm0, qword [esp + 0xa0]
mov dl, al
mov eax, dword [esp + 0xac]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x260]
mov dword [esp + 0x94], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x88], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x88]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x90], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x8c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x8c]
mov dl, al
mov eax, dword [esp + 0x90]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x94]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d009f
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x6c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x6c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x70], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x70]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x74], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x74]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x84], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x78], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x78]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x80], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x7c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x7c]
mov dl, al
mov eax, dword [esp + 0x80]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x84]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d009f
mov dword [esp + 0x1d8], 0x58c3
jmp 0x5d00a4
mov dword [esp + 0x1d4], 0
cmp dword [esp + 0x1d4], 0x5a
jae 0x5d00ca
mov byte [esp + 0x1fb], 1
jmp 0x5d04ad
jmp 0x5d00cf
jmp 0x5d00d4
mov eax, dword [esp + 0x1f0]
add eax, 1
mov dword [esp + 0x1f0], eax
cmp eax, 0
je 0x5d0480
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x60], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x60]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x64], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x64]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov dword [esp + 0x68], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x68]
movsx ecx, cl
sub eax, ecx
movd xmm0, eax
movups xmm1, xmmword [0x4802c0]
por xmm0, xmm1
movsd xmm1, qword [0x4802d0]
subsd xmm0, xmm1
movsd qword [esp + 0x228], xmm0
movsd xmm0, qword [esp + 0x228]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x220], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x54], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x54]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x5c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x58], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x58]
mov dl, al
mov eax, dword [esp + 0x5c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d0364
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x48], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x48]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4c], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4c]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x50], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x50]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d035f
mov dword [esp + 0x21c], 0
cmp dword [esp + 0x21c], 4
jae 0x5d035a
movsd xmm0, qword [esp + 0x220]
cvtsi2sd xmm1, dword [esp + 0x21c]
addsd xmm0, xmm1
movsd qword [esp + 0x40], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x40]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d02cd
jp 0x5d02cd
movsd xmm0, qword [esp + 0x220]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x220], xmm0
jmp 0x5d0194
movsd xmm0, qword [esp + 0x220]
cvtsi2sd xmm1, dword [esp + 0x21c]
addsd xmm0, xmm1
movsd qword [esp + 0x38], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x38]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d0355
jp 0x5d0355
mov eax, dword [esp + 0x21c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x220]
addsd xmm0, xmm1
movsd qword [esp + 0x220], xmm0
movsd xmm0, qword [esp + 0x220]
cvtsi2sd xmm1, dword [esp + 0x21c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x230], eax
jmp 0x5d0407
jmp 0x5d0369
jmp 0x5d0194
jmp 0x5d0369
jmp 0x5d0369
movsd xmm0, qword [esp + 0x220]
movsd qword [esp + 0x28], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x20], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x20]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x34], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x24], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x28]
mov dl, al
mov eax, dword [esp + 0x34]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x230]
mov dword [esp + 0x1c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x10], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x10]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x18], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x14], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x14]
mov dl, al
mov eax, dword [esp + 0x18]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
setne al
jmp 0x5cf260
mov dword [esp + 0x1d0], 0
cmp dword [esp + 0x1d0], 0x51
jae 0x5d04ab
mov byte [esp + 0x1fb], 0
jmp 0x5d04ad
ud2
mov al, byte [esp + 0x1fb]
and al, 1
movzx eax, al
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x2d8]
xor ecx, ebp
call fcn.004010cb
mov eax, dword [esp + 0xc]
lea esp, [ebp - 4]
pop esi
pop ebp
ret