Function at 0x4b3d80
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30c
mov dword [ebp - 0x2c8], ecx
call fcn.00967ded
cdq
mov ecx, 0x1a
idiv ecx
mov dword [ebp - 0x1c], edx
call fcn.00967ded
cdq
mov ecx, 0x1a
idiv ecx
mov dword [ebp - 4], edx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x2c8]
call fcn.004af530
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
fldz
fstp qword [ebp - 0x18]
fldz
fstp qword [ebp - 0x10]
fldz
fstp qword [ebp - 0x10]
jmp 0x4b3df0
fld qword [ebp - 0x10]
fadd qword [0x9d1388]
fstp qword [ebp - 0x10]
fld qword [0x9d4030]
fcomp qword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x4b3e4f
popfd
add ah, bl
pop ebp
invalid
fld qword [0x9d4028]
add eax, 0x9d4028
fmul qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fld qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fsubp st(1)
fld qword [0x9d4020]
fmul qword [ebp - 0x10]
fmul qword [ebp - 0x10]
fadd qword [0x9d4018]
fdivp st(1)
fadd qword [ebp - 0x18]
fstp qword [ebp - 0x18]
fld qword [0x9d4010]
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 5
jp 0x4b3e4d
jmp 0x406b43f5
fld qword [0x9d4008]
fmul qword [ebp - 0x10]
fsubr qword [ebp - 0x18]
fstp qword [ebp - 0x18]
jmp 0x4b3de4
fldz
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 0x41
jne 0x4b3eb6
jge 0x4b3df4
xchg dword [ebp - 0x647f6577], edx
and dword [eax - 0x667b647d], 0x7e
wait
jle 0x4b3e01
xchg dword [edi - 0x6d765e85], edx
jle 0x4b3e13
mov dl, byte [esi - 0x687f697c]
xchg byte [ebx - 0x6c766b82], dl
adc byte [ebp - 0x5e836782], 0x88
mov al, byte [0x94819985]
adc dword [ebx + 0x3c5a9581], 0x6d6e5429
inc esi
sub eax, 0x665c3173
imul esp, dword cs:[ebx], 0x5470614e
sub byte [eax + 0x71], bl
xor byte [ecx + 0x27], bl
and edi, dword [0xe967667b]
invalid
mov dword [ebp - 0x60], 0x4b3e5b
mov dword [ebp - 0x5c], 0x4b3e91
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x68], edx
mov byte [ebp - 0x189], 0x24
mov dword [ebp - 0x180], 0
jmp 0x4b3ef2
mov eax, dword [ebp - 0x180]
add eax, 1
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0x100
jae 0x4b3f13
mov ecx, dword [ebp - 0x180]
mov dl, byte [ebp - 0x180]
mov byte [ebp + ecx - 0x178], dl
jmp 0x4b3ee3
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x18a], 0
mov dword [ebp - 0x180], 0xff
jmp 0x4b3f3c
mov eax, dword [ebp - 0x180]
sub eax, 1
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0
jbe 0x4b4233
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x198], 1
mov ecx, dword [ebp - 0x198]
cmp ecx, dword [ebp - 0x180]
jae 0x4b3f7d
mov edx, dword [ebp - 0x198]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x198], eax
jmp 0x4b3f5d
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x2cc], ecx
cmp dword [ebp - 0x2cc], 3
ja case.default.0x4b3f99
mov edx, dword [ebp - 0x2cc]
jmp dword [edx*4 + 0x4b6400]
movzx eax, byte [ebp - 0x18a]
movzx ecx, byte [ebp + eax - 0x178]
fld qword [ebp - 0x18]
fnstcw word [ebp - 0x2ce]
movzx eax, word [ebp - 0x2ce]
or eax, 0xc00
mov dword [ebp - 0x2d4], eax
fldcw word [ebp - 0x2d4]
fistp qword [ebp - 0x2dc]
fldcw word [ebp - 0x2ce]
mov edx, dword [ebp - 0x2dc]
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x18a], cl
jmp 0x4b4118
movzx eax, byte [ebp - 0x18a]
movzx ecx, byte [ebp + eax - 0x178]
fld qword [ebp - 0x18]
fnstcw word [ebp - 0x2de]
movzx eax, word [ebp - 0x2de]
or eax, 0xc00
mov dword [ebp - 0x2e4], eax
fldcw word [ebp - 0x2e4]
fistp qword [ebp - 0x2ec]
fldcw word [ebp - 0x2de]
mov edx, dword [ebp - 0x2ec]
shr edx, 8
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x18a], cl
jmp 0x4b4118
movzx eax, byte [ebp - 0x18a]
movzx ecx, byte [ebp + eax - 0x178]
fld qword [ebp - 0x18]
fnstcw word [ebp - 0x2ee]
movzx eax, word [ebp - 0x2ee]
or eax, 0xc00
mov dword [ebp - 0x2f4], eax
fldcw word [ebp - 0x2f4]
fistp qword [ebp - 0x2fc]
fldcw word [ebp - 0x2ee]
mov edx, dword [ebp - 0x2fc]
shr edx, 0x10
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x18a], cl
jmp 0x4b4118
movzx eax, byte [ebp - 0x18a]
movzx ecx, byte [ebp + eax - 0x178]
fld qword [ebp - 0x18]
fnstcw word [ebp - 0x2fe]
movzx eax, word [ebp - 0x2fe]
or eax, 0xc00
mov dword [ebp - 0x304], eax
fldcw word [ebp - 0x304]
fistp qword [ebp - 0x30c]
fldcw word [ebp - 0x2fe]
mov edx, dword [ebp - 0x30c]
shr edx, 0x18
and edx, 0xff
add ecx, edx
mov byte [ebp - 0x18a], cl
jmp 0x4b4118
movzx eax, byte [ebp - 0x18a]
movzx ecx, byte [ebp + eax - 0x178]
mov edx, dword [ebp - 0x68]
add edx, dword [ebp - 0x70]
movzx eax, byte [edx - 4]
add ecx, eax
mov byte [ebp - 0x18a], cl
mov ecx, dword [ebp - 0x70]
add ecx, 1
mov dword [ebp - 0x70], ecx
movzx edx, byte [ebp - 0x189]
cmp dword [ebp - 0x70], edx
jb 0x4b414a
mov dword [ebp - 0x70], 0
movzx eax, byte [ebp - 0x189]
movzx ecx, byte [ebp - 0x18a]
add ecx, eax
mov byte [ebp - 0x18a], cl
movzx edx, byte [ebp - 0x18a]
and edx, dword [ebp - 0x198]
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x190]
add eax, 1
mov dword [ebp - 0x190], eax
cmp dword [ebp - 0x190], 0xb
jbe 0x4b4189
mov eax, dword [ebp - 0x194]
xor edx, edx
div dword [ebp - 0x180]
mov dword [ebp - 0x194], edx
mov ecx, dword [ebp - 0x194]
cmp ecx, dword [ebp - 0x180]
ja 0x4b3f7d
mov edx, dword [ebp - 0x180]
cmp edx, dword [ebp - 0x194]
je 0x4b422e
mov eax, dword [ebp - 0x194]
movzx ecx, byte [ebp + eax - 0x178]
mov edx, dword [ebp - 0x180]
movzx eax, byte [ebp + edx - 0x178]
xor eax, ecx
mov ecx, dword [ebp - 0x180]
mov byte [ebp + ecx - 0x178], al
mov edx, dword [ebp - 0x180]
movzx eax, byte [ebp + edx - 0x178]
mov ecx, dword [ebp - 0x194]
movzx edx, byte [ebp + ecx - 0x178]
xor edx, eax
mov eax, dword [ebp - 0x194]
mov byte [ebp + eax - 0x178], dl
mov ecx, dword [ebp - 0x194]
movzx edx, byte [ebp + ecx - 0x178]
mov eax, dword [ebp - 0x180]
movzx ecx, byte [ebp + eax - 0x178]
xor ecx, edx
mov edx, dword [ebp - 0x180]
mov byte [ebp + edx - 0x178], cl
jmp 0x4b3f2d
mov al, byte [ebp - 0x177]
mov byte [ebp - 0x18b], al
mov cl, byte [ebp - 0x175]
mov byte [ebp - 0x71], cl
mov dl, byte [ebp - 0x173]
mov byte [ebp - 0x179], dl
mov al, byte [ebp - 0x171]
mov byte [ebp - 0x181], al
movzx ecx, byte [ebp - 0x18a]
mov dl, byte [ebp + ecx - 0x178]
mov byte [ebp - 0x61], dl
mov dword [ebp - 0x188], 0x36
cmp dword [ebp - 0x188], 2
jle 0x4b6392
mov eax, dword [ebp - 0x188]
and eax, 1
jne 0x4b6392
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x240], 0
fld qword [0x9d4000]
fstp qword [ebp - 0x2a0]
fld qword [0x9d3ff8]
fstp qword [ebp - 0x250]
fld qword [0x9d3ff0]
fstp qword [ebp - 0x208]
fld qword [0x9d3fe8]
fstp qword [ebp - 0x1d0]
fld qword [0x9d3fe0]
fstp qword [ebp - 0x220]
fld qword [0x9d3fd8]
fstp qword [ebp - 0x1e8]
fld qword [0x9d3fd0]
fstp qword [ebp - 0x1b8]
fld qword [ebp - 0x220]
fsub qword [ebp - 0x1b8]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x2a0]
fmul qword [ebp - 0x1b8]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x1e8]
fmul qword [ebp - 0x1b8]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x250]
fsub qword [ebp - 0x1b8]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x208]
fadd qword [ebp - 0x1b8]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x208]
fmul qword [ebp - 0x1b8]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x208]
fmul qword [ebp - 0x1b8]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x1b8]
fcomp qword [ebp - 0x208]
fnstsw ax
test ah, 0x41
jne 0x4b45aa
fld qword [ebp - 0x1e8]
fmul qword [ebp - 0x1b8]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x208]
fsub qword [ebp - 0x1d0]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x250]
fadd qword [ebp - 0x208]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x2a0]
fadd qword [ebp - 0x250]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x2a0]
fmul qword [ebp - 0x250]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x1e8]
fadd qword [ebp - 0x1b8]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x1b8]
fdiv qword [ebp - 0x2a0]
fstp qword [ebp - 0x1b8]
fld qword [ebp - 0x2a0]
fadd qword [ebp - 0x208]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x1d0]
fadd qword [ebp - 0x1e8]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x1e8]
fmul qword [ebp - 0x2a0]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x1e8]
fmul qword [ebp - 0x2a0]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x2a0]
fdiv qword [ebp - 0x208]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x1e8]
fsub qword [ebp - 0x2a0]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x220]
fadd qword [ebp - 0x1b8]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x2a0]
fcomp qword [ebp - 0x1e8]
fnstsw ax
test ah, 0x41
jne 0x4b4527
fld qword [ebp - 0x1e8]
fdiv qword [ebp - 0x2a0]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x1e8]
fsub qword [ebp - 0x2a0]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x1d0]
fsub qword [ebp - 0x1e8]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x250]
fmul qword [ebp - 0x1d0]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x250]
fmul qword [ebp - 0x1d0]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x2a0]
fadd qword [ebp - 0x208]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x2a0]
fmul qword [ebp - 0x208]
fstp qword [ebp - 0x2a0]
jmp 0x4b45a5
fld qword [ebp - 0x1b8]
fdiv qword [ebp - 0x2a0]
fstp qword [ebp - 0x1b8]
fld qword [ebp - 0x1e8]
fdiv qword [ebp - 0x1b8]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x220]
fsub qword [ebp - 0x1e8]
fstp qword [ebp - 0x220]
fld qword [ebp - 0x1e8]
fdiv qword [ebp - 0x1b8]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x1d0]
fsub qword [ebp - 0x220]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x2a0]
fmul qword [ebp - 0x250]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x1b8]
fdiv qword [ebp - 0x2a0]
fstp qword [ebp - 0x1b8]
jmp 0x4b4637
fld qword [ebp - 0x1e8]
fadd qword [ebp - 0x2a0]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x250]
fsub qword [ebp - 0x1d0]
fstp qword [ebp - 0x250]
fld qword [ebp - 0x1d0]
fsub qword [ebp - 0x1e8]
fstp qword [ebp - 0x1d0]
fld qword [ebp - 0x208]
fmul qword [ebp - 0x220]
fstp qword [ebp - 0x208]
fld qword [ebp - 0x2a0]
fsub qword [ebp - 0x208]
fstp qword [ebp - 0x2a0]
fld qword [ebp - 0x1e8]
fadd qword [ebp - 0x2a0]
fstp qword [ebp - 0x1e8]
fld qword [ebp - 0x1e8]
fsub qword [ebp - 0x2a0]
fstp qword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x240]
add ecx, 1
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x19c], 0
mov edx, dword [ebp - 0x244]
shl edx, 1
mov dword [ebp - 0x19c], edx
mov dword [ebp - 0x270], 0
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x19c]
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x270]
mov dword [ebp - 0x270], ecx
mov dword [ebp - 0x1dc], 0
mov edx, dword [ebp - 0x1dc]
add edx, 0x7b
mov dword [ebp - 0x1dc], edx
mov dword [ebp - 0x20c], 0
mov eax, dword [ebp - 0x244]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x20c], ecx
mov dword [ebp - 0x298], 0
mov edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x20c]
movzx eax, byte [edx]
add eax, dword [ebp - 0x298]
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x26c], 0
mov ecx, dword [ebp - 0x26c]
add ecx, 0x92
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0x294], 0
mov edx, dword [ebp - 0x270]
sub edx, dword [ebp - 0x1dc]
add edx, dword [ebp - 0x294]
mov dword [ebp - 0x294], edx
mov dword [ebp - 0x1ac], 0
mov eax, dword [ebp - 0x298]
sub eax, dword [ebp - 0x26c]
add eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x290], 0
mov ecx, dword [ebp - 0x294]
shl ecx, 4
mov dword [ebp - 0x290], ecx
mov dword [ebp - 0x268], 0
mov edx, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], edx
mov dword [ebp - 0x23c], 0
mov eax, dword [ebp - 0x290]
or eax, dword [ebp - 0x268]
mov dword [ebp - 0x23c], eax
mov byte [ebp - 0x1f9], 0
mov cl, byte [ebp - 0x23c]
mov byte [ebp - 0x1f9], cl
mov byte [ebp - 0x289], 0
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + edx - 0x178]
mov byte [ebp - 0x289], al
movzx ecx, byte [ebp - 0x18b]
movzx edx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp - 0x71]
add eax, edx
mov byte [ebp - 0x71], al
mov cl, byte [ebp - 0x18b]
add cl, 1
mov byte [ebp - 0x18b], cl
movzx edx, byte [ebp - 0x71]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x181]
movzx eax, byte [ebp - 0x71]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x18b]
movzx eax, byte [ebp - 0x181]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x18b]
mov al, byte [ebp - 0x289]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x289]
movzx edx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp - 0x179]
add eax, edx
mov byte [ebp - 0x179], al
movzx ecx, byte [ebp - 0x1f9]
movzx edx, byte [ebp - 0x71]
movzx eax, byte [ebp + edx - 0x178]
movzx edx, byte [ebp - 0x18b]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x178]
xor ecx, eax
movzx edx, byte [ebp - 0x181]
movzx eax, byte [ebp + edx - 0x178]
movzx edx, byte [ebp - 0x61]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
movzx edx, byte [ebp - 0x179]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x178]
movzx edx, byte [ebp + eax - 0x178]
xor ecx, edx
mov byte [ebp - 0x181], cl
mov al, byte [ebp - 0x1f9]
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x181]
mov byte [ebp - 0x261], cl
cmp dword [ebp - 0x244], 0
jle 0x4b48ef
movsx dx, byte [ebp - 0x261]
mov eax, dword [ebp - 0x244]
mov word [ebp + eax*2 - 0x5a], dx
mov ecx, dword [ebp - 0x244]
add ecx, 1
mov dword [ebp - 0x244], ecx
mov edx, dword [ebp - 0x240]
add edx, 1
mov dword [ebp - 0x240], edx
mov eax, dword [ebp - 0x244]
shl eax, 1
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0x19c]
movzx edx, byte [ecx]
mov dword [ebp - 0x270], edx
mov dword [ebp - 0x1dc], 0x7b
mov eax, dword [ebp - 0x244]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x20c], ecx
mov edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x20c]
movzx eax, byte [edx]
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x26c], 0x92
mov ecx, dword [ebp - 0x270]
sub ecx, dword [ebp - 0x1dc]
mov dword [ebp - 0x294], ecx
mov edx, dword [ebp - 0x298]
sub edx, dword [ebp - 0x26c]
mov dword [ebp - 0x1ac], edx
mov eax, dword [ebp - 0x294]
shl eax, 4
mov dword [ebp - 0x290], eax
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], ecx
mov edx, dword [ebp - 0x290]
or edx, dword [ebp - 0x268]
mov dword [ebp - 0x23c], edx
mov al, byte [ebp - 0x23c]
mov byte [ebp - 0x1f9], al
movzx ecx, byte [ebp - 0x61]
mov dl, byte [ebp + ecx - 0x178]
mov byte [ebp - 0x289], dl
movzx eax, byte [ebp - 0x18b]
movzx ecx, byte [ebp + eax - 0x178]
movzx edx, byte [ebp - 0x71]
add edx, ecx
mov byte [ebp - 0x71], dl
mov al, byte [ebp - 0x18b]
add al, 1
mov byte [ebp - 0x18b], al
movzx ecx, byte [ebp - 0x71]
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + ecx - 0x178]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x181]
movzx edx, byte [ebp - 0x71]
mov al, byte [ebp + ecx - 0x178]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x18b]
movzx edx, byte [ebp - 0x181]
mov al, byte [ebp + ecx - 0x178]
mov byte [ebp + edx - 0x178], al
fld qword [0x9d3fc8]
fstp qword [ebp - 0x260]
fld qword [0x9d3fc0]
fstp qword [ebp - 0x218]
fld qword [0x9d3fb8]
fstp qword [ebp - 0x1d8]
fld qword [0x9d3fb0]
fstp qword [ebp - 0x1a8]
fld qword [0x9d3fa8]
fstp qword [ebp - 0x258]
fld qword [ebp - 0x260]
fmul qword [ebp - 0x258]
fstp qword [ebp - 0x260]
fld qword [ebp - 0x1d8]
fsub qword [ebp - 0x258]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x218]
fadd qword [ebp - 0x258]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x260]
fmul qword [ebp - 0x258]
fstp qword [ebp - 0x260]
fld qword [ebp - 0x218]
fsub qword [ebp - 0x258]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x260]
fcomp qword [ebp - 0x258]
fnstsw ax
test ah, 5
jp 0x4b4c6e
fld qword [ebp - 0x258]
fsub qword [ebp - 0x218]
fstp qword [ebp - 0x258]
fld qword [ebp - 0x218]
fadd qword [ebp - 0x1a8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x260]
fdiv qword [ebp - 0x1d8]
fstp qword [ebp - 0x260]
fld qword [ebp - 0x1d8]
fadd qword [ebp - 0x258]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x258]
fsub qword [ebp - 0x218]
fstp qword [ebp - 0x258]
fld qword [ebp - 0x260]
fadd qword [ebp - 0x218]
fstp qword [ebp - 0x260]
fld qword [ebp - 0x1d8]
fmul qword [ebp - 0x1a8]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x1a8]
fsub qword [ebp - 0x258]
fstp qword [ebp - 0x1a8]
fld qword [ebp - 0x1a8]
fsub qword [ebp - 0x258]
fstp qword [ebp - 0x1a8]
fld qword [ebp - 0x258]
fadd qword [ebp - 0x260]
fstp qword [ebp - 0x258]
fld qword [ebp - 0x1d8]
fcomp qword [ebp - 0x260]
fnstsw ax
test ah, 0x41
jne 0x4b4c12
fld qword [ebp - 0x258]
fadd qword [ebp - 0x218]
fstp qword [ebp - 0x258]
fld qword [ebp - 0x218]
fmul qword [ebp - 0x1a8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x1a8]
fsub qword [ebp - 0x260]
fstp qword [ebp - 0x1a8]
fld qword [ebp - 0x218]
fsub qword [ebp - 0x1a8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x218]
fadd qword [ebp - 0x1a8]
fstp qword [ebp - 0x218]
jmp 0x4b4c6c
fld qword [ebp - 0x260]
fmul qword [ebp - 0x218]
fstp qword [ebp - 0x260]
fld qword [ebp - 0x1d8]
fsub qword [ebp - 0x1a8]
fstp qword [ebp - 0x1d8]
fld qword [ebp - 0x1a8]
fdiv qword [ebp - 0x258]
fstp qword [ebp - 0x1a8]
fld qword [ebp - 0x218]
fadd qword [ebp - 0x1d8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x1d8]
fmul qword [ebp - 0x1a8]
fstp qword [ebp - 0x1d8]
jmp 0x4b4cdc
fld qword [ebp - 0x218]
fsub qword [ebp - 0x1a8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x260]
fadd qword [ebp - 0x1d8]
fstp qword [ebp - 0x260]
fld qword [ebp - 0x218]
fmul qword [ebp - 0x1a8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x218]
fadd qword [ebp - 0x1a8]
fstp qword [ebp - 0x218]
fld qword [ebp - 0x1a8]
fadd qword [ebp - 0x260]
fstp qword [ebp - 0x1a8]
movzx ecx, byte [ebp - 0x18b]
mov dl, byte [ebp - 0x289]
mov byte [ebp + ecx - 0x178], dl
movzx eax, byte [ebp - 0x289]
movzx ecx, byte [ebp + eax - 0x178]
movzx edx, byte [ebp - 0x179]
add edx, ecx
mov byte [ebp - 0x179], dl
movzx eax, byte [ebp - 0x1f9]
movzx ecx, byte [ebp - 0x71]
movzx edx, byte [ebp + ecx - 0x178]
movzx ecx, byte [ebp - 0x18b]
movzx ecx, byte [ebp + ecx - 0x178]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x178]
xor eax, edx
movzx ecx, byte [ebp - 0x181]
movzx edx, byte [ebp + ecx - 0x178]
movzx ecx, byte [ebp - 0x61]
movzx ecx, byte [ebp + ecx - 0x178]
add edx, ecx
movzx ecx, byte [ebp - 0x179]
movzx ecx, byte [ebp + ecx - 0x178]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x178]
movzx ecx, byte [ebp + edx - 0x178]
xor eax, ecx
mov byte [ebp - 0x181], al
mov dl, byte [ebp - 0x1f9]
mov byte [ebp - 0x61], dl
mov al, byte [ebp - 0x181]
mov byte [ebp - 0x261], al
cmp dword [ebp - 0x244], 0
jle 0x4b4dab
movsx cx, byte [ebp - 0x261]
mov edx, dword [ebp - 0x244]
mov word [ebp + edx*2 - 0x5a], cx
mov eax, dword [ebp - 0x244]
add eax, 1
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x240]
add ecx, 1
mov dword [ebp - 0x240], ecx
mov edx, dword [ebp - 0x244]
shl edx, 1
mov dword [ebp - 0x19c], edx
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x19c]
movzx ecx, byte [eax]
mov dword [ebp - 0x270], ecx
mov dword [ebp - 0x1dc], 0x7b
mov edx, dword [ebp - 0x244]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x20c], eax
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0x20c]
movzx edx, byte [ecx]
mov dword [ebp - 0x298], edx
mov dword [ebp - 0x26c], 0x92
mov eax, dword [ebp - 0x270]
sub eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x294], eax
mov ecx, dword [ebp - 0x298]
sub ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x1ac], ecx
mov edx, dword [ebp - 0x294]
shl edx, 4
mov dword [ebp - 0x290], edx
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], eax
mov ecx, dword [ebp - 0x290]
or ecx, dword [ebp - 0x268]
mov dword [ebp - 0x23c], ecx
mov dl, byte [ebp - 0x23c]
mov byte [ebp - 0x1f9], dl
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + eax - 0x178]
mov byte [ebp - 0x289], cl
movzx edx, byte [ebp - 0x18b]
movzx eax, byte [ebp + edx - 0x178]
movzx ecx, byte [ebp - 0x71]
add ecx, eax
mov byte [ebp - 0x71], cl
mov dl, byte [ebp - 0x18b]
add dl, 1
mov byte [ebp - 0x18b], dl
movzx eax, byte [ebp - 0x71]
movzx ecx, byte [ebp - 0x61]
mov dl, byte [ebp + eax - 0x178]
mov byte [ebp + ecx - 0x178], dl
movzx eax, byte [ebp - 0x181]
movzx ecx, byte [ebp - 0x71]
mov dl, byte [ebp + eax - 0x178]
mov byte [ebp + ecx - 0x178], dl
movzx eax, byte [ebp - 0x18b]
movzx ecx, byte [ebp - 0x181]
mov dl, byte [ebp + eax - 0x178]
mov byte [ebp + ecx - 0x178], dl
movzx eax, byte [ebp - 0x18b]
mov cl, byte [ebp - 0x289]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x289]
movzx eax, byte [ebp + edx - 0x178]
movzx ecx, byte [ebp - 0x179]
add ecx, eax
mov byte [ebp - 0x179], cl
movzx edx, byte [ebp - 0x1f9]
movzx eax, byte [ebp - 0x71]
movzx ecx, byte [ebp + eax - 0x178]
movzx eax, byte [ebp - 0x18b]
movzx eax, byte [ebp + eax - 0x178]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x178]
xor edx, ecx
movzx eax, byte [ebp - 0x181]
movzx ecx, byte [ebp + eax - 0x178]
movzx eax, byte [ebp - 0x61]
movzx eax, byte [ebp + eax - 0x178]
add ecx, eax
movzx eax, byte [ebp - 0x179]
movzx eax, byte [ebp + eax - 0x178]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp + ecx - 0x178]
xor edx, eax
mov byte [ebp - 0x181], dl
mov cl, byte [ebp - 0x1f9]
mov byte [ebp - 0x61], cl
mov dl, byte [ebp - 0x181]
mov byte [ebp - 0x261], dl
cmp dword [ebp - 0x244], 0
jle 0x4b4fe2
movsx ax, byte [ebp - 0x261]
mov ecx, dword [ebp - 0x244]
mov word [ebp + ecx*2 - 0x5a], ax
mov edx, dword [ebp - 0x240]
add edx, 0xa
mov dword [ebp - 0x240], edx
mov eax, dword [ebp - 0x244]
add eax, 1
mov dword [ebp - 0x2a4], eax
jmp 0x4b5011
mov ecx, dword [ebp - 0x2a4]
add ecx, 1
mov dword [ebp - 0x2a4], ecx
mov edx, dword [ebp - 0x2a4]
cmp edx, dword [ebp - 0x240]
jge 0x4b524e
mov eax, dword [ebp - 0x244]
add eax, 1
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x244]
shl ecx, 1
mov dword [ebp - 0x19c], ecx
mov edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x19c]
movzx eax, byte [edx]
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x1dc], 0x7b
mov ecx, dword [ebp - 0x244]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x20c]
movzx ecx, byte [eax]
mov dword [ebp - 0x298], ecx
mov dword [ebp - 0x26c], 0x92
mov edx, dword [ebp - 0x270]
sub edx, dword [ebp - 0x1dc]
mov dword [ebp - 0x294], edx
mov eax, dword [ebp - 0x298]
sub eax, dword [ebp - 0x26c]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x294]
shl ecx, 4
mov dword [ebp - 0x290], ecx
mov edx, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], edx
mov eax, dword [ebp - 0x290]
or eax, dword [ebp - 0x268]
mov dword [ebp - 0x23c], eax
mov cl, byte [ebp - 0x23c]
mov byte [ebp - 0x1f9], cl
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + edx - 0x178]
mov byte [ebp - 0x289], al
movzx ecx, byte [ebp - 0x18b]
movzx edx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp - 0x71]
add eax, edx
mov byte [ebp - 0x71], al
mov cl, byte [ebp - 0x18b]
add cl, 1
mov byte [ebp - 0x18b], cl
movzx edx, byte [ebp - 0x71]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x181]
movzx eax, byte [ebp - 0x71]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x18b]
movzx eax, byte [ebp - 0x181]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x18b]
mov al, byte [ebp - 0x289]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x289]
movzx edx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp - 0x179]
add eax, edx
mov byte [ebp - 0x179], al
movzx ecx, byte [ebp - 0x1f9]
movzx edx, byte [ebp - 0x71]
movzx eax, byte [ebp + edx - 0x178]
movzx edx, byte [ebp - 0x18b]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x178]
xor ecx, eax
movzx edx, byte [ebp - 0x181]
movzx eax, byte [ebp + edx - 0x178]
movzx edx, byte [ebp - 0x61]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
movzx edx, byte [ebp - 0x179]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x178]
movzx edx, byte [ebp + eax - 0x178]
xor ecx, edx
mov byte [ebp - 0x181], cl
mov al, byte [ebp - 0x1f9]
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x181]
mov byte [ebp - 0x261], cl
cmp dword [ebp - 0x244], 0
jle 0x4b5249
movsx dx, byte [ebp - 0x261]
mov eax, dword [ebp - 0x244]
mov word [ebp + eax*2 - 0x5a], dx
jmp 0x4b5002
mov ecx, dword [ebp - 0x240]
add ecx, 1
mov dword [ebp - 0x240], ecx
mov edx, dword [ebp - 0x240]
add edx, 0xb
mov dword [ebp - 0x240], edx
mov eax, dword [ebp - 0x244]
add eax, 1
mov dword [ebp - 0x2a8], eax
jmp 0x4b528c
mov ecx, dword [ebp - 0x2a8]
add ecx, 1
mov dword [ebp - 0x2a8], ecx
mov edx, dword [ebp - 0x2a8]
cmp edx, dword [ebp - 0x240]
jge 0x4b57cb
mov eax, dword [ebp - 0x244]
add eax, 1
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x244]
shl ecx, 1
mov dword [ebp - 0x19c], ecx
mov edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x19c]
movzx eax, byte [edx]
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x1dc], 0x7b
mov ecx, dword [ebp - 0x244]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x20c]
movzx ecx, byte [eax]
mov dword [ebp - 0x298], ecx
mov dword [ebp - 0x26c], 0x92
mov edx, dword [ebp - 0x270]
sub edx, dword [ebp - 0x1dc]
mov dword [ebp - 0x294], edx
fld dword [0x9d3fa4]
fstp dword [ebp - 0x2b8]
fld dword [0x9d3fa0]
fstp dword [ebp - 0x2b0]
fld dword [0x9d3f9c]
fstp dword [ebp - 0x2c0]
fld dword [0x9d3f98]
fstp dword [ebp - 0x2bc]
fld dword [0x9d3f94]
fstp dword [ebp - 0x2b4]
fld dword [0x9d3f90]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2b0]
fsub dword [ebp - 0x2ac]
fstp dword [ebp - 0x2b0]
fld dword [ebp - 0x2bc]
fadd dword [ebp - 0x2ac]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2bc]
fsub dword [ebp - 0x2ac]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2b0]
fadd dword [ebp - 0x2ac]
fstp dword [ebp - 0x2b0]
fld dword [ebp - 0x2bc]
fadd dword [ebp - 0x2ac]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2bc]
fmul dword [ebp - 0x2ac]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2bc]
fld dword [ebp - 0x2ac]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4b55ab
fld dword [ebp - 0x2b0]
fdiv dword [ebp - 0x2c0]
fstp dword [ebp - 0x2b0]
fld dword [ebp - 0x2bc]
fdiv dword [ebp - 0x2b4]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2b8]
fmul dword [ebp - 0x2b0]
fstp dword [ebp - 0x2b8]
fld dword [ebp - 0x2bc]
fsub dword [ebp - 0x2b4]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2b0]
fsub dword [ebp - 0x2c0]
fstp dword [ebp - 0x2b0]
fld dword [ebp - 0x2b4]
fsub dword [ebp - 0x2ac]
fstp dword [ebp - 0x2b4]
fld dword [ebp - 0x2ac]
fsub dword [ebp - 0x2b8]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2c0]
fadd dword [ebp - 0x2bc]
fstp dword [ebp - 0x2c0]
fld dword [ebp - 0x2ac]
fsub dword [ebp - 0x2b8]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2bc]
fmul dword [ebp - 0x2b4]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2b0]
fmul dword [ebp - 0x2c0]
fstp dword [ebp - 0x2b0]
fld dword [ebp - 0x2ac]
fmul dword [ebp - 0x2b8]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2b0]
fld dword [ebp - 0x2bc]
fcompp
fnstsw ax
test ah, 5
jp 0x4b553d
fld dword [ebp - 0x2b8]
fadd dword [ebp - 0x2b0]
fstp dword [ebp - 0x2b8]
fld dword [ebp - 0x2bc]
fadd dword [ebp - 0x2b4]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2bc]
fadd dword [ebp - 0x2b4]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2bc]
fmul dword [ebp - 0x2b4]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2b0]
fdiv dword [ebp - 0x2c0]
fstp dword [ebp - 0x2b0]
fld dword [ebp - 0x2c0]
fadd dword [ebp - 0x2bc]
fstp dword [ebp - 0x2c0]
jmp 0x4b55a9
fld dword [ebp - 0x2b0]
fsub dword [ebp - 0x2c0]
fstp dword [ebp - 0x2b0]
fld dword [ebp - 0x2b0]
fmul dword [ebp - 0x2c0]
fstp dword [ebp - 0x2b0]
fld dword [ebp - 0x2b4]
fadd dword [ebp - 0x2ac]
fstp dword [ebp - 0x2b4]
fld dword [ebp - 0x2b8]
fdiv dword [ebp - 0x2b0]
fstp dword [ebp - 0x2b8]
fld dword [ebp - 0x2bc]
fsub dword [ebp - 0x2b4]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2ac]
fmul dword [ebp - 0x2b8]
fstp dword [ebp - 0x2ac]
jmp 0x4b5629
fld dword [ebp - 0x2c0]
fmul dword [ebp - 0x2b4]
fstp dword [ebp - 0x2c0]
fld dword [ebp - 0x2bc]
fsub dword [ebp - 0x2ac]
fstp dword [ebp - 0x2bc]
fld dword [ebp - 0x2b4]
fsub dword [ebp - 0x2b8]
fstp dword [ebp - 0x2b4]
fld dword [ebp - 0x2b4]
fadd dword [ebp - 0x2b8]
fstp dword [ebp - 0x2b4]
fld dword [ebp - 0x2ac]
fsub dword [ebp - 0x2b0]
fstp dword [ebp - 0x2ac]
fld dword [ebp - 0x2b0]
fmul dword [ebp - 0x2bc]
fstp dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x298]
sub eax, dword [ebp - 0x26c]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x294]
shl ecx, 4
mov dword [ebp - 0x290], ecx
mov edx, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], edx
mov eax, dword [ebp - 0x290]
or eax, dword [ebp - 0x268]
mov dword [ebp - 0x23c], eax
mov cl, byte [ebp - 0x23c]
mov byte [ebp - 0x1f9], cl
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + edx - 0x178]
mov byte [ebp - 0x289], al
movzx ecx, byte [ebp - 0x18b]
movzx edx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp - 0x71]
add eax, edx
mov byte [ebp - 0x71], al
mov cl, byte [ebp - 0x18b]
add cl, 1
mov byte [ebp - 0x18b], cl
movzx edx, byte [ebp - 0x71]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x181]
movzx eax, byte [ebp - 0x71]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x18b]
movzx eax, byte [ebp - 0x181]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x18b]
mov al, byte [ebp - 0x289]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x289]
movzx edx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp - 0x179]
add eax, edx
mov byte [ebp - 0x179], al
movzx ecx, byte [ebp - 0x1f9]
movzx edx, byte [ebp - 0x71]
movzx eax, byte [ebp + edx - 0x178]
movzx edx, byte [ebp - 0x18b]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x178]
xor ecx, eax
movzx edx, byte [ebp - 0x181]
movzx eax, byte [ebp + edx - 0x178]
movzx edx, byte [ebp - 0x61]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
movzx edx, byte [ebp - 0x179]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x178]
movzx edx, byte [ebp + eax - 0x178]
xor ecx, edx
mov byte [ebp - 0x181], cl
mov al, byte [ebp - 0x1f9]
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x181]
mov byte [ebp - 0x261], cl
cmp dword [ebp - 0x244], 0
jle 0x4b57c6
movsx dx, byte [ebp - 0x261]
mov eax, dword [ebp - 0x244]
mov word [ebp + eax*2 - 0x5a], dx
jmp 0x4b527d
mov ecx, dword [ebp - 0x240]
add ecx, 1
mov dword [ebp - 0x240], ecx
mov edx, dword [ebp - 0x244]
add edx, 1
mov dword [ebp - 0x244], edx
mov eax, dword [ebp - 0x240]
add eax, 1
mov dword [ebp - 0x240], eax
mov ecx, dword [ebp - 0x244]
shl ecx, 1
mov dword [ebp - 0x19c], ecx
mov edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x19c]
movzx eax, byte [edx]
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x1dc], 0x7b
mov ecx, dword [ebp - 0x244]
lea edx, [ecx + ecx + 1]
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x20c]
movzx ecx, byte [eax]
mov dword [ebp - 0x298], ecx
mov dword [ebp - 0x26c], 0x92
mov edx, dword [ebp - 0x270]
sub edx, dword [ebp - 0x1dc]
mov dword [ebp - 0x294], edx
mov eax, dword [ebp - 0x298]
sub eax, dword [ebp - 0x26c]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x294]
shl ecx, 4
mov dword [ebp - 0x290], ecx
mov edx, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], edx
mov eax, dword [ebp - 0x290]
or eax, dword [ebp - 0x268]
mov dword [ebp - 0x23c], eax
mov cl, byte [ebp - 0x23c]
mov byte [ebp - 0x1f9], cl
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + edx - 0x178]
mov byte [ebp - 0x289], al
movzx ecx, byte [ebp - 0x18b]
movzx edx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp - 0x71]
add eax, edx
mov byte [ebp - 0x71], al
mov cl, byte [ebp - 0x18b]
add cl, 1
mov byte [ebp - 0x18b], cl
movzx edx, byte [ebp - 0x71]
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x181]
movzx eax, byte [ebp - 0x71]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x18b]
movzx eax, byte [ebp - 0x181]
mov cl, byte [ebp + edx - 0x178]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x18b]
mov al, byte [ebp - 0x289]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x289]
movzx edx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp - 0x179]
add eax, edx
mov byte [ebp - 0x179], al
movzx ecx, byte [ebp - 0x1f9]
movzx edx, byte [ebp - 0x71]
movzx eax, byte [ebp + edx - 0x178]
movzx edx, byte [ebp - 0x18b]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x178]
xor ecx, eax
movzx edx, byte [ebp - 0x181]
movzx eax, byte [ebp + edx - 0x178]
movzx edx, byte [ebp - 0x61]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
movzx edx, byte [ebp - 0x179]
movzx edx, byte [ebp + edx - 0x178]
add eax, edx
and eax, 0xff
movzx eax, byte [ebp + eax - 0x178]
movzx edx, byte [ebp + eax - 0x178]
xor ecx, edx
mov byte [ebp - 0x181], cl
mov al, byte [ebp - 0x1f9]
mov byte [ebp - 0x61], al
mov cl, byte [ebp - 0x181]
mov byte [ebp - 0x261], cl
cmp dword [ebp - 0x244], 0
jle 0x4b5a0f
movsx dx, byte [ebp - 0x261]
mov eax, dword [ebp - 0x244]
mov word [ebp + eax*2 - 0x5a], dx
mov ecx, dword [ebp - 0x244]
add ecx, 1
mov dword [ebp - 0x244], ecx
mov edx, dword [ebp - 0x240]
add edx, 1
mov dword [ebp - 0x240], edx
mov eax, dword [ebp - 0x244]
shl eax, 1
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0x19c]
movzx edx, byte [ecx]
mov dword [ebp - 0x270], edx
mov dword [ebp - 0x1dc], 0x7b
mov eax, dword [ebp - 0x244]
lea ecx, [eax + eax + 1]
mov dword [ebp - 0x20c], ecx
mov edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x20c]
movzx eax, byte [edx]
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x26c], 0x92
mov ecx, dword [ebp - 0x270]
sub ecx, dword [ebp - 0x1dc]
mov dword [ebp - 0x294], ecx
mov edx, dword [ebp - 0x298]
sub edx, dword [ebp - 0x26c]
mov dword [ebp - 0x1ac], edx
mov eax, dword [ebp - 0x294]
shl eax, 4
mov dword [ebp - 0x290], eax
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], ecx
mov edx, dword [ebp - 0x290]
or edx, dword [ebp - 0x268]
mov dword [ebp - 0x23c], edx
mov al, byte [ebp - 0x23c]
mov byte [ebp - 0x1f9], al
movzx ecx, byte [ebp - 0x61]
mov dl, byte [ebp + ecx - 0x178]
mov byte [ebp - 0x289], dl
movzx eax, byte [ebp - 0x18b]
movzx ecx, byte [ebp + eax - 0x178]
movzx edx, byte [ebp - 0x71]
add edx, ecx
mov byte [ebp - 0x71], dl
mov al, byte [ebp - 0x18b]
add al, 1
mov byte [ebp - 0x18b], al
movzx ecx, byte [ebp - 0x71]
movzx edx, byte [ebp - 0x61]
mov al, byte [ebp + ecx - 0x178]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x181]
movzx edx, byte [ebp - 0x71]
mov al, byte [ebp + ecx - 0x178]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x18b]
movzx edx, byte [ebp - 0x181]
mov al, byte [ebp + ecx - 0x178]
mov byte [ebp + edx - 0x178], al
movzx ecx, byte [ebp - 0x18b]
mov dl, byte [ebp - 0x289]
mov byte [ebp + ecx - 0x178], dl
movzx eax, byte [ebp - 0x289]
movzx ecx, byte [ebp + eax - 0x178]
movzx edx, byte [ebp - 0x179]
add edx, ecx
mov byte [ebp - 0x179], dl
movzx eax, byte [ebp - 0x1f9]
movzx ecx, byte [ebp - 0x71]
movzx edx, byte [ebp + ecx - 0x178]
movzx ecx, byte [ebp - 0x18b]
movzx ecx, byte [ebp + ecx - 0x178]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x178]
xor eax, edx
movzx ecx, byte [ebp - 0x181]
movzx edx, byte [ebp + ecx - 0x178]
movzx ecx, byte [ebp - 0x61]
movzx ecx, byte [ebp + ecx - 0x178]
add edx, ecx
movzx ecx, byte [ebp - 0x179]
movzx ecx, byte [ebp + ecx - 0x178]
add edx, ecx
and edx, 0xff
movzx edx, byte [ebp + edx - 0x178]
movzx ecx, byte [ebp + edx - 0x178]
xor eax, ecx
mov byte [ebp - 0x181], al
mov dl, byte [ebp - 0x1f9]
mov byte [ebp - 0x61], dl
mov al, byte [ebp - 0x181]
mov byte [ebp - 0x261], al
cmp dword [ebp - 0x244], 0
jle 0x4b5c45
movsx cx, byte [ebp - 0x261]
mov edx, dword [ebp - 0x244]
mov word [ebp + edx*2 - 0x5a], cx
mov eax, dword [ebp - 0x244]
add eax, 1
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x240]
add ecx, 1
mov dword [ebp - 0x240], ecx
fld qword [0x9d3f88]
fstp qword [ebp - 0x288]
fld qword [0x9d3f80]
fstp qword [ebp - 0x238]
fld qword [0x9d3f78]
fstp qword [ebp - 0x1f8]
fld qword [0x9d3f70]
fstp qword [ebp - 0x1c8]
fld qword [0x9d3f68]
fstp qword [ebp - 0x280]
fld qword [0x9d3f60]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x1c8]
fsub qword [ebp - 0x230]
fstp qword [ebp - 0x1c8]
fld qword [ebp - 0x288]
fmul qword [ebp - 0x230]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x288]
fsub qword [ebp - 0x230]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x1f8]
fmul qword [ebp - 0x230]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x1f8]
fmul qword [ebp - 0x230]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x288]
fadd qword [ebp - 0x230]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x230]
fcomp qword [ebp - 0x1f8]
fnstsw ax
test ah, 5
jp 0x4b5da9
fld qword [ebp - 0x1f8]
fmul qword [ebp - 0x280]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x280]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x1f8]
fadd qword [ebp - 0x280]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x230]
fmul qword [ebp - 0x238]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x288]
fmul qword [ebp - 0x1f8]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x280]
fadd qword [ebp - 0x288]
fstp qword [ebp - 0x280]
mov edx, dword [ebp - 0x244]
shl edx, 1
mov dword [ebp - 0x19c], edx
jmp 0x4b5f6e
fld qword [ebp - 0x238]
fsub qword [ebp - 0x1c8]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x1c8]
fadd qword [ebp - 0x230]
fstp qword [ebp - 0x1c8]
fld qword [ebp - 0x1f8]
fadd qword [ebp - 0x280]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x238]
fmul qword [ebp - 0x1c8]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x1c8]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x230]
fadd qword [ebp - 0x238]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x230]
fsub qword [ebp - 0x238]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x230]
fmul qword [ebp - 0x238]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x280]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x1c8]
fdiv qword [ebp - 0x230]
fstp qword [ebp - 0x1c8]
fld qword [ebp - 0x1c8]
fsub qword [ebp - 0x230]
fstp qword [ebp - 0x1c8]
fld qword [ebp - 0x230]
fadd qword [ebp - 0x238]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x230]
fcomp qword [ebp - 0x1c8]
fnstsw ax
test ah, 5
jp 0x4b5f02
fld qword [ebp - 0x1f8]
fadd qword [ebp - 0x1c8]
fstp qword [ebp - 0x1f8]
fld qword [ebp - 0x280]
fmul qword [ebp - 0x230]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x238]
fmul qword [ebp - 0x1f8]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x230]
fdiv qword [ebp - 0x288]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x238]
fsub qword [ebp - 0x1f8]
fstp qword [ebp - 0x238]
fld qword [ebp - 0x230]
fdiv qword [ebp - 0x288]
fstp qword [ebp - 0x230]
jmp 0x4b5f6e
fld qword [ebp - 0x230]
fsub qword [ebp - 0x288]
fstp qword [ebp - 0x230]
fld qword [ebp - 0x280]
fadd qword [ebp - 0x230]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x288]
fsub qword [ebp - 0x238]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x280]
fmul qword [ebp - 0x230]
fstp qword [ebp - 0x280]
fld qword [ebp - 0x288]
fmul qword [ebp - 0x238]
fstp qword [ebp - 0x288]
fld qword [ebp - 0x288]
fmul qword [ebp - 0x238]
fstp qword [ebp - 0x288]
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x19c]
movzx ecx, byte [eax]
mov dword [ebp - 0x270], ecx
mov dword [ebp - 0x1dc], 0x7b
mov edx, dword [ebp - 0x244]
lea eax, [edx + edx + 1]
mov dword [ebp - 0x20c], eax
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0x20c]
movzx edx, byte [ecx]
mov dword [ebp - 0x298], edx
mov dword [ebp - 0x26c], 0x92
mov eax, dword [ebp - 0x270]
sub eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x294], eax
mov ecx, dword [ebp - 0x298]
sub ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x1ac], ecx
mov edx, dword [ebp - 0x294]
shl edx, 4
mov dword [ebp - 0x290], edx
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], eax
mov ecx, dword [ebp - 0x290]
or ecx, dword [ebp - 0x268]
mov dword [ebp - 0x23c], ecx
mov dl, byte [ebp - 0x23c]
mov byte [ebp - 0x1f9], dl
movzx eax, byte [ebp - 0x61]
mov cl, byte [ebp + eax - 0x178]
mov byte [ebp - 0x289], cl
movzx edx, byte [ebp - 0x18b]
movzx eax, byte [ebp + edx - 0x178]
movzx ecx, byte [ebp - 0x71]
add ecx, eax
mov byte [ebp - 0x71], cl
mov dl, byte [ebp - 0x18b]
add dl, 1
mov byte [ebp - 0x18b], dl
movzx eax, byte [ebp - 0x71]
movzx ecx, byte [ebp - 0x61]
mov dl, byte [ebp + eax - 0x178]
mov byte [ebp + ecx - 0x178], dl
movzx eax, byte [ebp - 0x181]
movzx ecx, byte [ebp - 0x71]
mov dl, byte [ebp + eax - 0x178]
mov byte [ebp + ecx - 0x178], dl
movzx eax, byte [ebp - 0x18b]
movzx ecx, byte [ebp - 0x181]
mov dl, byte [ebp + eax - 0x178]
mov byte [ebp + ecx - 0x178], dl
movzx eax, byte [ebp - 0x18b]
mov cl, byte [ebp - 0x289]
mov byte [ebp + eax - 0x178], cl
movzx edx, byte [ebp - 0x289]
movzx eax, byte [ebp + edx - 0x178]
movzx ecx, byte [ebp - 0x179]
add ecx, eax
mov byte [ebp - 0x179], cl
movzx edx, byte [ebp - 0x1f9]
movzx eax, byte [ebp - 0x71]
movzx ecx, byte [ebp + eax - 0x178]
movzx eax, byte [ebp - 0x18b]
movzx eax, byte [ebp + eax - 0x178]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x178]
xor edx, ecx
movzx eax, byte [ebp - 0x181]
movzx ecx, byte [ebp + eax - 0x178]
movzx eax, byte [ebp - 0x61]
movzx eax, byte [ebp + eax - 0x178]
add ecx, eax
movzx eax, byte [ebp - 0x179]
movzx eax, byte [ebp + eax - 0x178]
add ecx, eax
and ecx, 0xff
movzx ecx, byte [ebp + ecx - 0x178]
movzx eax, byte [ebp + ecx - 0x178]
xor edx, eax
mov byte [ebp - 0x181], dl
mov cl, byte [ebp - 0x1f9]
mov byte [ebp - 0x61], cl
fld dword [0x9d3f5c]
fstp dword [ebp - 0x1ec]
fld dword [0x9d3f58]
fstp dword [ebp - 0x224]
fld dword [0x9d3f54]
fstp dword [ebp - 0x274]
fld dword [0x9d3f50]
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x274]
fmul dword [ebp - 0x1bc]
fstp dword [ebp - 0x274]
fld dword [ebp - 0x274]
fmul dword [ebp - 0x1bc]
fstp dword [ebp - 0x274]
fld dword [ebp - 0x224]
fmul dword [ebp - 0x1bc]
fstp dword [ebp - 0x224]
fld dword [ebp - 0x1ec]
fmul dword [ebp - 0x1bc]
fstp dword [ebp - 0x1ec]
fld dword [ebp - 0x1bc]
fld dword [ebp - 0x274]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4b6237
fld dword [ebp - 0x224]
fadd dword [ebp - 0x1bc]
fstp dword [ebp - 0x224]
fld dword [ebp - 0x274]
fsub dword [ebp - 0x1ec]
fstp dword [ebp - 0x274]
fld dword [ebp - 0x224]
fmul dword [ebp - 0x1bc]
fstp dword [ebp - 0x224]
fld dword [ebp - 0x1bc]
fmul dword [ebp - 0x224]
fstp dword [ebp - 0x1bc]
mov dl, byte [ebp - 0x181]
mov byte [ebp - 0x261], dl
jmp 0x4b636e
fld dword [ebp - 0x274]
fmul dword [ebp - 0x1ec]
fstp dword [ebp - 0x274]
fld dword [ebp - 0x274]
fsub dword [ebp - 0x1ec]
fstp dword [ebp - 0x274]
fld dword [ebp - 0x1bc]
fadd dword [ebp - 0x224]
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x274]
fmul dword [ebp - 0x1ec]
fstp dword [ebp - 0x274]
fld dword [ebp - 0x1bc]
fdiv dword [ebp - 0x224]
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x1ec]
fdiv dword [ebp - 0x274]
fstp dword [ebp - 0x1ec]
fld dword [ebp - 0x224]
fdiv dword [ebp - 0x1bc]
fstp dword [ebp - 0x224]
fld dword [ebp - 0x274]
fdiv dword [ebp - 0x1ec]
fstp dword [ebp - 0x274]
fld dword [ebp - 0x274]
fld dword [ebp - 0x1ec]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4b6326
fld dword [ebp - 0x274]
fmul dword [ebp - 0x1ec]
fstp dword [ebp - 0x274]
fld dword [ebp - 0x1bc]
fdiv dword [ebp - 0x224]
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x224]
fmul dword [ebp - 0x1bc]
fstp dword [ebp - 0x224]
fld dword [ebp - 0x274]
fdiv dword [ebp - 0x1ec]
fstp dword [ebp - 0x274]
jmp 0x4b636e
fld dword [ebp - 0x224]
fsub dword [ebp - 0x274]
fstp dword [ebp - 0x224]
fld dword [ebp - 0x1bc]
fmul dword [ebp - 0x1ec]
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x1bc]
fsub dword [ebp - 0x1ec]
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x1bc]
fdiv dword [ebp - 0x1ec]
fstp dword [ebp - 0x1bc]
cmp dword [ebp - 0x244], 0
jle 0x4b638a
movsx ax, byte [ebp - 0x261]
mov ecx, dword [ebp - 0x244]
mov word [ebp + ecx*2 - 0x5a], ax
xor edx, edx
mov word [ebp - 0x24], dx
jmp 0x4b63c5
mov dword [ebp - 0x2c4], 0
jmp 0x4b63ad
mov eax, dword [ebp - 0x2c4]
add eax, 1
mov dword [ebp - 0x2c4], eax
cmp dword [ebp - 0x2c4], 0x1b
jge 0x4b63c5
xor ecx, ecx
mov edx, dword [ebp - 0x2c4]
mov word [ebp + edx*2 - 0x58], cx
jmp 0x4b639e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
mov dx, word [ebp + ecx*2 - 0x58]
mov word [eax], dx
xor eax, eax
mov ecx, dword [ebp + 8]
mov word [ecx + 6], ax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov cx, word [ebp + eax*2 - 0x58]
mov word [edx + 4], cx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov cx, word [ebp + eax*2 - 0x58]
mov word [edx + 2], cx
mov esp, ebp
pop ebp
ret 4