Function at 0x458d47
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1fc
mov eax, dword [0x5ec268]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x1c4], ecx
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x8c], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x84], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x84], xmm0
jmp 0x458b75
movsd xmm0, qword [ebp - 0x84]
addsd xmm0, qword [0x549110]
movsd qword [ebp - 0x84], xmm0
movsd xmm0, qword [0x549778]
comisd xmm0, xmmword [ebp - 0x84]
jbe 0x458c26
movsd xmm0, qword [0x5496b8]
mulsd xmm0, qword [ebp - 0x84]
mulsd xmm0, qword [ebp - 0x84]
movsd xmm1, qword [ebp - 0x84]
mulsd xmm1, qword [ebp - 0x84]
subsd xmm0, xmm1
movsd xmm1, qword [0x5494b8]
mulsd xmm1, qword [ebp - 0x84]
mulsd xmm1, qword [ebp - 0x84]
addsd xmm1, qword [0x549520]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x8c]
movsd qword [ebp - 0x8c], xmm0
movsd xmm0, qword [ebp - 0x8c]
comisd xmm0, xmmword [0x549630]
jbe 0x458c21
movsd xmm0, qword [0x5493e0]
mulsd xmm0, qword [ebp - 0x84]
movsd xmm1, qword [ebp - 0x8c]
test dword [edi + edi*8 - 1], edi
push edx
movups xmm1, xmmword [ebp - 0x8c]
subsd xmm1, xmm0
enter 0xff2, 0x11
lea esi, [edi + edi*8 - 1]
invalid
movsd qword [ebp - 0x8c], xmm1
jmp 0x458b5d
invalid
xorps xmm0, xmm0
comisd xmm0, xmmword [ebp - 0x8c]
jbe 0x458c81
pop esp
push esi
inc edx
dec eax
xor eax, 0x45452959
pop ebp
pop eax
xor edi, dword [eax]
jo 0x458cad
xor eax, 0xc93a2e44
out 0xc4, al
jecxz 0x458c08
fmul st(1)
fadd st(0)
fadd st(5)
fcmovnb st(0), st(4)
jecxz 0x458c18
fmul st(1), st(0)
ffree st(3)
out 0xc7, al
jecxz 0x458c19
out 0xc7, al
in eax, 0xc7
fadd st(7), st(0)
fadd st(1)
loope 0x458c24
out 0xc0, al
faddp st(4)
invalid
mov dword [ebp - 0xc], 0x458c46
mov dword [ebp - 0x10], 0x458c33
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xb4], ecx
mov byte [ebp - 0x41], 0x17
mov dword [ebp - 0x2c], 0
jmp 0x458cb4
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
aam 0x83
ret 0x8901
cmp dword [ebp - 0x2c], 0x100
jae 0x458ccc
mov eax, dword [ebp - 0x2c]
mov cl, byte [ebp - 0x2c]
mov byte [ebp + eax - 0x1c0], cl
jmp 0x458cab
mov dword [ebp - 0x74], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x2c], 0xff
jmp 0x458ce9
mov edx, dword [ebp - 0x2c]
sub edx, 1
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
jbe 0x458eda
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x90], 1
mov eax, dword [ebp - 0x90]
cmp eax, dword [ebp - 0x2c]
jae 0x458d24
mov ecx, dword [ebp - 0x90]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x90], edx
jmp 0x458d07
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 3
ja case.default.0x458d40
mov ecx, dword [ebp - 0xa4]
jmp dword [ecx*4 + 0x459874]
movzx edx, byte [ebp - 0x14]
movzx ebx, byte [ebp + edx - 0x1c0]
movsd xmm0, qword [ebp - 0x8c]
call fcn.00534880
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x14], bl
jmp 0x458e05
movzx eax, byte [ebp - 0x14]
movzx ebx, byte [ebp + eax - 0x1c0]
movsd xmm0, qword [ebp - 0x8c]
call fcn.00534880
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x14], bl
jmp 0x458e05
movzx ecx, byte [ebp - 0x14]
movzx ebx, byte [ebp + ecx - 0x1c0]
movsd xmm0, qword [ebp - 0x8c]
call fcn.00534880
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x14], bl
jmp 0x458e05
movzx edx, byte [ebp - 0x14]
movzx ebx, byte [ebp + edx - 0x1c0]
movsd xmm0, qword [ebp - 0x8c]
call fcn.00534880
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x14], bl
jmp 0x458e05
movzx eax, byte [ebp - 0x14]
movzx ecx, byte [ebp + eax - 0x1c0]
mov edx, dword [ebp - 0xb4]
add edx, dword [ebp - 0x74]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x14], cl
mov ecx, dword [ebp - 0x74]
add ecx, 1
mov dword [ebp - 0x74], ecx
movzx edx, byte [ebp - 0x41]
cmp dword [ebp - 0x74], edx
jb 0x458e2b
mov dword [ebp - 0x74], 0
movzx eax, byte [ebp - 0x41]
movzx ecx, byte [ebp - 0x14]
add ecx, eax
mov byte [ebp - 0x14], cl
movzx edx, byte [ebp - 0x14]
and edx, dword [ebp - 0x90]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0xa0]
add eax, 1
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0xb
jbe 0x458e5b
mov eax, dword [ebp - 0x48]
xor edx, edx
div dword [ebp - 0x2c]
mov dword [ebp - 0x48], edx
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp - 0x2c]
ja 0x458d24
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x48]
je 0x458ed5
mov eax, dword [ebp - 0x48]
movzx ecx, byte [ebp + eax - 0x1c0]
mov edx, dword [ebp - 0x2c]
movzx eax, byte [ebp + edx - 0x1c0]
xor eax, ecx
mov ecx, dword [ebp - 0x2c]
mov byte [ebp + ecx - 0x1c0], al
mov edx, dword [ebp - 0x2c]
movzx eax, byte [ebp + edx - 0x1c0]
mov ecx, dword [ebp - 0x48]
movzx edx, byte [ebp + ecx - 0x1c0]
xor edx, eax
mov eax, dword [ebp - 0x48]
mov byte [ebp + eax - 0x1c0], dl
mov ecx, dword [ebp - 0x48]
movzx edx, byte [ebp + ecx - 0x1c0]
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [ebp + eax - 0x1c0]
xor ecx, edx
mov edx, dword [ebp - 0x2c]
mov byte [ebp + edx - 0x1c0], cl
jmp 0x458ce0
mov eax, 1
shl eax, 0
mov cl, byte [ebp + eax - 0x1c0]
mov byte [ebp - 0x11], cl
mov edx, 1
imul eax, edx, 3
mov cl, byte [ebp + eax - 0x1c0]
mov byte [ebp - 0x12], cl
mov edx, 1
imul eax, edx, 5
mov cl, byte [ebp + eax - 0x1c0]
mov byte [ebp - 0x17], cl
mov edx, 1
imul eax, edx, 7
mov cl, byte [ebp + eax - 0x1c0]
mov byte [ebp - 0x13], cl
movzx edx, byte [ebp - 0x14]
mov al, byte [ebp + edx - 0x1c0]
mov byte [ebp - 0x15], al
mov dword [ebp - 0xa8], 0x36
cmp dword [ebp - 0xa8], 2
jle 0x4597e6
mov ecx, dword [ebp - 0xa8]
and ecx, 1
jne 0x4597e6
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x40], 0
mov edx, dword [ebp - 0x40]
add edx, 1
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x30]
shl eax, 1
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x4c], 0
mov ecx, dword [ebp - 0x7c]
add ecx, dword [ebp - 0x78]
movzx edx, byte [ecx]
add edx, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], 0
mov eax, dword [ebp - 0x50]
add eax, 0xbb
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x64], 0
mov ecx, dword [ebp - 0x30]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0x64]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x54]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], 0
mov edx, dword [ebp - 0x58]
add edx, 0xd8
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], 0
mov ecx, dword [ebp - 0x54]
sub ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], 0
mov edx, dword [ebp - 0x5c]
shl edx, 4
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x70], 0
mov ecx, dword [ebp - 0x68]
or ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], ecx
mov byte [ebp - 0x18], 0
mov dl, byte [ebp - 0x70]
mov byte [ebp - 0x18], dl
mov byte [ebp - 0x16], 0
movzx eax, byte [ebp - 0x15]
mov cl, byte [ebp + eax - 0x1c0]
mov byte [ebp - 0x16], cl
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp + edx - 0x1c0]
mov dword [ebp - 0xb8], eax
mov cl, byte [ebp - 0x11]
add cl, 1
mov byte [ebp - 0x11], cl
movzx edx, byte [ebp - 0x12]
add edx, dword [ebp - 0xb8]
mov byte [ebp - 0x12], dl
movzx eax, byte [ebp - 0x12]
movzx ecx, byte [ebp - 0x15]
mov dl, byte [ebp + eax - 0x1c0]
mov byte [ebp + ecx - 0x1c0], dl
movzx eax, byte [ebp - 0x13]
movzx ecx, byte [ebp - 0x12]
mov dl, byte [ebp + eax - 0x1c0]
mov byte [ebp + ecx - 0x1c0], dl
movzx eax, byte [ebp - 0x11]
movzx ecx, byte [ebp - 0x13]
mov dl, byte [ebp + eax - 0x1c0]
mov byte [ebp + ecx - 0x1c0], dl
movzx eax, byte [ebp - 0x11]
mov cl, byte [ebp - 0x16]
mov byte [ebp + eax - 0x1c0], cl
movzx edx, byte [ebp - 0x16]
movzx eax, byte [ebp + edx - 0x1c0]
movzx ecx, byte [ebp - 0x17]
add ecx, eax
mov byte [ebp - 0x17], cl
movzx edx, byte [ebp - 0x18]
movzx eax, byte [ebp - 0x12]
movzx ecx, byte [ebp + eax - 0x1c0]
movzx eax, byte [ebp - 0x11]
movzx eax, byte [ebp + eax - 0x1c0]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1c0]
xor edx, ecx
movzx eax, byte [ebp - 0x13]
movzx ecx, byte [ebp + eax - 0x1c0]
movzx eax, byte [ebp - 0x15]
movzx eax, byte [ebp + eax - 0x1c0]
add ecx, eax
movzx eax, byte [ebp - 0x17]
movzx eax, byte [ebp + eax - 0x1c0]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1c0]
movzx eax, byte [ebp + ecx - 0x1c0]
xor edx, eax
mov byte [ebp - 0x13], dl
mov cl, byte [ebp - 0x18]
mov byte [ebp - 0x15], cl
mov dl, byte [ebp - 0x13]
mov byte [ebp - 0x1d], dl
cmp dword [ebp - 0x30], 0
jle 0x45916d
movsx ax, byte [ebp - 0x1d]
mov ecx, dword [ebp - 0x30]
mov word [ebp + ecx*2 - 0x1fe], ax
mov edx, dword [ebp - 0x40]
add edx, 0xd
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x98], eax
jmp 0x459193
mov ecx, dword [ebp - 0x98]
add ecx, 1
mov dword [ebp - 0x98], ecx
mov edx, dword [ebp - 0x98]
cmp edx, dword [ebp - 0x40]
jge 0x459343
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
shl ecx, 1
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x7c]
add edx, dword [ebp - 0x78]
movzx eax, byte [edx]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 0xbb
mov ecx, dword [ebp - 0x30]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0x64]
movzx ecx, byte [eax]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], 0xd8
mov edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0x50]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x5c]
shl ecx, 4
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x68]
or eax, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
mov cl, byte [ebp - 0x70]
mov byte [ebp - 0x18], cl
movzx edx, byte [ebp - 0x15]
mov al, byte [ebp + edx - 0x1c0]
mov byte [ebp - 0x16], al
movzx ecx, byte [ebp - 0x11]
movzx edx, byte [ebp + ecx - 0x1c0]
mov dword [ebp - 0xbc], edx
mov al, byte [ebp - 0x11]
add al, 1
mov byte [ebp - 0x11], al
movzx ecx, byte [ebp - 0x12]
add ecx, dword [ebp - 0xbc]
mov byte [ebp - 0x12], cl
movzx edx, byte [ebp - 0x12]
movzx eax, byte [ebp - 0x15]
mov cl, byte [ebp + edx - 0x1c0]
mov byte [ebp + eax - 0x1c0], cl
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp - 0x12]
mov cl, byte [ebp + edx - 0x1c0]
mov byte [ebp + eax - 0x1c0], cl
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp - 0x13]
mov cl, byte [ebp + edx - 0x1c0]
mov byte [ebp + eax - 0x1c0], cl
movzx edx, byte [ebp - 0x11]
mov al, byte [ebp - 0x16]
mov byte [ebp + edx - 0x1c0], al
movzx ecx, byte [ebp - 0x16]
movzx edx, byte [ebp + ecx - 0x1c0]
movzx eax, byte [ebp - 0x17]
add eax, edx
mov byte [ebp - 0x17], al
movzx ecx, byte [ebp - 0x18]
movzx edx, byte [ebp - 0x12]
movzx eax, byte [ebp + edx - 0x1c0]
movzx edx, byte [ebp - 0x11]
movzx edx, byte [ebp + edx - 0x1c0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c0]
xor ecx, eax
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp + edx - 0x1c0]
movzx edx, byte [ebp - 0x15]
movzx edx, byte [ebp + edx - 0x1c0]
add eax, edx
movzx edx, byte [ebp - 0x17]
movzx edx, byte [ebp + edx - 0x1c0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c0]
movzx edx, byte [ebp + eax - 0x1c0]
xor ecx, edx
mov byte [ebp - 0x13], cl
mov al, byte [ebp - 0x18]
mov byte [ebp - 0x15], al
mov cl, byte [ebp - 0x13]
mov byte [ebp - 0x1d], cl
cmp dword [ebp - 0x30], 0
jle 0x45933e
movsx dx, byte [ebp - 0x1d]
mov eax, dword [ebp - 0x30]
mov word [ebp + eax*2 - 0x1fe], dx
jmp 0x459184
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x40]
add edx, 0xd
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x9c], eax
jmp 0x459372
mov ecx, dword [ebp - 0x9c]
add ecx, 1
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0x9c]
cmp edx, dword [ebp - 0x40]
jge 0x4597ad
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
shl ecx, 1
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x7c]
add edx, dword [ebp - 0x78]
movzx eax, byte [edx]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 0xbb
mov ecx, dword [ebp - 0x30]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0x64]
movzx ecx, byte [eax]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], 0xd8
mov edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0x50]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x5c]
shl ecx, 4
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x68]
or eax, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
mov cl, byte [ebp - 0x70]
mov byte [ebp - 0x18], cl
movzx edx, byte [ebp - 0x15]
mov al, byte [ebp + edx - 0x1c0]
mov byte [ebp - 0x16], al
movss xmm0, dword [0x54a134]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [0x54a0ac]
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [0x54a034]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [0x549fa8]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [0x549f28]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [0x549e9c]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x24]
subss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x1c]
subss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x24]
addss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x1c]
comiss xmm0, dword [ebp - 0x28]
jbe 0x45953d
movss xmm0, dword [ebp - 0x3c]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [ebp - 0x3c]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x28]
mulss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x38]
addss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x3c]
addss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x3c]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x3c], xmm0
movzx ecx, byte [ebp - 0x11]
movzx edx, byte [ebp + ecx - 0x1c0]
mov dword [ebp - 0xc0], edx
mov al, byte [ebp - 0x11]
add al, 1
mov byte [ebp - 0x11], al
movzx ecx, byte [ebp - 0x12]
add ecx, dword [ebp - 0xc0]
mov byte [ebp - 0x12], cl
jmp 0x4596b2
movss xmm0, dword [ebp - 0x38]
addss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x1c]
mulss xmm0, dword [ebp - 0x3c]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x28]
mulss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x28]
subss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x28]
addss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x34]
divss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x3c]
divss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x34]
subss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x38]
mulss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x34]
mulss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x24]
mulss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x24]
divss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x3c]
comiss xmm0, dword [ebp - 0x34]
jbe 0x459658
movss xmm0, dword [ebp - 0x3c]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x38]
addss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x34]
addss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x34]
mulss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x28]
subss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x38]
addss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x38], xmm0
jmp 0x4596b2
movss xmm0, dword [ebp - 0x24]
mulss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x24]
subss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x24]
divss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x38]
addss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x24]
divss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x24]
subss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x24], xmm0
movzx edx, byte [ebp - 0x12]
movzx eax, byte [ebp - 0x15]
mov cl, byte [ebp + edx - 0x1c0]
mov byte [ebp + eax - 0x1c0], cl
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp - 0x12]
mov cl, byte [ebp + edx - 0x1c0]
mov byte [ebp + eax - 0x1c0], cl
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp - 0x13]
mov cl, byte [ebp + edx - 0x1c0]
mov byte [ebp + eax - 0x1c0], cl
movzx edx, byte [ebp - 0x11]
mov al, byte [ebp - 0x16]
mov byte [ebp + edx - 0x1c0], al
movzx ecx, byte [ebp - 0x16]
movzx edx, byte [ebp + ecx - 0x1c0]
movzx eax, byte [ebp - 0x17]
add eax, edx
mov byte [ebp - 0x17], al
movzx ecx, byte [ebp - 0x18]
movzx edx, byte [ebp - 0x12]
movzx eax, byte [ebp + edx - 0x1c0]
movzx edx, byte [ebp - 0x11]
movzx edx, byte [ebp + edx - 0x1c0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c0]
xor ecx, eax
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp + edx - 0x1c0]
movzx edx, byte [ebp - 0x15]
movzx edx, byte [ebp + edx - 0x1c0]
add eax, edx
movzx edx, byte [ebp - 0x17]
movzx edx, byte [ebp + edx - 0x1c0]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c0]
movzx edx, byte [ebp + eax - 0x1c0]
xor ecx, edx
mov byte [ebp - 0x13], cl
mov al, byte [ebp - 0x18]
mov byte [ebp - 0x15], al
mov cl, byte [ebp - 0x13]
mov byte [ebp - 0x1d], cl
cmp dword [ebp - 0x30], 0
jle 0x4597a8
movsx dx, byte [ebp - 0x1d]
mov eax, dword [ebp - 0x30]
mov word [ebp + eax*2 - 0x1fe], dx
jmp 0x459363
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
mov edx, 2
imul eax, edx, 0x1a
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0x36
jae 0x4597cf
jmp 0x4597d4
call fcn.00534217
xor ecx, ecx
mov edx, dword [ebp - 0xac]
mov word [ebp + edx - 0x1fc], cx
jmp 0x45983a
mov dword [ebp - 0x94], 0
jmp 0x459801
mov eax, dword [ebp - 0x94]
add eax, 1
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0x1b
jge 0x45983a
mov ecx, dword [ebp - 0x94]
shl ecx, 1
mov dword [ebp - 0xb0], ecx
cmp dword [ebp - 0xb0], 0x36
jae 0x459823
jmp 0x459828
call fcn.00534217
xor edx, edx
mov eax, dword [ebp - 0xb0]
mov word [ebp + eax - 0x1fc], dx
jmp 0x4597f2
lea ecx, [ebp - 8]
push ecx
call fcn.00539bc9
add esp, 4
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, 0x1a
div ecx
mov dword [ebp - 8], edx
mov edx, dword [ebp - 8]
mov ax, word [ebp + edx*2 - 0x1fc]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00533c96
mov esp, ebp
pop ebp
ret