Function at 0x4a5380
Capabilities:
Encrypt data using speck

Disassembly:
insb byte es:[edi], dx
push ebp
mov ebp, esp
sub esp, 0x288
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
fldz
fstp qword [ebp - 0x10]
fldz
fstp qword [ebp - 8]
fldz
fstp qword [ebp - 8]
jmp 0x4a53ba
fld qword [ebp - 8]
fadd qword [0x9c5c28]
fstp qword [ebp - 8]
fld qword [0x9c8a88]
fcomp qword [ebp - 8]
fnstsw ax
test ah, 0x41
jne 0x4a5419
fld qword [0x9c8a80]
fmul qword [ebp - 8]
fmul qword [ebp - 8]
fld qword [ebp - 8]
fmul qword [ebp - 8]
fsubp st(1)
fld qword [0x9c8a78]
fmul qword [ebp - 8]
fmul qword [ebp - 8]
fadd qword [0x9c8a70]
fdivp st(1)
fadd qword [ebp - 0x10]
fstp qword [ebp - 0x10]
fld qword [0x9c8a68]
fcomp qword [ebp - 0x10]
push 0xdc009c8a
pushfd
add ah, bl
pop ebp
invalid
fnstsw ax
test ah, 5
jp 0x4a5417
loopne 0x4a53fa
les eax, [0x5dd0f7a]
add eax, 0x5dd0f7a
fld qword [0x9c8a60]
pushal
mov bl, byte [eax + eax - 0x2307b224]
fmul qword [ebp - 8]
fsubr qword [ebp - 0x10]
fstp qword [ebp - 0x10]
insd dword es:[edi], dx
invalid
jmp 0x4a53ae
fldz
fcomp qword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x4a5471
jno 0x4a53fc
js 0x4a5402
jno 0x4a53ff
aam 0x75
aad 0x6a
jne 0x4a5402
push 0xffffffffffffffd2
jo 0x4a5401
sal byte [eax - 0x30], cl
jo 0x4a540e
ja 0x4a5405
push 0xffffffffffffffcf
imul ebx, esp, 0x71
salc
insb byte es:[edi], dx
sar dword [eax - 0x26], 1
jae 0x4a541b
jae 0x4a5412
push 0xffffffffffffffd3
push 0xffffffffffffffd6
outsd dx, dword [esi]
aad 0x74
fldcw word [edx - 0x33]
ja 0x4a5423
imul ebx, esp, 0x6f
into
jns 0x4a542e
js 0x4a542e
jbe 0x4a542a
jno 0x4a542e
pop esi
ja 0x4a54d8
jo 0x4a54a2
pop eax
outsb dx, byte [esi]
inc esi
push edi
and esp, dword [di]
jle 0x4a54a0
inc ebx
jo 0x4a54dd
jmp 0x4a76d6
mov dword [ebp - 0x50], 0x4a5425
mov dword [ebp - 0x4c], 0x4a545b
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x58], ecx
mov byte [ebp - 0x179], 0x15
mov dword [ebp - 0x170], 0
jmp 0x4a54ad
mov edx, dword [ebp - 0x170]
add edx, 1
mov dword [ebp - 0x170], edx
nop
invalid
invalid
cmp dword [ebp - 0x170], 0x100
jae 0x4a54ce
mov eax, dword [ebp - 0x170]
mov cl, byte [ebp - 0x170]
mov byte [ebp + eax - 0x168], cl
jmp 0x4a549e
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x17a], 0
mov dword [ebp - 0x170], 0xff
jmp 0x4a54f7
invalid
test dword [eax - 2], edx
add byte [eax], al
add bl, ch
jnp 0x48e582
mov edx, dword [ebp - 0x170]
sub edx, 1
mov dword [ebp - 0x170], edx
inc dword [ebx - 0x6a76fe16]
nop
invalid
cmp dword [ebp - 0x170], 0
jbe 0x4a57ee
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x188], 1
mov eax, dword [ebp - 0x188]
cmp eax, dword [ebp - 0x170]
jae 0x4a5538
mov ecx, dword [ebp - 0x188]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x188], edx
jmp 0x4a5518
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 3
ja case.default.0x4a5554
mov ecx, dword [ebp - 0x248]
jmp dword [ecx*4 + 0x4a76ec]
movzx edx, byte [ebp - 0x17a]
movzx ecx, byte [ebp + edx - 0x168]
fld qword [ebp - 0x10]
fnstcw word [ebp - 0x24a]
movzx eax, word [ebp - 0x24a]
or eax, 0xc00
mov dword [ebp - 0x250], eax
fldcw word [ebp - 0x250]
fistp qword [ebp - 0x258]
fldcw word [ebp - 0x24a]
mov edx, dword [ebp - 0x258]
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x17a], cl
jmp 0x4a56d3
movzx eax, byte [ebp - 0x17a]
movzx ecx, byte [ebp + eax - 0x168]
fld qword [ebp - 0x10]
fnstcw word [ebp - 0x25a]
movzx eax, word [ebp - 0x25a]
or eax, 0xc00
mov dword [ebp - 0x260], eax
fldcw word [ebp - 0x260]
fistp qword [ebp - 0x268]
fldcw word [ebp - 0x25a]
mov edx, dword [ebp - 0x268]
shr edx, 8
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x17a], cl
jmp 0x4a56d3
movzx eax, byte [ebp - 0x17a]
movzx ecx, byte [ebp + eax - 0x168]
fld qword [ebp - 0x10]
fnstcw word [ebp - 0x26a]
movzx eax, word [ebp - 0x26a]
or eax, 0xc00
mov dword [ebp - 0x270], eax
fldcw word [ebp - 0x270]
fistp qword [ebp - 0x278]
fldcw word [ebp - 0x26a]
mov edx, dword [ebp - 0x278]
shr edx, 0x10
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x17a], cl
jmp 0x4a56d3
movzx eax, byte [ebp - 0x17a]
movzx ecx, byte [ebp + eax - 0x168]
fld qword [ebp - 0x10]
fnstcw word [ebp - 0x27a]
movzx eax, word [ebp - 0x27a]
or eax, 0xc00
mov dword [ebp - 0x280], eax
fldcw word [ebp - 0x280]
fistp qword [ebp - 0x288]
fldcw word [ebp - 0x27a]
mov edx, dword [ebp - 0x288]
shr edx, 0x18
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x17a], cl
jmp 0x4a56d3
movzx eax, byte [ebp - 0x17a]
movzx ecx, byte [ebp + eax - 0x168]
mov edx, dword [ebp - 0x58]
add edx, dword [ebp - 0x60]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x17a], cl
mov ecx, dword [ebp - 0x60]
add ecx, 1
mov dword [ebp - 0x60], ecx
movzx edx, byte [ebp - 0x179]
cmp dword [ebp - 0x60], edx
jb 0x4a5705
mov dword [ebp - 0x60], 0
movzx eax, byte [ebp - 0x179]
movzx ecx, byte [ebp - 0x17a]
add ecx, eax
mov byte [ebp - 0x17a], cl
movzx edx, byte [ebp - 0x17a]
and edx, dword [ebp - 0x188]
mov dword [ebp - 0x184], edx
mov eax, dword [ebp - 0x180]
add eax, 1
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0xb
jbe 0x4a5744
mov eax, dword [ebp - 0x184]
xor edx, edx
div dword [ebp - 0x170]
mov dword [ebp - 0x184], edx
mov ecx, dword [ebp - 0x184]
cmp ecx, dword [ebp - 0x170]
ja 0x4a5538
mov edx, dword [ebp - 0x170]
cmp edx, dword [ebp - 0x184]
je 0x4a57e9
mov eax, dword [ebp - 0x184]
movzx ecx, byte [ebp + eax - 0x168]
mov edx, dword [ebp - 0x170]
movzx eax, byte [ebp + edx - 0x168]
xor eax, ecx
mov ecx, dword [ebp - 0x170]
mov byte [ebp + ecx - 0x168], al
mov edx, dword [ebp - 0x170]
movzx eax, byte [ebp + edx - 0x168]
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ebp + ecx - 0x168]
xor edx, eax
mov eax, dword [ebp - 0x184]
mov byte [ebp + eax - 0x168], dl
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ebp + ecx - 0x168]
mov eax, dword [ebp - 0x170]
movzx ecx, byte [ebp + eax - 0x168]
xor ecx, edx
mov edx, dword [ebp - 0x170]
mov byte [ebp + edx - 0x168], cl
jmp 0x4a54e8
mov al, byte [ebp - 0x167]
mov byte [ebp - 0x17b], al
mov cl, byte [ebp - 0x165]
mov byte [ebp - 0x61], cl
mov dl, byte [ebp - 0x163]
mov byte [ebp - 0x169], dl
mov al, byte [ebp - 0x161]
mov byte [ebp - 0x171], al
movzx ecx, byte [ebp - 0x17a]
mov dl, byte [ebp + ecx - 0x168]
mov byte [ebp - 0x51], dl
mov dword [ebp - 0x178], 0x36
cmp dword [ebp - 0x178], 2
jle 0x4a76a3
mov eax, dword [ebp - 0x178]
and eax, 1
jne 0x4a76a3
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1b8], 0
mov ecx, dword [ebp - 0x1b8]
add ecx, 1
mov dword [ebp - 0x1b8], ecx
mov dword [ebp - 0x194], 0
mov edx, dword [ebp - 0x1bc]
shl edx, 1
mov dword [ebp - 0x194], edx
mov dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x194]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x1d4]
mov dword [ebp - 0x1d4], ecx
mov dword [ebp - 0x1a4], 0
mov edx, dword [ebp - 0x1a4]
add edx, 0x6a
mov dword [ebp - 0x1a4], edx
mov dword [ebp - 0x1b0], 0
mov eax, dword [ebp - 0x1bc]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x1b0], ecx
mov dword [ebp - 0x1e4], 0
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x1b0]
movzx eax, byte [edx]
add eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1d0], 0
mov ecx, dword [ebp - 0x1d0]
add ecx, 0xcd
mov dword [ebp - 0x1d0], ecx
mov dword [ebp - 0x1e0], 0
mov edx, dword [ebp - 0x1d4]
sub edx, dword [ebp - 0x1a4]
add edx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1e0], edx
mov dword [ebp - 0x198], 0
mov eax, dword [ebp - 0x1e4]
sub eax, dword [ebp - 0x1d0]
add eax, dword [ebp - 0x198]
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x1dc], 0
mov ecx, dword [ebp - 0x1e0]
shl ecx, 4
mov dword [ebp - 0x1dc], ecx
mov dword [ebp - 0x1cc], 0
mov edx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], edx
mov dword [ebp - 0x1b4], 0
mov eax, dword [ebp - 0x1dc]
or eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], eax
mov byte [ebp - 0x1a5], 0
mov cl, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], cl
mov byte [ebp - 0x1d5], 0
movzx edx, byte [ebp - 0x51]
mov al, byte [ebp + edx - 0x168]
mov byte [ebp - 0x1d5], al
movzx ecx, byte [ebp - 0x17b]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x61]
add eax, edx
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x17b]
add cl, 1
mov byte [ebp - 0x17b], cl
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x51]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
movzx eax, byte [ebp - 0x171]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
mov al, byte [ebp - 0x1d5]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x1d5]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x169]
add eax, edx
mov byte [ebp - 0x169], al
movzx ecx, byte [ebp - 0x1a5]
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x17b]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
xor ecx, eax
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x51]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
movzx edx, byte [ebp - 0x169]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
movzx edx, byte [ebp + eax - 0x168]
xor ecx, edx
mov byte [ebp - 0x171], cl
mov al, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], al
mov cl, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], cl
cmp dword [ebp - 0x1bc], 0
jle 0x4a5b2d
movsx dx, byte [ebp - 0x1c5]
mov eax, dword [ebp - 0x1bc]
mov word [ebp + eax*2 - 0x4a], dx
mov ecx, dword [ebp - 0x1bc]
add ecx, 1
mov dword [ebp - 0x1bc], ecx
mov edx, dword [ebp - 0x1b8]
add edx, 1
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x1bc]
shl eax, 1
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x194]
movzx edx, byte [ecx]
mov dword [ebp - 0x1d4], edx
mov dword [ebp - 0x1a4], 0x6a
mov eax, dword [ebp - 0x1bc]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x1b0], ecx
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x1b0]
movzx eax, byte [edx]
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1d0], 0xcd
mov ecx, dword [ebp - 0x1d4]
sub ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], ecx
mov edx, dword [ebp - 0x1e4]
sub edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x1e0]
shl eax, 4
mov dword [ebp - 0x1dc], eax
mov ecx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], ecx
mov edx, dword [ebp - 0x1dc]
or edx, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], edx
mov al, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], al
movzx ecx, byte [ebp - 0x51]
mov dl, byte [ebp + ecx - 0x168]
mov byte [ebp - 0x1d5], dl
movzx eax, byte [ebp - 0x17b]
movzx ecx, byte [ebp + eax - 0x168]
movzx edx, byte [ebp - 0x61]
add edx, ecx
mov byte [ebp - 0x61], dl
mov al, byte [ebp - 0x17b]
add al, 1
mov byte [ebp - 0x17b], al
movzx ecx, byte [ebp - 0x61]
movzx edx, byte [ebp - 0x51]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x171]
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x17b]
movzx edx, byte [ebp - 0x171]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x17b]
mov dl, byte [ebp - 0x1d5]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x1d5]
movzx ecx, byte [ebp + eax - 0x168]
movzx edx, byte [ebp - 0x169]
add edx, ecx
mov byte [ebp - 0x169], dl
movzx eax, byte [ebp - 0x1a5]
movzx ecx, byte [ebp - 0x61]
movzx edx, byte [ebp + ecx - 0x168]
movzx ecx, byte [ebp - 0x17b]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x168]
xor eax, edx
movzx ecx, byte [ebp - 0x171]
movzx edx, byte [ebp + ecx - 0x168]
movzx ecx, byte [ebp - 0x51]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
movzx ecx, byte [ebp - 0x169]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x168]
movzx ecx, byte [ebp + edx - 0x168]
xor eax, ecx
mov byte [ebp - 0x171], al
mov dl, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], dl
mov al, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], al
cmp dword [ebp - 0x1bc], 0
jle 0x4a5d63
movsx cx, byte [ebp - 0x1c5]
mov edx, dword [ebp - 0x1bc]
mov word [ebp + edx*2 - 0x4a], cx
mov eax, dword [ebp - 0x1bc]
add eax, 1
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1b8]
add ecx, 1
mov dword [ebp - 0x1b8], ecx
mov edx, dword [ebp - 0x1bc]
shl edx, 1
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x194]
movzx ecx, byte [eax]
mov dword [ebp - 0x1d4], ecx
mov dword [ebp - 0x1a4], 0x6a
mov edx, dword [ebp - 0x1bc]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x1b0]
movzx edx, byte [ecx]
mov dword [ebp - 0x1e4], edx
mov dword [ebp - 0x1d0], 0xcd
mov eax, dword [ebp - 0x1d4]
sub eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], eax
mov ecx, dword [ebp - 0x1e4]
sub ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x1e0]
shl edx, 4
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], eax
mov ecx, dword [ebp - 0x1dc]
or ecx, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], ecx
mov dl, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], dl
movzx eax, byte [ebp - 0x51]
mov cl, byte [ebp + eax - 0x168]
mov byte [ebp - 0x1d5], cl
movzx edx, byte [ebp - 0x17b]
movzx eax, byte [ebp + edx - 0x168]
movzx ecx, byte [ebp - 0x61]
add ecx, eax
mov byte [ebp - 0x61], cl
mov dl, byte [ebp - 0x17b]
add dl, 1
mov byte [ebp - 0x17b], dl
movzx eax, byte [ebp - 0x61]
movzx ecx, byte [ebp - 0x51]
mov dl, byte [ebp + eax - 0x168]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x171]
movzx ecx, byte [ebp - 0x61]
mov dl, byte [ebp + eax - 0x168]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x17b]
movzx ecx, byte [ebp - 0x171]
mov dl, byte [ebp + eax - 0x168]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x17b]
mov cl, byte [ebp - 0x1d5]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x1d5]
movzx eax, byte [ebp + edx - 0x168]
movzx ecx, byte [ebp - 0x169]
add ecx, eax
mov byte [ebp - 0x169], cl
movzx edx, byte [ebp - 0x1a5]
movzx eax, byte [ebp - 0x61]
movzx ecx, byte [ebp + eax - 0x168]
movzx eax, byte [ebp - 0x17b]
movzx eax, byte [ebp + eax - 0x168]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x168]
xor edx, ecx
movzx eax, byte [ebp - 0x171]
movzx ecx, byte [ebp + eax - 0x168]
movzx eax, byte [ebp - 0x51]
movzx eax, byte [ebp + eax - 0x168]
add ecx, eax
movzx eax, byte [ebp - 0x169]
movzx eax, byte [ebp + eax - 0x168]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp + ecx - 0x168]
xor edx, eax
mov byte [ebp - 0x171], dl
mov cl, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], cl
mov dl, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], dl
cmp dword [ebp - 0x1bc], 0
jle 0x4a5f9a
movsx ax, byte [ebp - 0x1c5]
mov ecx, dword [ebp - 0x1bc]
mov word [ebp + ecx*2 - 0x4a], ax
mov edx, dword [ebp - 0x1b8]
add edx, 9
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x1bc]
add eax, 1
mov dword [ebp - 0x1e8], eax
jmp 0x4a5fc9
mov ecx, dword [ebp - 0x1e8]
add ecx, 1
mov dword [ebp - 0x1e8], ecx
mov edx, dword [ebp - 0x1e8]
cmp edx, dword [ebp - 0x1b8]
jge 0x4a6206
mov eax, dword [ebp - 0x1bc]
add eax, 1
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1bc]
shl ecx, 1
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x194]
movzx eax, byte [edx]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1a4], 0x6a
mov ecx, dword [ebp - 0x1bc]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x1b0], edx
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x1b0]
movzx ecx, byte [eax]
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1d0], 0xcd
mov edx, dword [ebp - 0x1d4]
sub edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], edx
mov eax, dword [ebp - 0x1e4]
sub eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x1e0]
shl ecx, 4
mov dword [ebp - 0x1dc], ecx
mov edx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], edx
mov eax, dword [ebp - 0x1dc]
or eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], eax
mov cl, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], cl
movzx edx, byte [ebp - 0x51]
mov al, byte [ebp + edx - 0x168]
mov byte [ebp - 0x1d5], al
movzx ecx, byte [ebp - 0x17b]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x61]
add eax, edx
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x17b]
add cl, 1
mov byte [ebp - 0x17b], cl
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x51]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
movzx eax, byte [ebp - 0x171]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
mov al, byte [ebp - 0x1d5]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x1d5]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x169]
add eax, edx
mov byte [ebp - 0x169], al
movzx ecx, byte [ebp - 0x1a5]
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x17b]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
xor ecx, eax
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x51]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
movzx edx, byte [ebp - 0x169]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
movzx edx, byte [ebp + eax - 0x168]
xor ecx, edx
mov byte [ebp - 0x171], cl
mov al, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], al
mov cl, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], cl
cmp dword [ebp - 0x1bc], 0
jle 0x4a6201
movsx dx, byte [ebp - 0x1c5]
mov eax, dword [ebp - 0x1bc]
mov word [ebp + eax*2 - 0x4a], dx
jmp 0x4a5fba
mov ecx, dword [ebp - 0x1b8]
add ecx, 1
mov dword [ebp - 0x1b8], ecx
mov edx, dword [ebp - 0x1bc]
add edx, 1
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0x1b8]
add eax, 1
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x1bc]
shl ecx, 1
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x194]
movzx eax, byte [edx]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1a4], 0x6a
mov ecx, dword [ebp - 0x1bc]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x1b0], edx
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x1b0]
movzx ecx, byte [eax]
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1d0], 0xcd
mov edx, dword [ebp - 0x1d4]
sub edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], edx
mov eax, dword [ebp - 0x1e4]
sub eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x1e0]
shl ecx, 4
mov dword [ebp - 0x1dc], ecx
mov edx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], edx
mov eax, dword [ebp - 0x1dc]
or eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], eax
mov cl, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], cl
movzx edx, byte [ebp - 0x51]
mov al, byte [ebp + edx - 0x168]
mov byte [ebp - 0x1d5], al
movzx ecx, byte [ebp - 0x17b]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x61]
add eax, edx
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x17b]
add cl, 1
mov byte [ebp - 0x17b], cl
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x51]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
fld dword [0x9c8a58]
fstp dword [ebp - 0x1c4]
fld dword [0x9c8a54]
fstp dword [ebp - 0x1ac]
fld dword [0x9c8a50]
fstp dword [ebp - 0x1a0]
fld dword [0x9c8a4c]
fstp dword [ebp - 0x190]
fld dword [0x9c8a48]
fstp dword [ebp - 0x19c]
fld dword [0x9c8a44]
fstp dword [ebp - 0x18c]
fld dword [0x9c8a40]
fstp dword [ebp - 0x1c0]
fld dword [ebp - 0x1ac]
fsub dword [ebp - 0x1c0]
fstp dword [ebp - 0x1ac]
fld dword [ebp - 0x18c]
fadd dword [ebp - 0x1c0]
fstp dword [ebp - 0x18c]
fld dword [ebp - 0x190]
fmul dword [ebp - 0x1c0]
fstp dword [ebp - 0x190]
fld dword [ebp - 0x1c4]
fsub dword [ebp - 0x1c0]
fstp dword [ebp - 0x1c4]
fld dword [ebp - 0x1c4]
fsub dword [ebp - 0x1c0]
fstp dword [ebp - 0x1c4]
fld dword [ebp - 0x1a0]
fsub dword [ebp - 0x1c0]
fstp dword [ebp - 0x1a0]
fld dword [ebp - 0x190]
fadd dword [ebp - 0x1c0]
fstp dword [ebp - 0x190]
fld dword [ebp - 0x190]
fld dword [ebp - 0x1c0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4a64a2
fld dword [ebp - 0x1c0]
fdiv dword [ebp - 0x1c4]
fstp dword [ebp - 0x1c0]
fld dword [ebp - 0x190]
fsub dword [ebp - 0x19c]
fstp dword [ebp - 0x190]
fld dword [ebp - 0x1c4]
fmul dword [ebp - 0x1ac]
fstp dword [ebp - 0x1c4]
fld dword [ebp - 0x1c4]
fmul dword [ebp - 0x1ac]
fstp dword [ebp - 0x1c4]
fld dword [ebp - 0x18c]
fsub dword [ebp - 0x1c0]
fstp dword [ebp - 0x18c]
fld dword [ebp - 0x1c4]
fdiv dword [ebp - 0x1ac]
fstp dword [ebp - 0x1c4]
fld dword [ebp - 0x18c]
fdiv dword [ebp - 0x1c0]
fstp dword [ebp - 0x18c]
jmp 0x4a6539
fld dword [ebp - 0x1a0]
fadd dword [ebp - 0x190]
fstp dword [ebp - 0x1a0]
fld dword [ebp - 0x1a0]
fsub dword [ebp - 0x190]
fstp dword [ebp - 0x1a0]
fld dword [ebp - 0x18c]
fadd dword [ebp - 0x1c0]
fstp dword [ebp - 0x18c]
fld dword [ebp - 0x190]
fadd dword [ebp - 0x19c]
fstp dword [ebp - 0x190]
fld dword [ebp - 0x1c0]
fsub dword [ebp - 0x1c4]
fstp dword [ebp - 0x1c0]
fld dword [ebp - 0x190]
fsub dword [ebp - 0x19c]
fstp dword [ebp - 0x190]
fld dword [ebp - 0x1c4]
fsub dword [ebp - 0x1ac]
fstp dword [ebp - 0x1c4]
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
movzx eax, byte [ebp - 0x171]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
mov al, byte [ebp - 0x1d5]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x1d5]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x169]
add eax, edx
mov byte [ebp - 0x169], al
movzx ecx, byte [ebp - 0x1a5]
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x17b]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
xor ecx, eax
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x51]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
movzx edx, byte [ebp - 0x169]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
movzx edx, byte [ebp + eax - 0x168]
xor ecx, edx
mov byte [ebp - 0x171], cl
mov al, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], al
mov cl, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], cl
cmp dword [ebp - 0x1bc], 0
jle 0x4a6636
movsx dx, byte [ebp - 0x1c5]
mov eax, dword [ebp - 0x1bc]
mov word [ebp + eax*2 - 0x4a], dx
mov ecx, dword [ebp - 0x1bc]
add ecx, 1
mov dword [ebp - 0x1bc], ecx
mov edx, dword [ebp - 0x1b8]
add edx, 1
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x1bc]
shl eax, 1
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x194]
movzx edx, byte [ecx]
mov dword [ebp - 0x1d4], edx
mov dword [ebp - 0x1a4], 0x6a
mov eax, dword [ebp - 0x1bc]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x1b0], ecx
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x1b0]
movzx eax, byte [edx]
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1d0], 0xcd
mov ecx, dword [ebp - 0x1d4]
sub ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], ecx
mov edx, dword [ebp - 0x1e4]
sub edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x1e0]
shl eax, 4
mov dword [ebp - 0x1dc], eax
mov ecx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], ecx
mov edx, dword [ebp - 0x1dc]
or edx, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], edx
mov al, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], al
movzx ecx, byte [ebp - 0x51]
mov dl, byte [ebp + ecx - 0x168]
mov byte [ebp - 0x1d5], dl
movzx eax, byte [ebp - 0x17b]
movzx ecx, byte [ebp + eax - 0x168]
movzx edx, byte [ebp - 0x61]
add edx, ecx
mov byte [ebp - 0x61], dl
mov al, byte [ebp - 0x17b]
add al, 1
mov byte [ebp - 0x17b], al
movzx ecx, byte [ebp - 0x61]
movzx edx, byte [ebp - 0x51]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x171]
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x17b]
movzx edx, byte [ebp - 0x171]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x17b]
mov dl, byte [ebp - 0x1d5]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x1d5]
movzx ecx, byte [ebp + eax - 0x168]
movzx edx, byte [ebp - 0x169]
add edx, ecx
mov byte [ebp - 0x169], dl
movzx eax, byte [ebp - 0x1a5]
movzx ecx, byte [ebp - 0x61]
movzx edx, byte [ebp + ecx - 0x168]
movzx ecx, byte [ebp - 0x17b]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x168]
xor eax, edx
movzx ecx, byte [ebp - 0x171]
movzx edx, byte [ebp + ecx - 0x168]
movzx ecx, byte [ebp - 0x51]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
movzx ecx, byte [ebp - 0x169]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x168]
movzx ecx, byte [ebp + edx - 0x168]
xor eax, ecx
mov byte [ebp - 0x171], al
mov dl, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], dl
mov al, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], al
cmp dword [ebp - 0x1bc], 0
jle 0x4a686c
movsx cx, byte [ebp - 0x1c5]
mov edx, dword [ebp - 0x1bc]
mov word [ebp + edx*2 - 0x4a], cx
mov eax, dword [ebp - 0x1bc]
add eax, 1
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1b8]
add ecx, 1
mov dword [ebp - 0x1b8], ecx
mov edx, dword [ebp - 0x1bc]
shl edx, 1
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x194]
movzx ecx, byte [eax]
mov dword [ebp - 0x1d4], ecx
mov dword [ebp - 0x1a4], 0x6a
mov edx, dword [ebp - 0x1bc]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x1b0]
movzx edx, byte [ecx]
mov dword [ebp - 0x1e4], edx
mov dword [ebp - 0x1d0], 0xcd
mov eax, dword [ebp - 0x1d4]
sub eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], eax
mov ecx, dword [ebp - 0x1e4]
sub ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x1e0]
shl edx, 4
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], eax
mov ecx, dword [ebp - 0x1dc]
or ecx, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], ecx
mov dl, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], dl
movzx eax, byte [ebp - 0x51]
mov cl, byte [ebp + eax - 0x168]
mov byte [ebp - 0x1d5], cl
movzx edx, byte [ebp - 0x17b]
movzx eax, byte [ebp + edx - 0x168]
movzx ecx, byte [ebp - 0x61]
add ecx, eax
mov byte [ebp - 0x61], cl
mov dl, byte [ebp - 0x17b]
add dl, 1
mov byte [ebp - 0x17b], dl
movzx eax, byte [ebp - 0x61]
movzx ecx, byte [ebp - 0x51]
mov dl, byte [ebp + eax - 0x168]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x171]
movzx ecx, byte [ebp - 0x61]
mov dl, byte [ebp + eax - 0x168]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x17b]
movzx ecx, byte [ebp - 0x171]
mov dl, byte [ebp + eax - 0x168]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x17b]
mov cl, byte [ebp - 0x1d5]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x1d5]
movzx eax, byte [ebp + edx - 0x168]
movzx ecx, byte [ebp - 0x169]
add ecx, eax
mov byte [ebp - 0x169], cl
movzx edx, byte [ebp - 0x1a5]
movzx eax, byte [ebp - 0x61]
movzx ecx, byte [ebp + eax - 0x168]
movzx eax, byte [ebp - 0x17b]
movzx eax, byte [ebp + eax - 0x168]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x168]
xor edx, ecx
movzx eax, byte [ebp - 0x171]
movzx ecx, byte [ebp + eax - 0x168]
movzx eax, byte [ebp - 0x51]
movzx eax, byte [ebp + eax - 0x168]
add ecx, eax
movzx eax, byte [ebp - 0x169]
movzx eax, byte [ebp + eax - 0x168]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp + ecx - 0x168]
xor edx, eax
mov byte [ebp - 0x171], dl
mov cl, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], cl
mov dl, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], dl
cmp dword [ebp - 0x1bc], 0
jle 0x4a6aa3
movsx ax, byte [ebp - 0x1c5]
mov ecx, dword [ebp - 0x1bc]
mov word [ebp + ecx*2 - 0x4a], ax
mov edx, dword [ebp - 0x1b8]
add edx, 0xa
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x1bc]
add eax, 1
mov dword [ebp - 0x1ec], eax
jmp 0x4a6ad2
mov ecx, dword [ebp - 0x1ec]
add ecx, 1
mov dword [ebp - 0x1ec], ecx
mov edx, dword [ebp - 0x1ec]
cmp edx, dword [ebp - 0x1b8]
jge 0x4a7221
mov eax, dword [ebp - 0x1bc]
add eax, 1
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1bc]
shl ecx, 1
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x194]
movzx eax, byte [edx]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1a4], 0x6a
mov ecx, dword [ebp - 0x1bc]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x1b0], edx
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x1b0]
movzx ecx, byte [eax]
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1d0], 0xcd
fld dword [0x9c8a3c]
fstp dword [ebp - 0x22c]
fld dword [0x9c8a38]
fstp dword [ebp - 0x214]
fld dword [0x9c8a34]
fstp dword [ebp - 0x1fc]
fld dword [0x9c8a30]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x22c]
fadd dword [ebp - 0x23c]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x22c]
fsub dword [ebp - 0x23c]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x1fc]
fadd dword [ebp - 0x23c]
fstp dword [ebp - 0x1fc]
fld dword [ebp - 0x22c]
fadd dword [ebp - 0x23c]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x23c]
fld dword [ebp - 0x22c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4a6c35
fld dword [ebp - 0x23c]
fmul dword [ebp - 0x22c]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x22c]
fmul dword [ebp - 0x214]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x22c]
fmul dword [ebp - 0x214]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x1fc]
fmul dword [ebp - 0x23c]
fstp dword [ebp - 0x1fc]
mov edx, dword [ebp - 0x1d4]
sub edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], edx
jmp 0x4a6d6c
fld dword [ebp - 0x1fc]
fmul dword [ebp - 0x23c]
fstp dword [ebp - 0x1fc]
fld dword [ebp - 0x214]
fdiv dword [ebp - 0x1fc]
fstp dword [ebp - 0x214]
fld dword [ebp - 0x22c]
fdiv dword [ebp - 0x214]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x23c]
fdiv dword [ebp - 0x22c]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x23c]
fdiv dword [ebp - 0x22c]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x1fc]
fsub dword [ebp - 0x23c]
fstp dword [ebp - 0x1fc]
fld dword [ebp - 0x214]
fsub dword [ebp - 0x1fc]
fstp dword [ebp - 0x214]
fld dword [ebp - 0x22c]
fadd dword [ebp - 0x214]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x22c]
fld dword [ebp - 0x1fc]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4a6d24
fld dword [ebp - 0x214]
fsub dword [ebp - 0x1fc]
fstp dword [ebp - 0x214]
fld dword [ebp - 0x22c]
fadd dword [ebp - 0x214]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x214]
fdiv dword [ebp - 0x1fc]
fstp dword [ebp - 0x214]
fld dword [ebp - 0x22c]
fadd dword [ebp - 0x214]
fstp dword [ebp - 0x22c]
jmp 0x4a6d6c
fld dword [ebp - 0x22c]
fadd dword [ebp - 0x1fc]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x23c]
fadd dword [ebp - 0x214]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x22c]
fsub dword [ebp - 0x1fc]
fstp dword [ebp - 0x22c]
fld dword [ebp - 0x23c]
fadd dword [ebp - 0x214]
fstp dword [ebp - 0x23c]
mov eax, dword [ebp - 0x1e4]
sub eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x1e0]
shl ecx, 4
mov dword [ebp - 0x1dc], ecx
mov edx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], edx
mov eax, dword [ebp - 0x1dc]
or eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], eax
mov cl, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], cl
movzx edx, byte [ebp - 0x51]
mov al, byte [ebp + edx - 0x168]
mov byte [ebp - 0x1d5], al
movzx ecx, byte [ebp - 0x17b]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x61]
add eax, edx
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x17b]
add cl, 1
mov byte [ebp - 0x17b], cl
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x51]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
movzx eax, byte [ebp - 0x171]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
fld qword [0x9c8a28]
fstp qword [ebp - 0x228]
fld qword [0x9c8a20]
fstp qword [ebp - 0x210]
fld qword [0x9c8a18]
fstp qword [ebp - 0x1f8]
fld qword [0x9c8a10]
fstp qword [ebp - 0x238]
fld qword [0x9c8a08]
fstp qword [ebp - 0x220]
fld qword [0x9c8a00]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x1f8]
fsub qword [ebp - 0x208]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x210]
fadd qword [ebp - 0x208]
fstp qword [ebp - 0x210]
fld qword [ebp - 0x228]
fsub qword [ebp - 0x208]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x1f8]
fsub qword [ebp - 0x208]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x1f8]
fsub qword [ebp - 0x208]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x238]
fmul qword [ebp - 0x208]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x1f8]
fcomp qword [ebp - 0x238]
fnstsw ax
test ah, 5
jp 0x4a6f8a
fld qword [ebp - 0x220]
fsub qword [ebp - 0x228]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x228]
fmul qword [ebp - 0x1f8]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x208]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x1f8]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x238]
fmul qword [ebp - 0x208]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x210]
fadd qword [ebp - 0x238]
fstp qword [ebp - 0x210]
movzx edx, byte [ebp - 0x17b]
mov al, byte [ebp - 0x1d5]
mov byte [ebp + edx - 0x168], al
jmp 0x4a714f
fld qword [ebp - 0x238]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x210]
fadd qword [ebp - 0x1f8]
fstp qword [ebp - 0x210]
fld qword [ebp - 0x220]
fdiv qword [ebp - 0x208]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x228]
fadd qword [ebp - 0x210]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x220]
fadd qword [ebp - 0x208]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x1f8]
fsub qword [ebp - 0x238]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x208]
fmul qword [ebp - 0x228]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x220]
fdiv qword [ebp - 0x208]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x208]
fsub qword [ebp - 0x228]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x208]
fadd qword [ebp - 0x228]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x220]
fdiv qword [ebp - 0x208]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x228]
fcomp qword [ebp - 0x220]
fnstsw ax
test ah, 0x41
jne 0x4a70e3
fld qword [ebp - 0x220]
fmul qword [ebp - 0x208]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x228]
fdiv qword [ebp - 0x210]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x210]
fadd qword [ebp - 0x1f8]
fstp qword [ebp - 0x210]
fld qword [ebp - 0x228]
fsub qword [ebp - 0x210]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x1f8]
fsub qword [ebp - 0x238]
fstp qword [ebp - 0x1f8]
jmp 0x4a714f
fld qword [ebp - 0x238]
fdiv qword [ebp - 0x220]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x228]
fdiv qword [ebp - 0x210]
fstp qword [ebp - 0x228]
fld qword [ebp - 0x208]
fsub qword [ebp - 0x228]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x238]
fdiv qword [ebp - 0x220]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x238]
fadd qword [ebp - 0x220]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x210]
fmul qword [ebp - 0x1f8]
fstp qword [ebp - 0x210]
movzx ecx, byte [ebp - 0x1d5]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x169]
add eax, edx
mov byte [ebp - 0x169], al
movzx ecx, byte [ebp - 0x1a5]
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x17b]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
xor ecx, eax
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x51]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
movzx edx, byte [ebp - 0x169]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
movzx edx, byte [ebp + eax - 0x168]
xor ecx, edx
mov byte [ebp - 0x171], cl
mov al, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], al
mov cl, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], cl
cmp dword [ebp - 0x1bc], 0
jle 0x4a721c
movsx dx, byte [ebp - 0x1c5]
mov eax, dword [ebp - 0x1bc]
mov word [ebp + eax*2 - 0x4a], dx
jmp 0x4a6ac3
mov ecx, dword [ebp - 0x1b8]
add ecx, 1
mov dword [ebp - 0x1b8], ecx
mov edx, dword [ebp - 0x1bc]
add edx, 1
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0x1b8]
add eax, 1
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x1bc]
shl ecx, 1
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x194]
movzx eax, byte [edx]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1a4], 0x6a
mov ecx, dword [ebp - 0x1bc]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x1b0], edx
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x1b0]
movzx ecx, byte [eax]
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1d0], 0xcd
mov edx, dword [ebp - 0x1d4]
sub edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], edx
mov eax, dword [ebp - 0x1e4]
sub eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x1e0]
shl ecx, 4
mov dword [ebp - 0x1dc], ecx
mov edx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], edx
mov eax, dword [ebp - 0x1dc]
or eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], eax
mov cl, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], cl
movzx edx, byte [ebp - 0x51]
mov al, byte [ebp + edx - 0x168]
mov byte [ebp - 0x1d5], al
movzx ecx, byte [ebp - 0x17b]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x61]
add eax, edx
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x17b]
add cl, 1
mov byte [ebp - 0x17b], cl
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x51]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
movzx eax, byte [ebp - 0x171]
mov cl, byte [ebp + edx - 0x168]
mov byte [ebp + eax - 0x168], cl
movzx edx, byte [ebp - 0x17b]
mov al, byte [ebp - 0x1d5]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x1d5]
movzx edx, byte [ebp + ecx - 0x168]
movzx eax, byte [ebp - 0x169]
add eax, edx
mov byte [ebp - 0x169], al
movzx ecx, byte [ebp - 0x1a5]
movzx edx, byte [ebp - 0x61]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x17b]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
xor ecx, eax
movzx edx, byte [ebp - 0x171]
movzx eax, byte [ebp + edx - 0x168]
movzx edx, byte [ebp - 0x51]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
movzx edx, byte [ebp - 0x169]
movzx edx, byte [ebp + edx - 0x168]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x168]
movzx edx, byte [ebp + eax - 0x168]
xor ecx, edx
mov byte [ebp - 0x171], cl
mov al, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], al
mov cl, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], cl
cmp dword [ebp - 0x1bc], 0
jle 0x4a7465
movsx dx, byte [ebp - 0x1c5]
mov eax, dword [ebp - 0x1bc]
mov word [ebp + eax*2 - 0x4a], dx
mov ecx, dword [ebp - 0x1bc]
add ecx, 1
mov dword [ebp - 0x1bc], ecx
mov edx, dword [ebp - 0x1b8]
add edx, 1
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x1bc]
shl eax, 1
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x194]
movzx edx, byte [ecx]
mov dword [ebp - 0x1d4], edx
mov dword [ebp - 0x1a4], 0x6a
mov eax, dword [ebp - 0x1bc]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x1b0], ecx
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x1b0]
movzx eax, byte [edx]
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1d0], 0xcd
mov ecx, dword [ebp - 0x1d4]
sub ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], ecx
mov edx, dword [ebp - 0x1e4]
sub edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x1e0]
shl eax, 4
mov dword [ebp - 0x1dc], eax
mov ecx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], ecx
mov edx, dword [ebp - 0x1dc]
or edx, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b4], edx
mov al, byte [ebp - 0x1b4]
mov byte [ebp - 0x1a5], al
movzx ecx, byte [ebp - 0x51]
mov dl, byte [ebp + ecx - 0x168]
mov byte [ebp - 0x1d5], dl
movzx eax, byte [ebp - 0x17b]
movzx ecx, byte [ebp + eax - 0x168]
movzx edx, byte [ebp - 0x61]
add edx, ecx
mov byte [ebp - 0x61], dl
mov al, byte [ebp - 0x17b]
add al, 1
mov byte [ebp - 0x17b], al
movzx ecx, byte [ebp - 0x61]
movzx edx, byte [ebp - 0x51]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x171]
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x17b]
movzx edx, byte [ebp - 0x171]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + edx - 0x168], al
movzx ecx, byte [ebp - 0x17b]
mov dl, byte [ebp - 0x1d5]
mov byte [ebp + ecx - 0x168], dl
movzx eax, byte [ebp - 0x1d5]
movzx ecx, byte [ebp + eax - 0x168]
movzx edx, byte [ebp - 0x169]
add edx, ecx
mov byte [ebp - 0x169], dl
movzx eax, byte [ebp - 0x1a5]
movzx ecx, byte [ebp - 0x61]
movzx edx, byte [ebp + ecx - 0x168]
movzx ecx, byte [ebp - 0x17b]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x168]
xor eax, edx
movzx ecx, byte [ebp - 0x171]
movzx edx, byte [ebp + ecx - 0x168]
movzx ecx, byte [ebp - 0x51]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
movzx ecx, byte [ebp - 0x169]
movzx ecx, byte [ebp + ecx - 0x168]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x168]
movzx ecx, byte [ebp + edx - 0x168]
xor eax, ecx
mov byte [ebp - 0x171], al
mov dl, byte [ebp - 0x1a5]
mov byte [ebp - 0x51], dl
mov al, byte [ebp - 0x171]
mov byte [ebp - 0x1c5], al
cmp dword [ebp - 0x1bc], 0
jle 0x4a769b
movsx cx, byte [ebp - 0x1c5]
mov edx, dword [ebp - 0x1bc]
mov word [ebp + edx*2 - 0x4a], cx
xor eax, eax
mov word [ebp - 0x14], ax
jmp 0x4a76d6
mov dword [ebp - 0x240], 0
jmp 0x4a76be
mov ecx, dword [ebp - 0x240]
add ecx, 1
mov dword [ebp - 0x240], ecx
cmp dword [ebp - 0x240], 0x1b
jge 0x4a76d6
xor edx, edx
mov eax, dword [ebp - 0x240]
mov word [ebp + eax*2 - 0x48], dx
jmp 0x4a76af
call fcn.0095c70d
cdq
mov ecx, 0x1a
idiv ecx
mov ax, word [ebp + edx*2 - 0x48]
mov esp, ebp
pop ebp
ret