Function at 0x48f7e0
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x200
mov eax, dword [0x5d2280]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x80], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x78], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x78], xmm0
jmp 0x48f836
movsd xmm0, qword [ebp - 0x78]
addsd xmm0, qword [0x5348a0]
movsd qword [ebp - 0x78], xmm0
movsd xmm0, qword [0x535f88]
comisd xmm0, xmmword [ebp - 0x78]
jbe 0x48f8bc
movsd xmm0, qword [0x535df8]
mulsd xmm0, qword [ebp - 0x78]
mulsd xmm0, qword [ebp - 0x78]
movsd xmm1, qword [ebp - 0x78]
mulsd xmm1, qword [ebp - 0x78]
subsd xmm0, xmm1
movsd xmm1, qword [0x535bf0]
mulsd xmm1, qword [ebp - 0x78]
add dl, dh
mulps xmm1, xmmword [ebp - 0x78]
mulsd xmm1, qword [ebp - 0x78]
addsd xmm1, qword [0x534968]
divsd xmm0, xmm1
add dl, dh
divps xmm0, xmm1
addsd xmm0, qword [ebp - 0x80]
movsd qword [ebp - 0x80], xmm0
movsd xmm0, qword [ebp - 0x80]
comisd xmm0, xmmword [0x535cf0]
jbe 0x48f8b7
movsd xmm0, qword [0x535b58]
mulsd xmm0, qword [ebp - 0x78]
movsd xmm1, qword [ebp - 0x80]
mov dl, dh
movups xmm1, xmmword [ebp - 0x80]
subsd xmm1, xmm0
movsd qword [ebp - 0x80], xmm1
adc dword [ebp - 0x80], ecx
jmp 0x48f824
push 0xfffffff
push edi
xorps xmm0, xmm0
shl byte [esi + 0xf], 0x2f
inc ebp
xor byte [esi + 0x5b], 0x89
fld dword [esi - 0x771c7920]
loope 0x48f94b
comisd xmm0, xmmword [ebp - 0x80]
comiss xmm0, dword [ebp - 0x80]
jbe 0x48f921
mov ecx, ebx
xchg al, ah
xchg bl, ah
mov cl, ah
jl 0x48f8a8
fdivr dword [ebp - 0x1e]
jge 0x48f8b4
mov ch, ah
mov dh, bl
jle 0x48f8be
jnp 0x48f8b8
mov esp, esp
mov bl, ah
mov bl, bl
jnp 0x48f8c0
jle 0x48f8bf
test dl, ah
and ebp, 0xffffff83
jecxz 0x48f86c
fiadd word [esi - 0x7e1a7827]
in eax, 0x82
fiadd word [ebx - 0x791a7a22]
jecxz 0x48f87e
loop 0x48f921
and al, 0x78
sub esp, dword [ecx + 0x6b]
pop esi
pop eax
pushal
and al, byte ss:[ebp + 0x63]
jl 0x48f94e
pop ebp
dec edx
dec ebx
push esi
dec ecx
push edx
sub dword [ebp + 0x48], esp
dec esp
pop ecx
jle 0x48f987
push edx
cmp al, 0xe9
mov bh, 0x10
add byte [eax], al
mov dword [ebp - 8], 0x48f8c6
mov dword [ebp - 0xc], 0x48f8fc
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1bc], ecx
mov byte [ebp - 0x55], 0x24
mov dword [ebp - 0x24], 0
jmp 0x48f954
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0x100
jae 0x48f96c
mov eax, dword [ebp - 0x24]
mov cl, byte [ebp - 0x24]
mov byte [ebp + eax - 0x1a4], cl
jmp 0x48f94b
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x24], 0xff
jmp 0x48f989
mov edx, dword [ebp - 0x24]
sub edx, 1
mov dword [ebp - 0x24], edx
push ebp
fadd qword [ebx + 0xf00dc7d]
xchg bl, bl
add dword [eax], eax
add bh, al
test dword [edi + edi*8 - 1], esi
inc dword [eax]
add byte [eax], al
add bh, al
test dword [eax - 1], edi
invalid
cmp dword [ebp - 0x24], 0
jbe 0x48fb6e
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 1
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x24]
jae 0x48f9c4
mov ecx, dword [ebp - 0x88]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x88], edx
jmp 0x48f9a7
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 3
ja case.default.0x48f9e0
mov ecx, dword [ebp - 0x98]
jmp dword [ecx*4 + 0x490a00]
movzx edx, byte [ebp - 0x14]
movzx ebx, byte [ebp + edx - 0x1a4]
movsd xmm0, qword [ebp - 0x80]
call fcn.00523390
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x14], bl
jmp 0x48fa99
movzx eax, byte [ebp - 0x14]
movzx ebx, byte [ebp + eax - 0x1a4]
movsd xmm0, qword [ebp - 0x80]
call fcn.00523390
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x14], bl
jmp 0x48fa99
movzx ecx, byte [ebp - 0x14]
movzx ebx, byte [ebp + ecx - 0x1a4]
movsd xmm0, qword [ebp - 0x80]
call fcn.00523390
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x14], bl
jmp 0x48fa99
movzx edx, byte [ebp - 0x14]
movzx ebx, byte [ebp + edx - 0x1a4]
movsd xmm0, qword [ebp - 0x80]
call fcn.00523390
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x14], bl
jmp 0x48fa99
movzx eax, byte [ebp - 0x14]
movzx ecx, byte [ebp + eax - 0x1a4]
mov edx, dword [ebp - 0x1bc]
add edx, dword [ebp - 0x70]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x14], cl
mov ecx, dword [ebp - 0x70]
add ecx, 1
mov dword [ebp - 0x70], ecx
movzx edx, byte [ebp - 0x55]
cmp dword [ebp - 0x70], edx
jb 0x48fabf
mov dword [ebp - 0x70], 0
movzx eax, byte [ebp - 0x55]
movzx ecx, byte [ebp - 0x14]
add ecx, eax
mov byte [ebp - 0x14], cl
movzx edx, byte [ebp - 0x14]
and edx, dword [ebp - 0x88]
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x8c]
add eax, 1
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0xb
jbe 0x48faef
mov eax, dword [ebp - 0x68]
xor edx, edx
div dword [ebp - 0x24]
mov dword [ebp - 0x68], edx
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [ebp - 0x24]
ja 0x48f9c4
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x68]
je 0x48fb69
mov eax, dword [ebp - 0x68]
movzx ecx, byte [ebp + eax - 0x1a4]
mov edx, dword [ebp - 0x24]
movzx eax, byte [ebp + edx - 0x1a4]
xor eax, ecx
mov ecx, dword [ebp - 0x24]
mov byte [ebp + ecx - 0x1a4], al
mov edx, dword [ebp - 0x24]
movzx eax, byte [ebp + edx - 0x1a4]
mov ecx, dword [ebp - 0x68]
movzx edx, byte [ebp + ecx - 0x1a4]
xor edx, eax
mov eax, dword [ebp - 0x68]
mov byte [ebp + eax - 0x1a4], dl
mov ecx, dword [ebp - 0x68]
movzx edx, byte [ebp + ecx - 0x1a4]
mov eax, dword [ebp - 0x24]
movzx ecx, byte [ebp + eax - 0x1a4]
xor ecx, edx
mov edx, dword [ebp - 0x24]
mov byte [ebp + edx - 0x1a4], cl
jmp 0x48f980
mov eax, 1
shl eax, 0
mov cl, byte [ebp + eax - 0x1a4]
mov byte [ebp - 0xd], cl
mov edx, 1
imul eax, edx, 3
mov cl, byte [ebp + eax - 0x1a4]
mov byte [ebp - 0xe], cl
mov edx, 1
imul eax, edx, 5
mov cl, byte [ebp + eax - 0x1a4]
mov byte [ebp - 0x12], cl
mov edx, 1
imul eax, edx, 7
mov cl, byte [ebp + eax - 0x1a4]
mov byte [ebp - 0xf], cl
movzx edx, byte [ebp - 0x14]
mov al, byte [ebp + edx - 0x1a4]
mov byte [ebp - 0x10], al
mov dword [ebp - 0x9c], 0x36
cmp dword [ebp - 0x9c], 2
jle 0x490983
mov ecx, dword [ebp - 0x9c]
and ecx, 1
jne 0x490983
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
add edx, dword [ebp - 0x28]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x2c]
add eax, 0x7b
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x48], 0
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x48]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x30]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x34]
add edx, 0xd8
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x4c], 0
mov edx, dword [ebp - 0x38]
shl edx, 4
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], 0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], 0
mov ecx, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x50]
mov dword [ebp - 0x54], ecx
mov byte [ebp - 0x13], 0
mov dl, byte [ebp - 0x54]
mov byte [ebp - 0x13], dl
mov byte [ebp - 0x11], 0
movzx eax, byte [ebp - 0x10]
mov cl, byte [ebp + eax - 0x1a4]
mov byte [ebp - 0x11], cl
movzx edx, byte [ebp - 0xd]
movzx eax, byte [ebp + edx - 0x1a4]
mov dword [ebp - 0x1a8], eax
mov cl, byte [ebp - 0xd]
add cl, 1
mov byte [ebp - 0xd], cl
movzx edx, byte [ebp - 0xe]
add edx, dword [ebp - 0x1a8]
mov byte [ebp - 0xe], dl
movzx eax, byte [ebp - 0xe]
movzx ecx, byte [ebp - 0x10]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp - 0xe]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xd]
movzx ecx, byte [ebp - 0xf]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xd]
mov cl, byte [ebp - 0x11]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp + edx - 0x1a4]
movzx ecx, byte [ebp - 0x12]
add ecx, eax
mov byte [ebp - 0x12], cl
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp - 0xe]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx eax, byte [ebp - 0xd]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a4]
xor edx, ecx
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx eax, byte [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
movzx eax, byte [ebp - 0x12]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a4]
movzx eax, byte [ebp + ecx - 0x1a4]
xor edx, eax
mov byte [ebp - 0xf], dl
mov cl, byte [ebp - 0x13]
mov byte [ebp - 0x10], cl
mov dl, byte [ebp - 0xf]
mov byte [ebp - 0x15], dl
cmp dword [ebp - 0x1c], 0
jle 0x48fdff
movsx ax, byte [ebp - 0x15]
mov ecx, dword [ebp - 0x1c]
mov word [ebp + ecx*2 - 0x202], ax
mov edx, dword [ebp - 0x1c]
add edx, 1
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x40]
movzx eax, byte [edx]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0x7b
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x48]
movzx ecx, byte [eax]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], 0xd8
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x38]
shl ecx, 4
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov cl, byte [ebp - 0x54]
mov byte [ebp - 0x13], cl
movzx edx, byte [ebp - 0x10]
mov al, byte [ebp + edx - 0x1a4]
mov byte [ebp - 0x11], al
movzx ecx, byte [ebp - 0xd]
movzx edx, byte [ebp + ecx - 0x1a4]
mov dword [ebp - 0x1ac], edx
mov al, byte [ebp - 0xd]
add al, 1
mov byte [ebp - 0xd], al
movzx ecx, byte [ebp - 0xe]
add ecx, dword [ebp - 0x1ac]
mov byte [ebp - 0xe], cl
movzx edx, byte [ebp - 0xe]
movzx eax, byte [ebp - 0x10]
mov cl, byte [ebp + edx - 0x1a4]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0xf]
movzx eax, byte [ebp - 0xe]
mov cl, byte [ebp + edx - 0x1a4]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0xd]
movzx eax, byte [ebp - 0xf]
mov cl, byte [ebp + edx - 0x1a4]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0xd]
mov al, byte [ebp - 0x11]
mov byte [ebp + edx - 0x1a4], al
movzx ecx, byte [ebp - 0x11]
movzx edx, byte [ebp + ecx - 0x1a4]
movzx eax, byte [ebp - 0x12]
add eax, edx
mov byte [ebp - 0x12], al
movzx ecx, byte [ebp - 0x13]
movzx edx, byte [ebp - 0xe]
movzx eax, byte [ebp + edx - 0x1a4]
movzx edx, byte [ebp - 0xd]
movzx edx, byte [ebp + edx - 0x1a4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a4]
xor ecx, eax
movzx edx, byte [ebp - 0xf]
movzx eax, byte [ebp + edx - 0x1a4]
movzx edx, byte [ebp - 0x10]
movzx edx, byte [ebp + edx - 0x1a4]
add eax, edx
movzx edx, byte [ebp - 0x12]
movzx edx, byte [ebp + edx - 0x1a4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a4]
movzx edx, byte [ebp + eax - 0x1a4]
xor ecx, edx
mov byte [ebp - 0xf], cl
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x10], al
mov cl, byte [ebp - 0xf]
mov byte [ebp - 0x15], cl
cmp dword [ebp - 0x1c], 0
jle 0x48ffa4
movsx dx, byte [ebp - 0x15]
mov eax, dword [ebp - 0x1c]
mov word [ebp + eax*2 - 0x202], dx
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x40]
movzx edx, byte [ecx]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], 0x7b
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x48]
movzx eax, byte [edx]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], 0xd8
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x38]
shl eax, 4
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x4c]
or edx, dword [ebp - 0x50]
mov dword [ebp - 0x54], edx
mov al, byte [ebp - 0x54]
mov byte [ebp - 0x13], al
movzx ecx, byte [ebp - 0x10]
mov dl, byte [ebp + ecx - 0x1a4]
mov byte [ebp - 0x11], dl
movzx eax, byte [ebp - 0xd]
movzx ecx, byte [ebp + eax - 0x1a4]
mov dword [ebp - 0x1b0], ecx
mov dl, byte [ebp - 0xd]
add dl, 1
mov byte [ebp - 0xd], dl
movzx eax, byte [ebp - 0xe]
add eax, dword [ebp - 0x1b0]
mov byte [ebp - 0xe], al
movzx ecx, byte [ebp - 0xe]
movzx edx, byte [ebp - 0x10]
mov al, byte [ebp + ecx - 0x1a4]
mov byte [ebp + edx - 0x1a4], al
movzx ecx, byte [ebp - 0xf]
movzx edx, byte [ebp - 0xe]
mov al, byte [ebp + ecx - 0x1a4]
mov byte [ebp + edx - 0x1a4], al
movzx ecx, byte [ebp - 0xd]
movzx edx, byte [ebp - 0xf]
mov al, byte [ebp + ecx - 0x1a4]
mov byte [ebp + edx - 0x1a4], al
movzx ecx, byte [ebp - 0xd]
mov dl, byte [ebp - 0x11]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0x11]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx edx, byte [ebp - 0x12]
add edx, ecx
mov byte [ebp - 0x12], dl
movzx eax, byte [ebp - 0x13]
movzx ecx, byte [ebp - 0xe]
movzx edx, byte [ebp + ecx - 0x1a4]
movzx ecx, byte [ebp - 0xd]
movzx ecx, byte [ebp + ecx - 0x1a4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1a4]
xor eax, edx
movzx ecx, byte [ebp - 0xf]
movzx edx, byte [ebp + ecx - 0x1a4]
movzx ecx, byte [ebp - 0x10]
movzx ecx, byte [ebp + ecx - 0x1a4]
add edx, ecx
movzx ecx, byte [ebp - 0x12]
movzx ecx, byte [ebp + ecx - 0x1a4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1a4]
movzx ecx, byte [ebp + edx - 0x1a4]
xor eax, ecx
mov byte [ebp - 0xf], al
mov dl, byte [ebp - 0x13]
mov byte [ebp - 0x10], dl
mov al, byte [ebp - 0xf]
mov byte [ebp - 0x15], al
cmp dword [ebp - 0x1c], 0
jle 0x49014c
movsx cx, byte [ebp - 0x15]
mov edx, dword [ebp - 0x1c]
mov word [ebp + edx*2 - 0x202], cx
mov eax, dword [ebp - 0x20]
add eax, 0xb
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x90], ecx
jmp 0x490172
mov edx, dword [ebp - 0x90]
add edx, 1
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0x90]
cmp eax, dword [ebp - 0x20]
jge 0x490325
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x40]
movzx ecx, byte [eax]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], 0x7b
mov edx, dword [ebp - 0x1c]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x48]
movzx edx, byte [ecx]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], 0xd8
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x38]
shl edx, 4
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x50]
mov dword [ebp - 0x54], ecx
mov dl, byte [ebp - 0x54]
mov byte [ebp - 0x13], dl
movzx eax, byte [ebp - 0x10]
mov cl, byte [ebp + eax - 0x1a4]
mov byte [ebp - 0x11], cl
movzx edx, byte [ebp - 0xd]
movzx eax, byte [ebp + edx - 0x1a4]
mov dword [ebp - 0x1b4], eax
mov cl, byte [ebp - 0xd]
add cl, 1
mov byte [ebp - 0xd], cl
movzx edx, byte [ebp - 0xe]
add edx, dword [ebp - 0x1b4]
mov byte [ebp - 0xe], dl
movzx eax, byte [ebp - 0xe]
movzx ecx, byte [ebp - 0x10]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp - 0xe]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xd]
movzx ecx, byte [ebp - 0xf]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xd]
mov cl, byte [ebp - 0x11]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp + edx - 0x1a4]
movzx ecx, byte [ebp - 0x12]
add ecx, eax
mov byte [ebp - 0x12], cl
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp - 0xe]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx eax, byte [ebp - 0xd]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a4]
xor edx, ecx
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx eax, byte [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
movzx eax, byte [ebp - 0x12]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a4]
movzx eax, byte [ebp + ecx - 0x1a4]
xor edx, eax
mov byte [ebp - 0xf], dl
mov cl, byte [ebp - 0x13]
mov byte [ebp - 0x10], cl
mov dl, byte [ebp - 0xf]
mov byte [ebp - 0x15], dl
cmp dword [ebp - 0x1c], 0
jle 0x490320
movsx ax, byte [ebp - 0x15]
mov ecx, dword [ebp - 0x1c]
mov word [ebp + ecx*2 - 0x202], ax
jmp 0x490163
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
add eax, 0xb
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x94], ecx
jmp 0x490354
mov edx, dword [ebp - 0x94]
add edx, 1
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x20]
jge 0x490507
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x40]
movzx ecx, byte [eax]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], 0x7b
mov edx, dword [ebp - 0x1c]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x48]
movzx edx, byte [ecx]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], 0xd8
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x38]
shl edx, 4
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x50]
mov dword [ebp - 0x54], ecx
mov dl, byte [ebp - 0x54]
mov byte [ebp - 0x13], dl
movzx eax, byte [ebp - 0x10]
mov cl, byte [ebp + eax - 0x1a4]
mov byte [ebp - 0x11], cl
movzx edx, byte [ebp - 0xd]
movzx eax, byte [ebp + edx - 0x1a4]
mov dword [ebp - 0x1b8], eax
mov cl, byte [ebp - 0xd]
add cl, 1
mov byte [ebp - 0xd], cl
movzx edx, byte [ebp - 0xe]
add edx, dword [ebp - 0x1b8]
mov byte [ebp - 0xe], dl
movzx eax, byte [ebp - 0xe]
movzx ecx, byte [ebp - 0x10]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp - 0xe]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xd]
movzx ecx, byte [ebp - 0xf]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xd]
mov cl, byte [ebp - 0x11]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp + edx - 0x1a4]
movzx ecx, byte [ebp - 0x12]
add ecx, eax
mov byte [ebp - 0x12], cl
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp - 0xe]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx eax, byte [ebp - 0xd]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a4]
xor edx, ecx
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx eax, byte [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
movzx eax, byte [ebp - 0x12]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a4]
movzx eax, byte [ebp + ecx - 0x1a4]
xor edx, eax
mov byte [ebp - 0xf], dl
mov cl, byte [ebp - 0x13]
mov byte [ebp - 0x10], cl
mov dl, byte [ebp - 0xf]
mov byte [ebp - 0x15], dl
cmp dword [ebp - 0x1c], 0
jle 0x490502
movsx ax, byte [ebp - 0x15]
mov ecx, dword [ebp - 0x1c]
mov word [ebp + ecx*2 - 0x202], ax
jmp 0x490345
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x40]
movzx ecx, byte [eax]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], 0x7b
mov edx, dword [ebp - 0x1c]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x48]
movzx edx, byte [ecx]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], 0xd8
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x38]
shl edx, 4
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x50]
mov dword [ebp - 0x54], ecx
mov dl, byte [ebp - 0x54]
mov byte [ebp - 0x13], dl
movss xmm0, dword [0x536574]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [0x5364f4]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [0x53648c]
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [0x536408]
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0x6c]
subss xmm0, dword [ebp - 0x64]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [ebp - 0x60]
addss xmm0, dword [ebp - 0x64]
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x6c]
subss xmm0, dword [ebp - 0x64]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [ebp - 0x60]
addss xmm0, dword [ebp - 0x64]
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x6c]
comiss xmm0, dword [ebp - 0x60]
jbe 0x490643
movss xmm0, dword [ebp - 0x64]
divss xmm0, dword [ebp - 0x5c]
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0x6c]
subss xmm0, dword [ebp - 0x60]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [ebp - 0x6c]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [ebp - 0x64]
addss xmm0, dword [ebp - 0x5c]
movss dword [ebp - 0x64], xmm0
jmp 0x49068d
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [ebp - 0x60]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [ebp - 0x5c]
mulss xmm0, dword [ebp - 0x60]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [ebp - 0x60]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [ebp - 0x60]
subss xmm0, dword [ebp - 0x5c]
movss dword [ebp - 0x60], xmm0
movzx eax, byte [ebp - 0x10]
mov cl, byte [ebp + eax - 0x1a4]
mov byte [ebp - 0x11], cl
movzx edx, byte [ebp - 0xd]
movzx eax, byte [ebp + edx - 0x1a4]
mov dword [ebp - 0x1c4], eax
mov cl, byte [ebp - 0xd]
add cl, 1
mov byte [ebp - 0xd], cl
movzx edx, byte [ebp - 0xe]
add edx, dword [ebp - 0x1c4]
mov byte [ebp - 0xe], dl
movzx eax, byte [ebp - 0xe]
movzx ecx, byte [ebp - 0x10]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp - 0xe]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xd]
movzx ecx, byte [ebp - 0xf]
mov dl, byte [ebp + eax - 0x1a4]
mov byte [ebp + ecx - 0x1a4], dl
movzx eax, byte [ebp - 0xd]
mov cl, byte [ebp - 0x11]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0x11]
movzx eax, byte [ebp + edx - 0x1a4]
movzx ecx, byte [ebp - 0x12]
add ecx, eax
mov byte [ebp - 0x12], cl
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp - 0xe]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx eax, byte [ebp - 0xd]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a4]
xor edx, ecx
movzx eax, byte [ebp - 0xf]
movzx ecx, byte [ebp + eax - 0x1a4]
movzx eax, byte [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
movzx eax, byte [ebp - 0x12]
movzx eax, byte [ebp + eax - 0x1a4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1a4]
movzx eax, byte [ebp + ecx - 0x1a4]
xor edx, eax
mov byte [ebp - 0xf], dl
mov cl, byte [ebp - 0x13]
mov byte [ebp - 0x10], cl
mov dl, byte [ebp - 0xf]
mov byte [ebp - 0x15], dl
cmp dword [ebp - 0x1c], 0
jle 0x4907ad
movsx ax, byte [ebp - 0x15]
mov ecx, dword [ebp - 0x1c]
mov word [ebp + ecx*2 - 0x202], ax
mov edx, dword [ebp - 0x1c]
add edx, 1
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x40]
movzx eax, byte [edx]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0x7b
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x48]
movzx ecx, byte [eax]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], 0xd8
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x38]
shl ecx, 4
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov cl, byte [ebp - 0x54]
mov byte [ebp - 0x13], cl
movzx edx, byte [ebp - 0x10]
mov al, byte [ebp + edx - 0x1a4]
mov byte [ebp - 0x11], al
movzx ecx, byte [ebp - 0xd]
movzx edx, byte [ebp + ecx - 0x1a4]
mov dword [ebp - 0x1c0], edx
mov al, byte [ebp - 0xd]
add al, 1
mov byte [ebp - 0xd], al
movzx ecx, byte [ebp - 0xe]
add ecx, dword [ebp - 0x1c0]
mov byte [ebp - 0xe], cl
movzx edx, byte [ebp - 0xe]
movzx eax, byte [ebp - 0x10]
mov cl, byte [ebp + edx - 0x1a4]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0xf]
movzx eax, byte [ebp - 0xe]
mov cl, byte [ebp + edx - 0x1a4]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0xd]
movzx eax, byte [ebp - 0xf]
mov cl, byte [ebp + edx - 0x1a4]
mov byte [ebp + eax - 0x1a4], cl
movzx edx, byte [ebp - 0xd]
mov al, byte [ebp - 0x11]
mov byte [ebp + edx - 0x1a4], al
movzx ecx, byte [ebp - 0x11]
movzx edx, byte [ebp + ecx - 0x1a4]
movzx eax, byte [ebp - 0x12]
add eax, edx
mov byte [ebp - 0x12], al
movzx ecx, byte [ebp - 0x13]
movzx edx, byte [ebp - 0xe]
movzx eax, byte [ebp + edx - 0x1a4]
movzx edx, byte [ebp - 0xd]
movzx edx, byte [ebp + edx - 0x1a4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a4]
xor ecx, eax
movzx edx, byte [ebp - 0xf]
movzx eax, byte [ebp + edx - 0x1a4]
movzx edx, byte [ebp - 0x10]
movzx edx, byte [ebp + edx - 0x1a4]
add eax, edx
movzx edx, byte [ebp - 0x12]
movzx edx, byte [ebp + edx - 0x1a4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1a4]
movzx edx, byte [ebp + eax - 0x1a4]
xor ecx, edx
mov byte [ebp - 0xf], cl
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x10], al
mov cl, byte [ebp - 0xf]
mov byte [ebp - 0x15], cl
cmp dword [ebp - 0x1c], 0
jle 0x490952
movsx dx, byte [ebp - 0x15]
mov eax, dword [ebp - 0x1c]
mov word [ebp + eax*2 - 0x202], dx
mov ecx, 2
imul edx, ecx, 0x1a
mov dword [ebp - 0xa0], edx
cmp dword [ebp - 0xa0], 0x36
jae 0x49096b
jmp 0x490971
call fcn.00522f55
nop
xor eax, eax
mov ecx, dword [ebp - 0xa0]
mov word [ebp + ecx - 0x200], ax
jmp 0x4909d8
mov dword [ebp - 0x84], 0
jmp 0x49099e
mov edx, dword [ebp - 0x84]
add edx, 1
mov dword [ebp - 0x84], edx
cmp dword [ebp - 0x84], 0x1b
jge 0x4909d8
mov eax, dword [ebp - 0x84]
shl eax, 1
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0x36
jae 0x4909c0
jmp 0x4909c6
call fcn.00522f55
nop
xor ecx, ecx
mov edx, dword [ebp - 0xa4]
mov word [ebp + edx - 0x200], cx
jmp 0x49098f
call fcn.00527405
cdq
mov ecx, 0x1a
idiv ecx
mov ax, word [ebp + edx*2 - 0x200]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00522be6
mov esp, ebp
pop ebp
ret