Function at 0x4523e0
Capabilities:
Encrypt data using speck

Disassembly:
add byte [ebx - 0x5037b], cl
inc dword [ebx]
test dword [eax], eax
sti
invalid
push ebp
mov ebp, esp
sub esp, 0x240
mov eax, dword [0xa59064]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x100
push 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
push ecx
call fcn.009dd200
add esp, 0xc
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
movsd qword [ebp - 0xa8], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0xa0], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0xa0], xmm0
jmp 0x452455
movsd xmm0, qword [ebp - 0xa0]
addsd xmm0, qword [0xa1f120]
movsd qword [ebp - 0xa0], xmm0
movsd xmm0, qword [0xa1f3d8]
comisd xmm0, xmmword [ebp - 0xa0]
jbe 0x452506
movsd xmm0, qword [0xa1f2f0]
mulsd xmm0, qword [ebp - 0xa0]
mulsd xmm0, qword [ebp - 0xa0]
movsd xmm1, qword [ebp - 0xa0]
mulsd xmm1, qword [ebp - 0xa0]
subsd xmm0, xmm1
movsd xmm1, qword [0xa1f178]
mulsd xmm1, qword [ebp - 0xa0]
mulsd xmm1, qword [ebp - 0xa0]
addsd xmm1, qword [0xa1f1e8]
divsd xmm0, xmm1
addsd xmm0, qword [ebp - 0xa8]
movsd qword [ebp - 0xa8], xmm0
movsd xmm0, qword [ebp - 0xa8]
comisd xmm0, xmmword [0xa1f270]
jbe 0x452501
movsd xmm0, qword [0xa1f0f0]
mulsd xmm0, qword [ebp - 0xa0]
movsd xmm1, qword [ebp - 0xa8]
subsd xmm1, xmm0
movsd qword [ebp - 0xa8], xmm1
jmp 0x45243d
xorps xmm0, xmm0
comisd xmm0, xmmword [ebp - 0xa8]
jbe 0x45255e
insb byte es:[edi], dx
sub dx, word [ecx + 0x75]
dec edx
sub dword [esi + 0x49], esp
xor dword [eax + 0x61], edx
xor esi, dword [eax + 0x63]
jo 0x45258b
push 0x44
jnp 0x45257a
push 0x6d
insd dword es:[edi], dx
xor eax, 0x1e662764
jno 0x452554
jno 0x452561
imul esp, dword [ebx], 0x6b
and byte [esp + 0x70], ah
daa
sub byte gs:[ebp + 0x21], ah
sub dword gs:[ebx + 0x20], esp
jno 0x452566
outsb dx, byte [esi]
sub eax, 0x2d6c2662
sub esp, dword fs:[ebx + 0x26]
jo 0x452576
push 0x6c256e1e
jmp 0x453cf3
push ds
outsb dx, byte [esi]
and eax, 0x95e9266c
pop ss
add byte [eax], al
mov dword [ebp - 0x20], 0x45252d
mov dword [ebp - 0x24], 0x452513
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x228], eax
mov byte [ebp - 0x8d], 0x1e
mov dword [ebp - 0x84], 0
jmp 0x45259d
sub eax, 0xc7004525
inc ebp
fcom qword [ebx]
and eax, 0x558b0045
loopne 0x4524f9
push ebp
mov al, byte [0x89dc458b]
test eax, ebx
std
invalid
inc esi
test dword [ebx - 1], esi
invalid
add bl, ch
jnp 0x44a220
mov ecx, dword [ebp - 0x84]
add ecx, 1
mov dword [ebp - 0x84], ecx
inc dword [ebx - 0x7276fe3f]
jl 0x45259a
invalid
invalid
cmp dword [ebp - 0x84], 0x100
jae 0x4525be
mov edx, dword [ebp - 0x84]
mov al, byte [ebp - 0x84]
mov byte [ebp + edx - 0x1c4], al
jmp 0x45258e
mov dword [ebp - 0x98], 0
mov byte [ebp - 0x35], 0
mov dword [ebp - 0x84], 0xff
jmp 0x4525e7
mov ecx, dword [ebp - 0x84]
sub ecx, 1
mov dword [ebp - 0x84], ecx
cmp dword [ebp - 0x84], 0
jbe 0x45282d
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xac], 1
mov edx, dword [ebp - 0xac]
cmp edx, dword [ebp - 0x84]
jae 0x452628
mov eax, dword [ebp - 0xac]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0xac], ecx
jmp 0x452608
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x1fc], edx
cmp dword [ebp - 0x1fc], 3
ja case.default.0x452647
mov eax, dword [ebp - 0x1fc]
jmp dword [eax*4 + 0x45420c]
movzx ecx, byte [ebp - 0x35]
movzx ebx, byte [ebp + ecx - 0x1c4]
movsd xmm0, qword [ebp - 0xa8]
call fcn.00986231
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x35], bl
jmp 0x45270f
movzx edx, byte [ebp - 0x35]
movzx ebx, byte [ebp + edx - 0x1c4]
movsd xmm0, qword [ebp - 0xa8]
call fcn.00986231
shr eax, 8
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x35], bl
jmp 0x45270f
movzx eax, byte [ebp - 0x35]
movzx ebx, byte [ebp + eax - 0x1c4]
movsd xmm0, qword [ebp - 0xa8]
call fcn.00986231
shr eax, 0x10
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x35], bl
jmp 0x45270f
movzx ecx, byte [ebp - 0x35]
movzx ebx, byte [ebp + ecx - 0x1c4]
movsd xmm0, qword [ebp - 0xa8]
call fcn.00986231
shr eax, 0x18
and eax, 0xff
add ebx, eax
mov byte [ebp - 0x35], bl
jmp 0x45270f
movzx edx, byte [ebp - 0x35]
movzx eax, byte [ebp + edx - 0x1c4]
mov ecx, dword [ebp - 0x228]
add ecx, dword [ebp - 0x98]
movzx edx, byte [ecx - 4]
add eax, edx
mov byte [ebp - 0x35], al
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
movzx ecx, byte [ebp - 0x8d]
cmp dword [ebp - 0x98], ecx
jb 0x452747
mov dword [ebp - 0x98], 0
movzx edx, byte [ebp - 0x8d]
movzx eax, byte [ebp - 0x35]
add eax, edx
mov byte [ebp - 0x35], al
movzx ecx, byte [ebp - 0x35]
and ecx, dword [ebp - 0xac]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0xc4]
add edx, 1
mov dword [ebp - 0xc4], edx
cmp dword [ebp - 0xc4], 0xb
jbe 0x452783
mov eax, dword [ebp - 0x94]
xor edx, edx
div dword [ebp - 0x84]
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x84]
ja 0x452628
mov ecx, dword [ebp - 0x84]
cmp ecx, dword [ebp - 0x94]
je 0x452828
mov edx, dword [ebp - 0x94]
movzx eax, byte [ebp + edx - 0x1c4]
mov ecx, dword [ebp - 0x84]
movzx edx, byte [ebp + ecx - 0x1c4]
xor edx, eax
mov eax, dword [ebp - 0x84]
mov byte [ebp + eax - 0x1c4], dl
mov ecx, dword [ebp - 0x84]
movzx edx, byte [ebp + ecx - 0x1c4]
mov eax, dword [ebp - 0x94]
movzx ecx, byte [ebp + eax - 0x1c4]
xor ecx, edx
mov edx, dword [ebp - 0x94]
mov byte [ebp + edx - 0x1c4], cl
mov eax, dword [ebp - 0x94]
movzx ecx, byte [ebp + eax - 0x1c4]
mov edx, dword [ebp - 0x84]
movzx eax, byte [ebp + edx - 0x1c4]
xor eax, ecx
mov ecx, dword [ebp - 0x84]
mov byte [ebp + ecx - 0x1c4], al
jmp 0x4525d8
mov edx, 1
shl edx, 0
mov al, byte [ebp + edx - 0x1c4]
mov byte [ebp - 0x25], al
mov ecx, 1
imul edx, ecx, 3
mov al, byte [ebp + edx - 0x1c4]
mov byte [ebp - 0x26], al
mov ecx, 1
imul edx, ecx, 5
mov al, byte [ebp + edx - 0x1c4]
mov byte [ebp - 0x2a], al
mov ecx, 1
imul edx, ecx, 7
mov al, byte [ebp + edx - 0x1c4]
mov byte [ebp - 0x27], al
movzx ecx, byte [ebp - 0x35]
mov dl, byte [ebp + ecx - 0x1c4]
mov byte [ebp - 0x28], dl
mov dword [ebp - 0x200], 0x2c
cmp dword [ebp - 0x200], 2
jle 0x453ca6
mov eax, dword [ebp - 0x200]
and eax, 1
jne 0x453ca6
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp - 0x34]
shl edx, 1
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x5c]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], 0
mov edx, dword [ebp - 0x48]
add edx, 0x62
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x34]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x4c], 0
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x64]
movzx eax, byte [edx]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 0
mov ecx, dword [ebp - 0x50]
add ecx, 0x1e
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], 0
mov edx, dword [ebp - 0x44]
sub edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x54]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x58]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x68], 0
mov ecx, dword [ebp - 0x54]
shl ecx, 4
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x6c], 0
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x68]
or eax, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
mov byte [ebp - 0x2b], 0
mov cl, byte [ebp - 0x70]
mov byte [ebp - 0x2b], cl
mov byte [ebp - 0x29], 0
movzx edx, byte [ebp - 0x28]
mov al, byte [ebp + edx - 0x1c4]
mov byte [ebp - 0x29], al
movzx ecx, byte [ebp - 0x25]
movzx edx, byte [ebp + ecx - 0x1c4]
mov dword [ebp - 0x208], edx
mov al, byte [ebp - 0x25]
add al, 1
mov byte [ebp - 0x25], al
movzx ecx, byte [ebp - 0x26]
add ecx, dword [ebp - 0x208]
mov byte [ebp - 0x26], cl
movzx edx, byte [ebp - 0x26]
movzx eax, byte [ebp - 0x28]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x27]
movzx eax, byte [ebp - 0x26]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x25]
movzx eax, byte [ebp - 0x27]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x25]
mov al, byte [ebp - 0x29]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x29]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx eax, byte [ebp - 0x2a]
add eax, edx
mov byte [ebp - 0x2a], al
movzx ecx, byte [ebp - 0x2b]
movzx edx, byte [ebp - 0x26]
movzx eax, byte [ebp + edx - 0x1c4]
movzx edx, byte [ebp - 0x25]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c4]
xor ecx, eax
movzx edx, byte [ebp - 0x27]
movzx eax, byte [ebp + edx - 0x1c4]
movzx edx, byte [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
movzx edx, byte [ebp - 0x2a]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c4]
movzx edx, byte [ebp + eax - 0x1c4]
xor ecx, edx
mov byte [ebp - 0x27], cl
mov al, byte [ebp - 0x2b]
mov byte [ebp - 0x28], al
mov cl, byte [ebp - 0x27]
mov byte [ebp - 0x2c], cl
cmp dword [ebp - 0x34], 0
jle 0x452ab2
mov edx, dword [ebp - 0x34]
mov al, byte [ebp - 0x2c]
mov byte [ebp + edx - 0x1d], al
mov ecx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x34]
shl eax, 1
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x5c]
movzx edx, byte [ecx]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], 0x62
mov eax, dword [ebp - 0x34]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x64]
movzx eax, byte [edx]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 0x1e
mov ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x48]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0x50]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x54]
shl eax, 4
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x68]
or edx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], edx
mov al, byte [ebp - 0x70]
mov byte [ebp - 0x2b], al
movzx ecx, byte [ebp - 0x28]
mov dl, byte [ebp + ecx - 0x1c4]
mov byte [ebp - 0x29], dl
movzx eax, byte [ebp - 0x25]
movzx ecx, byte [ebp + eax - 0x1c4]
mov dword [ebp - 0x20c], ecx
mov dl, byte [ebp - 0x25]
add dl, 1
mov byte [ebp - 0x25], dl
movzx eax, byte [ebp - 0x26]
add eax, dword [ebp - 0x20c]
mov byte [ebp - 0x26], al
movzx ecx, byte [ebp - 0x26]
movzx edx, byte [ebp - 0x28]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x27]
movzx edx, byte [ebp - 0x26]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x25]
movzx edx, byte [ebp - 0x27]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x25]
mov dl, byte [ebp - 0x29]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x29]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx edx, byte [ebp - 0x2a]
add edx, ecx
mov byte [ebp - 0x2a], dl
movzx eax, byte [ebp - 0x2b]
movzx ecx, byte [ebp - 0x26]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx ecx, byte [ebp - 0x25]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1c4]
xor eax, edx
movzx ecx, byte [ebp - 0x27]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx ecx, byte [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
movzx ecx, byte [ebp - 0x2a]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1c4]
movzx ecx, byte [ebp + edx - 0x1c4]
xor eax, ecx
mov byte [ebp - 0x27], al
mov dl, byte [ebp - 0x2b]
mov byte [ebp - 0x28], dl
mov al, byte [ebp - 0x27]
mov byte [ebp - 0x2c], al
cmp dword [ebp - 0x34], 0
jle 0x452c54
mov ecx, dword [ebp - 0x34]
mov dl, byte [ebp - 0x2c]
mov byte [ebp + ecx - 0x1d], dl
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x34]
shl edx, 1
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x5c]
movzx ecx, byte [eax]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], 0x62
mov edx, dword [ebp - 0x34]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x64]
movzx edx, byte [ecx]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], 0x1e
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0x50]
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x54]
shl edx, 4
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x68]
or ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], ecx
mov dl, byte [ebp - 0x70]
mov byte [ebp - 0x2b], dl
movzx eax, byte [ebp - 0x28]
mov cl, byte [ebp + eax - 0x1c4]
mov byte [ebp - 0x29], cl
movzx edx, byte [ebp - 0x25]
movzx eax, byte [ebp + edx - 0x1c4]
mov dword [ebp - 0x210], eax
mov cl, byte [ebp - 0x25]
add cl, 1
mov byte [ebp - 0x25], cl
movzx edx, byte [ebp - 0x26]
add edx, dword [ebp - 0x210]
mov byte [ebp - 0x26], dl
movzx eax, byte [ebp - 0x26]
movzx ecx, byte [ebp - 0x28]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x27]
movzx ecx, byte [ebp - 0x26]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x25]
movzx ecx, byte [ebp - 0x27]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x25]
mov cl, byte [ebp - 0x29]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x29]
movzx eax, byte [ebp + edx - 0x1c4]
movzx ecx, byte [ebp - 0x2a]
add ecx, eax
mov byte [ebp - 0x2a], cl
movzx edx, byte [ebp - 0x2b]
movzx eax, byte [ebp - 0x26]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx eax, byte [ebp - 0x25]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1c4]
xor edx, ecx
movzx eax, byte [ebp - 0x27]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx eax, byte [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
movzx eax, byte [ebp - 0x2a]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1c4]
movzx eax, byte [ebp + ecx - 0x1c4]
xor edx, eax
mov byte [ebp - 0x27], dl
mov cl, byte [ebp - 0x2b]
mov byte [ebp - 0x28], cl
mov dl, byte [ebp - 0x27]
mov byte [ebp - 0x2c], dl
cmp dword [ebp - 0x34], 0
jle 0x452df6
mov eax, dword [ebp - 0x34]
mov cl, byte [ebp - 0x2c]
mov byte [ebp + eax - 0x1d], cl
mov edx, dword [ebp - 0x3c]
add edx, 7
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0xb8], eax
jmp 0x452e1c
mov ecx, dword [ebp - 0xb8]
add ecx, 1
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xb8]
cmp edx, dword [ebp - 0x3c]
jge 0x452fc6
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
shl ecx, 1
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x5c]
movzx eax, byte [edx]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], 0x62
mov ecx, dword [ebp - 0x34]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x64]
movzx ecx, byte [eax]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], 0x1e
mov edx, dword [ebp - 0x44]
sub edx, dword [ebp - 0x48]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x54]
shl ecx, 4
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x58]
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 - 0x2b], cl
movzx edx, byte [ebp - 0x28]
mov al, byte [ebp + edx - 0x1c4]
mov byte [ebp - 0x29], al
movzx ecx, byte [ebp - 0x25]
movzx edx, byte [ebp + ecx - 0x1c4]
mov dword [ebp - 0x214], edx
mov al, byte [ebp - 0x25]
add al, 1
mov byte [ebp - 0x25], al
movzx ecx, byte [ebp - 0x26]
add ecx, dword [ebp - 0x214]
mov byte [ebp - 0x26], cl
movzx edx, byte [ebp - 0x26]
movzx eax, byte [ebp - 0x28]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x27]
movzx eax, byte [ebp - 0x26]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x25]
movzx eax, byte [ebp - 0x27]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x25]
mov al, byte [ebp - 0x29]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x29]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx eax, byte [ebp - 0x2a]
add eax, edx
mov byte [ebp - 0x2a], al
movzx ecx, byte [ebp - 0x2b]
movzx edx, byte [ebp - 0x26]
movzx eax, byte [ebp + edx - 0x1c4]
movzx edx, byte [ebp - 0x25]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c4]
xor ecx, eax
movzx edx, byte [ebp - 0x27]
movzx eax, byte [ebp + edx - 0x1c4]
movzx edx, byte [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
movzx edx, byte [ebp - 0x2a]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c4]
movzx edx, byte [ebp + eax - 0x1c4]
xor ecx, edx
mov byte [ebp - 0x27], cl
mov al, byte [ebp - 0x2b]
mov byte [ebp - 0x28], al
mov cl, byte [ebp - 0x27]
mov byte [ebp - 0x2c], cl
cmp dword [ebp - 0x34], 0
jle 0x452fc1
mov edx, dword [ebp - 0x34]
mov al, byte [ebp - 0x2c]
mov byte [ebp + edx - 0x1d], al
jmp 0x452e0d
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x34]
add edx, 1
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x34]
shl ecx, 1
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x5c]
movzx eax, byte [edx]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], 0x62
mov ecx, dword [ebp - 0x34]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x64]
movzx ecx, byte [eax]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], 0x1e
mov edx, dword [ebp - 0x44]
sub edx, dword [ebp - 0x48]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x54]
shl ecx, 4
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x58]
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 - 0x2b], cl
movzx edx, byte [ebp - 0x28]
mov al, byte [ebp + edx - 0x1c4]
mov byte [ebp - 0x29], al
movzx ecx, byte [ebp - 0x25]
movzx edx, byte [ebp + ecx - 0x1c4]
mov dword [ebp - 0x218], edx
mov al, byte [ebp - 0x25]
add al, 1
mov byte [ebp - 0x25], al
movzx ecx, byte [ebp - 0x26]
add ecx, dword [ebp - 0x218]
mov byte [ebp - 0x26], cl
movzx edx, byte [ebp - 0x26]
movzx eax, byte [ebp - 0x28]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x27]
movzx eax, byte [ebp - 0x26]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x25]
movzx eax, byte [ebp - 0x27]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x25]
mov al, byte [ebp - 0x29]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x29]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx eax, byte [ebp - 0x2a]
add eax, edx
mov byte [ebp - 0x2a], al
movzx ecx, byte [ebp - 0x2b]
movzx edx, byte [ebp - 0x26]
movzx eax, byte [ebp + edx - 0x1c4]
movzx edx, byte [ebp - 0x25]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c4]
xor ecx, eax
movzx edx, byte [ebp - 0x27]
movzx eax, byte [ebp + edx - 0x1c4]
movzx edx, byte [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
movzx edx, byte [ebp - 0x2a]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c4]
movzx edx, byte [ebp + eax - 0x1c4]
xor ecx, edx
mov byte [ebp - 0x27], cl
mov al, byte [ebp - 0x2b]
mov byte [ebp - 0x28], al
mov cl, byte [ebp - 0x27]
mov byte [ebp - 0x2c], cl
cmp dword [ebp - 0x34], 0
jle 0x45316e
mov edx, dword [ebp - 0x34]
mov al, byte [ebp - 0x2c]
mov byte [ebp + edx - 0x1d], al
mov ecx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x34]
shl eax, 1
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x5c]
movzx edx, byte [ecx]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], 0x62
mov eax, dword [ebp - 0x34]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x64]
movzx eax, byte [edx]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 0x1e
mov ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x48]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0x50]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x54]
shl eax, 4
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x68]
or edx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], edx
mov al, byte [ebp - 0x70]
mov byte [ebp - 0x2b], al
movzx ecx, byte [ebp - 0x28]
mov dl, byte [ebp + ecx - 0x1c4]
mov byte [ebp - 0x29], dl
movzx eax, byte [ebp - 0x25]
movzx ecx, byte [ebp + eax - 0x1c4]
mov dword [ebp - 0x21c], ecx
mov dl, byte [ebp - 0x25]
add dl, 1
mov byte [ebp - 0x25], dl
movzx eax, byte [ebp - 0x26]
add eax, dword [ebp - 0x21c]
mov byte [ebp - 0x26], al
movzx ecx, byte [ebp - 0x26]
movzx edx, byte [ebp - 0x28]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x27]
movzx edx, byte [ebp - 0x26]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x25]
movzx edx, byte [ebp - 0x27]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x25]
mov dl, byte [ebp - 0x29]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x29]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx edx, byte [ebp - 0x2a]
add edx, ecx
mov byte [ebp - 0x2a], dl
movzx eax, byte [ebp - 0x2b]
movzx ecx, byte [ebp - 0x26]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx ecx, byte [ebp - 0x25]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1c4]
xor eax, edx
movzx ecx, byte [ebp - 0x27]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx ecx, byte [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
movzx ecx, byte [ebp - 0x2a]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1c4]
movzx ecx, byte [ebp + edx - 0x1c4]
xor eax, ecx
mov byte [ebp - 0x27], al
mov dl, byte [ebp - 0x2b]
mov byte [ebp - 0x28], dl
mov al, byte [ebp - 0x27]
mov byte [ebp - 0x2c], al
cmp dword [ebp - 0x34], 0
jle 0x453310
mov ecx, dword [ebp - 0x34]
mov dl, byte [ebp - 0x2c]
mov byte [ebp + ecx - 0x1d], dl
mov eax, dword [ebp - 0x3c]
add eax, 7
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0xbc], ecx
jmp 0x453336
mov edx, dword [ebp - 0xbc]
add edx, 1
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0x3c]
jge 0x4534e3
mov ecx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x34]
shl edx, 1
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x5c]
movzx ecx, byte [eax]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], 0x62
mov edx, dword [ebp - 0x34]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x64]
movzx edx, byte [ecx]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], 0x1e
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0x50]
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x54]
shl edx, 4
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x68]
or ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], ecx
mov dl, byte [ebp - 0x70]
mov byte [ebp - 0x2b], dl
movzx eax, byte [ebp - 0x28]
mov cl, byte [ebp + eax - 0x1c4]
mov byte [ebp - 0x29], cl
movzx edx, byte [ebp - 0x25]
movzx eax, byte [ebp + edx - 0x1c4]
mov dword [ebp - 0x220], eax
mov cl, byte [ebp - 0x25]
add cl, 1
mov byte [ebp - 0x25], cl
movzx edx, byte [ebp - 0x26]
add edx, dword [ebp - 0x220]
mov byte [ebp - 0x26], dl
movzx eax, byte [ebp - 0x26]
movzx ecx, byte [ebp - 0x28]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x27]
movzx ecx, byte [ebp - 0x26]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x25]
movzx ecx, byte [ebp - 0x27]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x25]
mov cl, byte [ebp - 0x29]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x29]
movzx eax, byte [ebp + edx - 0x1c4]
movzx ecx, byte [ebp - 0x2a]
add ecx, eax
mov byte [ebp - 0x2a], cl
movzx edx, byte [ebp - 0x2b]
movzx eax, byte [ebp - 0x26]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx eax, byte [ebp - 0x25]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1c4]
xor edx, ecx
movzx eax, byte [ebp - 0x27]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx eax, byte [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
movzx eax, byte [ebp - 0x2a]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1c4]
movzx eax, byte [ebp + ecx - 0x1c4]
xor edx, eax
mov byte [ebp - 0x27], dl
mov cl, byte [ebp - 0x2b]
mov byte [ebp - 0x28], cl
mov dl, byte [ebp - 0x27]
mov byte [ebp - 0x2c], dl
cmp dword [ebp - 0x34], 0
jle 0x4534de
mov eax, dword [ebp - 0x34]
mov cl, byte [ebp - 0x2c]
mov byte [ebp + eax - 0x1d], cl
jmp 0x453327
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x34]
shl edx, 1
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x5c]
movzx ecx, byte [eax]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], 0x62
mov edx, dword [ebp - 0x34]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x64]
movzx edx, byte [ecx]
mov dword [ebp - 0x4c], edx
movss xmm0, dword [0xa1f87c]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [0xa1f82c]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [0xa1f7f4]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [0xa1f7bc]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [0xa1f780]
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [0xa1f738]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [ebp - 0x74]
addss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0x40]
subss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x80]
mulss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x80]
mulss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x40]
addss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x7c]
mulss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [ebp - 0x78]
comiss xmm0, dword [ebp - 0x80]
jbe 0x453781
movss xmm0, dword [ebp - 0x7c]
mulss xmm0, dword [ebp - 0x8c]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [ebp - 0x80]
divss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x80]
addss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x74]
subss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0x74]
mulss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0x7c]
mulss xmm0, dword [ebp - 0x8c]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [ebp - 0x80]
subss xmm0, dword [ebp - 0x8c]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x74]
addss xmm0, dword [ebp - 0x40]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0x8c]
divss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [ebp - 0x8c]
mulss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [ebp - 0x74]
subss xmm0, dword [ebp - 0x40]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0x80]
subss xmm0, dword [ebp - 0x8c]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x7c]
comiss xmm0, dword [ebp - 0x74]
jbe 0x45371f
movss xmm0, dword [ebp - 0x40]
subss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x80]
addss xmm0, dword [ebp - 0x8c]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x7c]
addss xmm0, dword [ebp - 0x80]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [ebp - 0x40]
mulss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x7c]
divss xmm0, dword [ebp - 0x80]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [ebp - 0x74]
addss xmm0, dword [ebp - 0x40]
movss dword [ebp - 0x74], xmm0
jmp 0x45377f
movss xmm0, dword [ebp - 0x74]
mulss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0x40]
divss xmm0, dword [ebp - 0x80]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x8c]
mulss xmm0, dword [ebp - 0x74]
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [ebp - 0x78]
subss xmm0, dword [ebp - 0x40]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [ebp - 0x78]
divss xmm0, dword [ebp - 0x40]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [ebp - 0x40]
subss xmm0, dword [ebp - 0x80]
movss dword [ebp - 0x40], xmm0
jmp 0x4537e2
movss xmm0, dword [ebp - 0x78]
mulss xmm0, dword [ebp - 0x74]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [ebp - 0x40]
mulss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x78]
addss xmm0, dword [ebp - 0x74]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [ebp - 0x74]
subss xmm0, dword [ebp - 0x40]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0x40]
mulss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x40]
subss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x40], xmm0
mov dword [ebp - 0x50], 0x1e
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0x50]
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x54]
shl edx, 4
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x68]
or ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], ecx
mov dl, byte [ebp - 0x70]
mov byte [ebp - 0x2b], dl
movzx eax, byte [ebp - 0x28]
mov cl, byte [ebp + eax - 0x1c4]
mov byte [ebp - 0x29], cl
movzx edx, byte [ebp - 0x25]
movzx eax, byte [ebp + edx - 0x1c4]
mov dword [ebp - 0x224], eax
mov cl, byte [ebp - 0x25]
add cl, 1
mov byte [ebp - 0x25], cl
movzx edx, byte [ebp - 0x26]
add edx, dword [ebp - 0x224]
mov byte [ebp - 0x26], dl
movzx eax, byte [ebp - 0x26]
movzx ecx, byte [ebp - 0x28]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x27]
movzx ecx, byte [ebp - 0x26]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x25]
movzx ecx, byte [ebp - 0x27]
mov dl, byte [ebp + eax - 0x1c4]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x25]
mov cl, byte [ebp - 0x29]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x29]
movzx eax, byte [ebp + edx - 0x1c4]
movzx ecx, byte [ebp - 0x2a]
add ecx, eax
mov byte [ebp - 0x2a], cl
movzx edx, byte [ebp - 0x2b]
movzx eax, byte [ebp - 0x26]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx eax, byte [ebp - 0x25]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1c4]
xor edx, ecx
movzx eax, byte [ebp - 0x27]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx eax, byte [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
movzx eax, byte [ebp - 0x2a]
movzx eax, byte [ebp + eax - 0x1c4]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x1c4]
movzx eax, byte [ebp + ecx - 0x1c4]
xor edx, eax
mov byte [ebp - 0x27], dl
mov cl, byte [ebp - 0x2b]
mov byte [ebp - 0x28], cl
mov dl, byte [ebp - 0x27]
mov byte [ebp - 0x2c], dl
cmp dword [ebp - 0x34], 0
jle 0x45393a
mov eax, dword [ebp - 0x34]
mov cl, byte [ebp - 0x2c]
mov byte [ebp + eax - 0x1d], cl
mov edx, dword [ebp - 0x34]
add edx, 1
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x34]
shl ecx, 1
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x5c]
movzx eax, byte [edx]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], 0x62
mov ecx, dword [ebp - 0x34]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x64]
movzx ecx, byte [eax]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], 0x1e
mov edx, dword [ebp - 0x44]
sub edx, dword [ebp - 0x48]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x54]
shl ecx, 4
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x58]
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 - 0x2b], cl
movzx edx, byte [ebp - 0x28]
mov al, byte [ebp + edx - 0x1c4]
mov byte [ebp - 0x29], al
movzx ecx, byte [ebp - 0x25]
movzx edx, byte [ebp + ecx - 0x1c4]
mov dword [ebp - 0x23c], edx
mov al, byte [ebp - 0x25]
add al, 1
mov byte [ebp - 0x25], al
movzx ecx, byte [ebp - 0x26]
add ecx, dword [ebp - 0x23c]
mov byte [ebp - 0x26], cl
movzx edx, byte [ebp - 0x26]
movzx eax, byte [ebp - 0x28]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x27]
movzx eax, byte [ebp - 0x26]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x25]
movzx eax, byte [ebp - 0x27]
mov cl, byte [ebp + edx - 0x1c4]
mov byte [ebp + eax - 0x1c4], cl
movzx edx, byte [ebp - 0x25]
mov al, byte [ebp - 0x29]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x29]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx eax, byte [ebp - 0x2a]
add eax, edx
mov byte [ebp - 0x2a], al
movzx ecx, byte [ebp - 0x2b]
movzx edx, byte [ebp - 0x26]
movzx eax, byte [ebp + edx - 0x1c4]
movzx edx, byte [ebp - 0x25]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c4]
xor ecx, eax
movzx edx, byte [ebp - 0x27]
movzx eax, byte [ebp + edx - 0x1c4]
movzx edx, byte [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
movzx edx, byte [ebp - 0x2a]
movzx edx, byte [ebp + edx - 0x1c4]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x1c4]
movzx edx, byte [ebp + eax - 0x1c4]
xor ecx, edx
mov byte [ebp - 0x27], cl
mov al, byte [ebp - 0x2b]
mov byte [ebp - 0x28], al
mov cl, byte [ebp - 0x27]
mov byte [ebp - 0x2c], cl
cmp dword [ebp - 0x34], 0
jle 0x453ad9
mov edx, dword [ebp - 0x34]
mov al, byte [ebp - 0x2c]
mov byte [ebp + edx - 0x1d], al
mov ecx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x34]
shl eax, 1
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x5c]
movzx edx, byte [ecx]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], 0x62
mov eax, dword [ebp - 0x34]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x64]
movzx eax, byte [edx]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 0x1e
mov ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x48]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0x50]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x54]
shl eax, 4
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x68]
or edx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], edx
mov al, byte [ebp - 0x70]
mov byte [ebp - 0x2b], al
movzx ecx, byte [ebp - 0x28]
mov dl, byte [ebp + ecx - 0x1c4]
mov byte [ebp - 0x29], dl
movzx eax, byte [ebp - 0x25]
movzx ecx, byte [ebp + eax - 0x1c4]
mov dword [ebp - 0x22c], ecx
mov dl, byte [ebp - 0x25]
add dl, 1
mov byte [ebp - 0x25], dl
movzx eax, byte [ebp - 0x26]
add eax, dword [ebp - 0x22c]
mov byte [ebp - 0x26], al
movzx ecx, byte [ebp - 0x26]
movzx edx, byte [ebp - 0x28]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x27]
movzx edx, byte [ebp - 0x26]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x25]
movzx edx, byte [ebp - 0x27]
mov al, byte [ebp + ecx - 0x1c4]
mov byte [ebp + edx - 0x1c4], al
movzx ecx, byte [ebp - 0x25]
mov dl, byte [ebp - 0x29]
mov byte [ebp + ecx - 0x1c4], dl
movzx eax, byte [ebp - 0x29]
movzx ecx, byte [ebp + eax - 0x1c4]
movzx edx, byte [ebp - 0x2a]
add edx, ecx
mov byte [ebp - 0x2a], dl
movzx eax, byte [ebp - 0x2b]
movzx ecx, byte [ebp - 0x26]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx ecx, byte [ebp - 0x25]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1c4]
xor eax, edx
movzx ecx, byte [ebp - 0x27]
movzx edx, byte [ebp + ecx - 0x1c4]
movzx ecx, byte [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
movzx ecx, byte [ebp - 0x2a]
movzx ecx, byte [ebp + ecx - 0x1c4]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x1c4]
movzx ecx, byte [ebp + edx - 0x1c4]
xor eax, ecx
mov byte [ebp - 0x27], al
mov dl, byte [ebp - 0x2b]
mov byte [ebp - 0x28], dl
mov al, byte [ebp - 0x27]
mov byte [ebp - 0x2c], al
cmp dword [ebp - 0x34], 0
jle 0x453c7b
mov ecx, dword [ebp - 0x34]
mov dl, byte [ebp - 0x2c]
mov byte [ebp + ecx - 0x1d], dl
mov eax, 1
imul ecx, eax, 0x15
mov dword [ebp - 0x204], ecx
cmp dword [ebp - 0x204], 0x16
jae 0x453c94
jmp 0x453c99
call fcn.00985b99
mov edx, dword [ebp - 0x204]
mov byte [ebp + edx - 0x1c], 0
jmp 0x453cf3
mov dword [ebp - 0xb0], 0
jmp 0x453cc1
mov eax, dword [ebp - 0xb0]
add eax, 1
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0x16
jge 0x453cf3
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x1c8], ecx
cmp dword [ebp - 0x1c8], 0x16
jae 0x453ce1
jmp 0x453ce6
call fcn.00985b99
mov edx, dword [ebp - 0x1c8]
mov byte [ebp + edx - 0x1c], 0
jmp 0x453cb2
lea eax, [ebp - 0x1c]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x240], eax
mov ecx, dword [ebp - 0xc0]
mov dl, byte [ecx]
mov byte [ebp - 0x85], dl
mov eax, dword [ebp - 0xb4]
mov cl, byte [ebp - 0x85]
mov byte [eax], cl
mov edx, dword [ebp - 0xc0]
add edx, 1
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xb4]
add eax, 1
mov dword [ebp - 0xb4], eax
cmp byte [ebp - 0x85], 0
jne 0x453d14
mov ecx, dword [ebp + 8]
cmp dword [ecx + 4], 0
jne 0x453d92
push 0x11
call fcn.009859cc
add esp, 4
mov dword [ebp - 0x230], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x230]
mov dword [edx + 4], eax
xor ecx, ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov byte [eax + 0x10], cl
call fcn.004522a0
movzx ecx, al
neg ecx
sbb ecx, ecx
add ecx, 1
mov byte [ebp - 0x2d], cl
movzx edx, byte [ebp - 0x2d]
test edx, edx
je 0x453e09
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movsx ecx, byte [eax + ecx]
cmp ecx, 0xffffff83
jge 0x453de0
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
add eax, 0xa
mov dword [ebp - 0x1cc], eax
jmp 0x453dfb
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
movsx edx, byte [ecx + edx]
sub edx, 1
mov dword [ebp - 0x1cc], edx
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1d4], eax
jmp 0x453e64
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
movsx edx, byte [ecx + edx]
cmp edx, 0x7d
jle 0x453e3d
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movsx ecx, byte [eax + ecx]
sub ecx, 0xa
mov dword [ebp - 0x1d0], ecx
jmp 0x453e58
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
add eax, 1
mov dword [ebp - 0x1d0], eax
mov ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1d4], ecx
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov cl, byte [ebp - 0x1d4]
mov byte [eax + edx], cl
movzx ebx, byte [ebp - 0x2d]
call fcn.004390d0
movzx eax, al
and ebx, eax
mov byte [ebp - 0x2d], bl
movzx ecx, byte [ebp - 0x2d]
test ecx, ecx
je 0x453ef1
mov edx, 1
shl edx, 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
movsx edx, byte [ecx + edx]
cmp edx, 0xffffff84
jge 0x453ec8
mov eax, 1
shl eax, 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
add eax, 0x14
mov dword [ebp - 0x1d8], eax
jmp 0x453ee3
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movsx ecx, byte [eax + ecx]
sub ecx, 2
mov dword [ebp - 0x1d8], ecx
mov edx, dword [ebp - 0x1d8]
mov dword [ebp - 0x1e0], edx
jmp 0x453f4c
mov eax, 1
shl eax, 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
cmp eax, 0x7c
jle 0x453f25
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movsx ecx, byte [eax + ecx]
sub ecx, 0x14
mov dword [ebp - 0x1dc], ecx
jmp 0x453f40
mov edx, 1
shl edx, 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
movsx edx, byte [ecx + edx]
add edx, 2
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x1e0], eax
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov dl, byte [ebp - 0x1e0]
mov byte [ecx + eax], dl
movzx ebx, byte [ebp - 0x2d]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.0047bd26
add esp, 4
movzx eax, al
and ebx, eax
mov byte [ebp - 0x2d], bl
movzx edx, byte [ebp - 0x2d]
test edx, edx
je 0x453fe0
mov eax, 1
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
cmp eax, 0xffffff85
jge 0x453fb8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movsx ecx, byte [eax + ecx]
add ecx, 0x1e
mov dword [ebp - 0x1e4], ecx
jmp 0x453fd2
mov edx, 1
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
movsx edx, byte [ecx + edx]
sub edx, 3
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1ec], eax
jmp 0x454038
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movsx ecx, byte [eax + ecx]
cmp ecx, 0x7b
jle 0x454012
mov edx, 1
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
movsx edx, byte [ecx + edx]
sub edx, 0x1e
mov dword [ebp - 0x1e8], edx
jmp 0x45402c
mov eax, 1
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
add eax, 3
mov dword [ebp - 0x1e8], eax
mov ecx, dword [ebp - 0x1e8]
mov dword [ebp - 0x1ec], ecx
mov edx, 1
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov al, byte [ebp - 0x1ec]
mov byte [edx + ecx], al
movzx ebx, byte [ebp - 0x2d]
call fcn.0043c1a0
movzx ecx, al
and ebx, ecx
mov byte [ebp - 0x2d], bl
movzx eax, byte [ebp - 0x2d]
test eax, eax
je 0x4540c4
mov ecx, 1
imul edx, ecx, 3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
movsx edx, byte [ecx + edx]
cmp edx, 0xffffff86
jge 0x45409b
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movsx ecx, byte [eax + ecx]
add ecx, 0x28
mov dword [ebp - 0x1f0], ecx
jmp 0x4540b6
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
sub eax, 4
mov dword [ebp - 0x1f0], eax
mov ecx, dword [ebp - 0x1f0]
mov dword [ebp - 0x1f8], ecx
jmp 0x45411e
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
cmp eax, 0x7a
jle 0x4540f7
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
movsx ecx, byte [eax + ecx]
sub ecx, 0x28
mov dword [ebp - 0x1f4], ecx
jmp 0x454112
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movsx eax, byte [edx + eax]
add eax, 4
mov dword [ebp - 0x1f4], eax
mov ecx, dword [ebp - 0x1f4]
mov dword [ebp - 0x1f8], ecx
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov cl, byte [ebp - 0x1f8]
mov byte [eax + edx], cl
mov edx, dword [ebp + 8]
push edx
call fcn.0044b130
add esp, 4
mov eax, dword [ebp + 8]
cmp dword [eax + 0x10], 0
jne 0x454194
push 0x100
call fcn.009859cc
add esp, 4
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x234]
mov dword [ecx + 0x10], edx
push 0x100
push 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.009dd200
add esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, 0x40
mov esi, dword [edx + 0xc]
mov edi, dword [eax + 0x10]
rep movsd dword es:[edi], dword [esi]
jmp 0x4541ca
push 0x100
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
push ecx
call fcn.009de4f5
add esp, 0xc
mov dword [ebp - 0x238], eax
movzx edx, byte [ebp - 0x2d]
xor eax, eax
cmp dword [ebp - 0x238], 0
sete al
and edx, eax
mov byte [ebp - 0x2d], dl
mov edx, dword [ebp + 8]
mov al, byte [ebp - 0x2d]
mov byte [edx + 8], al
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
mov eax, dword [ebp + 8]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 8]
neg eax
sbb eax, eax
add eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
mov byte [edx], al
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.009857d7
mov esp, ebp
pop ebp
ret 4