Function at 0x550f10
Capabilities:
Encrypt data using twofish

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b8
mov eax, dword [0x6926dc]
xor eax, ebp
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x20], 0
cmp dword [0x6913e8], 0
je 0x550f42
call fcn.00550890
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
lea edx, [ecx + ecx + 8]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
add eax, 0x3f
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x240]
sub edx, 1
mov dword [ebp - 0x254], edx
jmp 0x550f9d
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x254]
sub ecx, 1
mov dword [ebp - 0x254], ecx
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x240]
jge 0x551012
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [ebp + ecx*4 - 0x30], eax
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + ecx*4 + 0x14]
mov dword [ebp + edx*4 - 0x10], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + edx*4 - 0x10]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + ecx*4 - 0x30]
push edx
call fcn.005507a0
add esp, 8
mov ecx, dword [ebp - 0x254]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0x30], eax
mov eax, dword [ebp - 0x254]
mov ecx, dword [ebp - 0x254]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + ecx*4 + 0x30]
mov dword [ebp + eax*4 - 0x250], ecx
jmp 0x550f85
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], edx
jmp 0x551036
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x34]
add ecx, 0x2020202
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x18]
cdq
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x1c], eax
jge 0x5513e4
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x240]
and eax, 3
mov dword [ebp - 0x2b0], eax
je 0x55107c
cmp dword [ebp - 0x2b0], 2
je 0x55114c
cmp dword [ebp - 0x2b0], 3
je 0x5510e4
jmp 0x5511f2
movzx ecx, byte [ebp - 0x258]
movzx edx, byte [ecx + 0x6912e8]
movzx eax, byte [ebp - 0x24]
xor edx, eax
mov byte [ebp - 0x258], dl
movzx ecx, byte [ebp - 0x257]
movzx edx, byte [ecx + 0x6911e8]
movzx eax, byte [ebp - 0x23]
xor edx, eax
mov byte [ebp - 0x257], dl
movzx ecx, byte [ebp - 0x256]
movzx edx, byte [ecx + 0x6911e8]
movzx eax, byte [ebp - 0x22]
xor edx, eax
mov byte [ebp - 0x256], dl
movzx ecx, byte [ebp - 0x255]
movzx edx, byte [ecx + 0x6912e8]
movzx eax, byte [ebp - 0x21]
xor edx, eax
mov byte [ebp - 0x255], dl
movzx ecx, byte [ebp - 0x258]
movzx edx, byte [ecx + 0x6912e8]
movzx eax, byte [ebp - 0x28]
xor edx, eax
mov byte [ebp - 0x258], dl
movzx ecx, byte [ebp - 0x257]
movzx edx, byte [ecx + 0x6912e8]
movzx eax, byte [ebp - 0x27]
xor edx, eax
mov byte [ebp - 0x257], dl
movzx ecx, byte [ebp - 0x256]
movzx edx, byte [ecx + 0x6911e8]
movzx eax, byte [ebp - 0x26]
xor edx, eax
mov byte [ebp - 0x256], dl
movzx ecx, byte [ebp - 0x255]
movzx edx, byte [ecx + 0x6911e8]
movzx eax, byte [ebp - 0x25]
xor edx, eax
mov byte [ebp - 0x255], dl
movzx ecx, byte [ebp - 0x258]
movzx edx, byte [ecx + 0x6911e8]
movzx eax, byte [ebp - 0x2c]
xor edx, eax
movzx ecx, byte [edx + 0x6911e8]
movzx edx, byte [ebp - 0x30]
xor ecx, edx
movzx eax, byte [ebp - 0x257]
movzx edx, byte [eax + 0x6912e8]
movzx eax, byte [ebp - 0x2b]
xor edx, eax
movzx edx, byte [edx + 0x6911e8]
movzx eax, byte [ebp - 0x2f]
xor edx, eax
mov ecx, dword [ecx*4 + 0x697488]
xor ecx, dword [edx*4 + 0x697888]
movzx edx, byte [ebp - 0x256]
movzx eax, byte [edx + 0x6911e8]
movzx edx, byte [ebp - 0x2a]
xor eax, edx
movzx eax, byte [eax + 0x6912e8]
movzx edx, byte [ebp - 0x2e]
xor eax, edx
xor ecx, dword [eax*4 + 0x697c88]
movzx eax, byte [ebp - 0x255]
movzx edx, byte [eax + 0x6912e8]
movzx eax, byte [ebp - 0x29]
xor edx, eax
movzx edx, byte [edx + 0x6912e8]
movzx eax, byte [ebp - 0x2d]
xor edx, eax
xor ecx, dword [edx*4 + 0x698088]
mov dword [ebp - 0x23c], ecx
mov ecx, dword [ebp - 0x34]
add ecx, 0x1010101
mov dword [ebp - 0x25c], ecx
mov edx, dword [ebp - 0x240]
and edx, 3
mov dword [ebp - 0x2b4], edx
je 0x55122d
cmp dword [ebp - 0x2b4], 2
je 0x5512fd
cmp dword [ebp - 0x2b4], 3
je 0x551295
jmp 0x5513a0
movzx eax, byte [ebp - 0x25c]
movzx ecx, byte [eax + 0x6912e8]
movzx edx, byte [ebp - 4]
xor ecx, edx
mov byte [ebp - 0x25c], cl
movzx eax, byte [ebp - 0x25b]
movzx ecx, byte [eax + 0x6911e8]
movzx edx, byte [ebp - 3]
xor ecx, edx
mov byte [ebp - 0x25b], cl
movzx eax, byte [ebp - 0x25a]
movzx ecx, byte [eax + 0x6911e8]
movzx edx, byte [ebp - 2]
xor ecx, edx
mov byte [ebp - 0x25a], cl
movzx eax, byte [ebp - 0x259]
movzx ecx, byte [eax + 0x6912e8]
movzx edx, byte [ebp - 1]
xor ecx, edx
mov byte [ebp - 0x259], cl
movzx eax, byte [ebp - 0x25c]
movzx ecx, byte [eax + 0x6912e8]
movzx edx, byte [ebp - 8]
xor ecx, edx
mov byte [ebp - 0x25c], cl
movzx eax, byte [ebp - 0x25b]
movzx ecx, byte [eax + 0x6912e8]
movzx edx, byte [ebp - 7]
xor ecx, edx
mov byte [ebp - 0x25b], cl
movzx eax, byte [ebp - 0x25a]
movzx ecx, byte [eax + 0x6911e8]
movzx edx, byte [ebp - 6]
xor ecx, edx
mov byte [ebp - 0x25a], cl
movzx eax, byte [ebp - 0x259]
movzx ecx, byte [eax + 0x6911e8]
movzx edx, byte [ebp - 5]
xor ecx, edx
mov byte [ebp - 0x259], cl
movzx eax, byte [ebp - 0x25c]
movzx ecx, byte [eax + 0x6911e8]
movzx edx, byte [ebp - 0xc]
xor ecx, edx
movzx eax, byte [ecx + 0x6911e8]
movzx ecx, byte [ebp - 0x10]
xor eax, ecx
movzx edx, byte [ebp - 0x25b]
movzx ecx, byte [edx + 0x6912e8]
movzx edx, byte [ebp - 0xb]
xor ecx, edx
movzx ecx, byte [ecx + 0x6911e8]
movzx edx, byte [ebp - 0xf]
xor ecx, edx
mov eax, dword [eax*4 + 0x697488]
xor eax, dword [ecx*4 + 0x697888]
movzx ecx, byte [ebp - 0x25a]
movzx edx, byte [ecx + 0x6911e8]
movzx ecx, byte [ebp - 0xa]
xor edx, ecx
movzx edx, byte [edx + 0x6912e8]
movzx ecx, byte [ebp - 0xe]
xor edx, ecx
xor eax, dword [edx*4 + 0x697c88]
movzx edx, byte [ebp - 0x259]
movzx ecx, byte [edx + 0x6912e8]
movzx edx, byte [ebp - 9]
xor ecx, edx
movzx ecx, byte [ecx + 0x6912e8]
movzx edx, byte [ebp - 0xd]
xor ecx, edx
xor eax, dword [ecx*4 + 0x698088]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
rol eax, 8
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x23c]
add ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + edx*4 + 0x40], ecx
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x23c]
lea eax, [edx + ecx*2]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
rol ecx, 9
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + edx*4 + 0x44], ecx
jmp 0x551021
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2b8], ecx
cmp dword [ebp - 0x2b8], 0x80
je 0x55141e
cmp dword [ebp - 0x2b8], 0xc0
je 0x5516ab
cmp dword [ebp - 0x2b8], 0x100
je 0x5519e0
jmp 0x551ed4
movzx edx, byte [ebp - 0x24c]
push edx
push 0x6911e8
lea eax, [ebp - 0x138]
push eax
call fcn.00550b10
add esp, 0xc
movzx ecx, byte [ebp - 0x250]
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x1c], 0
jmp 0x551459
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x5514c0
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x138]
movzx edx, byte [ecx + 0x6911e8]
xor edx, dword [ebp - 0x260]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x697488]
mov dword [ecx + eax*4 + 0xe0], edx
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x137]
movzx edx, byte [ecx + 0x6911e8]
xor edx, dword [ebp - 0x260]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x697488]
mov dword [ecx + eax*4 + 0xe8], edx
jmp 0x551450
movzx eax, byte [ebp - 0x24b]
push eax
push 0x6912e8
lea ecx, [ebp - 0x138]
push ecx
call fcn.00550b10
add esp, 0xc
movzx edx, byte [ebp - 0x24f]
mov dword [ebp - 0x264], edx
mov dword [ebp - 0x1c], 0
jmp 0x5514fb
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x551562
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x138]
movzx eax, byte [edx + 0x6911e8]
xor eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x697888]
mov dword [edx + ecx*4 + 0xe4], eax
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x137]
movzx eax, byte [edx + 0x6911e8]
xor eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x697888]
mov dword [edx + ecx*4 + 0xec], eax
jmp 0x5514f2
movzx ecx, byte [ebp - 0x24a]
push ecx
push 0x6911e8
lea edx, [ebp - 0x138]
push edx
call fcn.00550b10
add esp, 0xc
movzx eax, byte [ebp - 0x24e]
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x1c], 0
jmp 0x55159d
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x551604
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x138]
movzx ecx, byte [eax + 0x6912e8]
xor ecx, dword [ebp - 0x268]
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [ecx*4 + 0x697c88]
mov dword [eax + edx*4 + 0x8e0], ecx
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x137]
movzx ecx, byte [eax + 0x6912e8]
xor ecx, dword [ebp - 0x268]
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [ecx*4 + 0x697c88]
mov dword [eax + edx*4 + 0x8e8], ecx
jmp 0x551594
movzx edx, byte [ebp - 0x249]
push edx
push 0x6912e8
lea eax, [ebp - 0x138]
push eax
call fcn.00550b10
add esp, 0xc
movzx ecx, byte [ebp - 0x24d]
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0x1c], 0
jmp 0x55163f
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x5516a6
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x138]
movzx edx, byte [ecx + 0x6912e8]
xor edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x698088]
mov dword [ecx + eax*4 + 0x8e4], edx
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x137]
movzx edx, byte [ecx + 0x6912e8]
xor edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x698088]
mov dword [ecx + eax*4 + 0x8ec], edx
jmp 0x551636
jmp 0x551ed4
movzx eax, byte [ebp - 0x248]
push eax
push 0x6912e8
lea ecx, [ebp - 0x138]
push ecx
call fcn.00550b10
add esp, 0xc
movzx edx, byte [ebp - 0x250]
mov dword [ebp - 0x270], edx
movzx eax, byte [ebp - 0x24c]
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x1c], 0
jmp 0x5516f3
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x551777
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x138]
movzx ecx, byte [eax + 0x6911e8]
xor ecx, dword [ebp - 0x274]
movzx edx, byte [ecx + 0x6911e8]
xor edx, dword [ebp - 0x270]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x697488]
mov dword [ecx + eax*4 + 0xe0], edx
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x137]
movzx edx, byte [ecx + 0x6911e8]
xor edx, dword [ebp - 0x274]
movzx eax, byte [edx + 0x6911e8]
xor eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x697488]
mov dword [edx + ecx*4 + 0xe8], eax
jmp 0x5516ea
movzx ecx, byte [ebp - 0x247]
push ecx
push 0x6912e8
lea edx, [ebp - 0x138]
push edx
call fcn.00550b10
add esp, 0xc
movzx eax, byte [ebp - 0x24f]
mov dword [ebp - 0x278], eax
movzx ecx, byte [ebp - 0x24b]
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x1c], 0
jmp 0x5517bf
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x551843
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x138]
movzx edx, byte [ecx + 0x6912e8]
xor edx, dword [ebp - 0x27c]
movzx eax, byte [edx + 0x6911e8]
xor eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x697888]
mov dword [edx + ecx*4 + 0xe4], eax
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x137]
movzx eax, byte [edx + 0x6912e8]
xor eax, dword [ebp - 0x27c]
movzx ecx, byte [eax + 0x6911e8]
xor ecx, dword [ebp - 0x278]
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [ecx*4 + 0x697888]
mov dword [eax + edx*4 + 0xec], ecx
jmp 0x5517b6
movzx edx, byte [ebp - 0x246]
push edx
push 0x6911e8
lea eax, [ebp - 0x138]
push eax
call fcn.00550b10
add esp, 0xc
movzx ecx, byte [ebp - 0x24e]
mov dword [ebp - 0x280], ecx
movzx edx, byte [ebp - 0x24a]
mov dword [ebp - 0x284], edx
mov dword [ebp - 0x1c], 0
jmp 0x55188b
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x55190f
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x138]
movzx eax, byte [edx + 0x6911e8]
xor eax, dword [ebp - 0x284]
movzx ecx, byte [eax + 0x6912e8]
xor ecx, dword [ebp - 0x280]
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [ecx*4 + 0x697c88]
mov dword [eax + edx*4 + 0x8e0], ecx
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x137]
movzx ecx, byte [eax + 0x6911e8]
xor ecx, dword [ebp - 0x284]
movzx edx, byte [ecx + 0x6912e8]
xor edx, dword [ebp - 0x280]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x697c88]
mov dword [ecx + eax*4 + 0x8e8], edx
jmp 0x551882
movzx eax, byte [ebp - 0x245]
push eax
push 0x6911e8
lea ecx, [ebp - 0x138]
push ecx
call fcn.00550b10
add esp, 0xc
movzx edx, byte [ebp - 0x24d]
mov dword [ebp - 0x288], edx
movzx eax, byte [ebp - 0x249]
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x1c], 0
jmp 0x551957
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x5519db
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x138]
movzx ecx, byte [eax + 0x6912e8]
xor ecx, dword [ebp - 0x28c]
movzx edx, byte [ecx + 0x6912e8]
xor edx, dword [ebp - 0x288]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x698088]
mov dword [ecx + eax*4 + 0x8e4], edx
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x137]
movzx edx, byte [ecx + 0x6912e8]
xor edx, dword [ebp - 0x28c]
movzx eax, byte [edx + 0x6912e8]
xor eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x698088]
mov dword [edx + ecx*4 + 0x8ec], eax
jmp 0x55194e
jmp 0x551ed4
movzx ecx, byte [ebp - 0x244]
push ecx
push 0x6912e8
lea edx, [ebp - 0x238]
push edx
call fcn.00550b10
add esp, 0xc
mov dword [ebp - 0x1c], 0
jmp 0x551a0e
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x551a4f
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x238]
mov eax, dword [ebp - 0x1c]
mov cl, byte [edx + 0x6912e8]
mov byte [ebp + eax - 0x138], cl
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x237]
mov ecx, dword [ebp - 0x1c]
mov dl, byte [eax + 0x6912e8]
mov byte [ebp + ecx - 0x137], dl
jmp 0x551a05
movzx eax, byte [ebp - 0x248]
push eax
lea ecx, [ebp - 0x138]
push ecx
lea edx, [ebp - 0x138]
push edx
call fcn.00550b10
add esp, 0xc
movzx eax, byte [ebp - 0x250]
mov dword [ebp - 0x290], eax
movzx ecx, byte [ebp - 0x24c]
mov dword [ebp - 0x294], ecx
mov dword [ebp - 0x1c], 0
jmp 0x551a99
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x551b1d
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x138]
movzx edx, byte [ecx + 0x6911e8]
xor edx, dword [ebp - 0x294]
movzx eax, byte [edx + 0x6911e8]
xor eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x697488]
mov dword [edx + ecx*4 + 0xe0], eax
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x137]
movzx eax, byte [edx + 0x6911e8]
xor eax, dword [ebp - 0x294]
movzx ecx, byte [eax + 0x6911e8]
xor ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [ecx*4 + 0x697488]
mov dword [eax + edx*4 + 0xe8], ecx
jmp 0x551a90
movzx edx, byte [ebp - 0x243]
push edx
push 0x6911e8
lea eax, [ebp - 0x238]
push eax
call fcn.00550b10
add esp, 0xc
mov dword [ebp - 0x1c], 0
jmp 0x551b4b
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x551b8c
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x238]
mov ecx, dword [ebp - 0x1c]
mov dl, byte [eax + 0x6912e8]
mov byte [ebp + ecx - 0x138], dl
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x237]
mov edx, dword [ebp - 0x1c]
mov al, byte [ecx + 0x6912e8]
mov byte [ebp + edx - 0x137], al
jmp 0x551b42
movzx ecx, byte [ebp - 0x247]
push ecx
lea edx, [ebp - 0x138]
push edx
lea eax, [ebp - 0x138]
push eax
call fcn.00550b10
add esp, 0xc
movzx ecx, byte [ebp - 0x24f]
mov dword [ebp - 0x298], ecx
movzx edx, byte [ebp - 0x24b]
mov dword [ebp - 0x29c], edx
mov dword [ebp - 0x1c], 0
jmp 0x551bd6
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x551c5a
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x138]
movzx eax, byte [edx + 0x6912e8]
xor eax, dword [ebp - 0x29c]
movzx ecx, byte [eax + 0x6911e8]
xor ecx, dword [ebp - 0x298]
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [ecx*4 + 0x697888]
mov dword [eax + edx*4 + 0xe4], ecx
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x137]
movzx ecx, byte [eax + 0x6912e8]
xor ecx, dword [ebp - 0x29c]
movzx edx, byte [ecx + 0x6911e8]
xor edx, dword [ebp - 0x298]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x697888]
mov dword [ecx + eax*4 + 0xec], edx
jmp 0x551bcd
movzx eax, byte [ebp - 0x242]
push eax
push 0x6911e8
lea ecx, [ebp - 0x238]
push ecx
call fcn.00550b10
add esp, 0xc
mov dword [ebp - 0x1c], 0
jmp 0x551c88
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x551cc9
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x238]
mov edx, dword [ebp - 0x1c]
mov al, byte [ecx + 0x6911e8]
mov byte [ebp + edx - 0x138], al
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x237]
mov eax, dword [ebp - 0x1c]
mov cl, byte [edx + 0x6911e8]
mov byte [ebp + eax - 0x137], cl
jmp 0x551c7f
movzx edx, byte [ebp - 0x246]
push edx
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x138]
push ecx
call fcn.00550b10
add esp, 0xc
movzx edx, byte [ebp - 0x24e]
mov dword [ebp - 0x2a0], edx
movzx eax, byte [ebp - 0x24a]
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x1c], 0
jmp 0x551d13
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x551d97
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x138]
movzx ecx, byte [eax + 0x6911e8]
xor ecx, dword [ebp - 0x2a4]
movzx edx, byte [ecx + 0x6912e8]
xor edx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [edx*4 + 0x697c88]
mov dword [ecx + eax*4 + 0x8e0], edx
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x137]
movzx edx, byte [ecx + 0x6911e8]
xor edx, dword [ebp - 0x2a4]
movzx eax, byte [edx + 0x6912e8]
xor eax, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x697c88]
mov dword [edx + ecx*4 + 0x8e8], eax
jmp 0x551d0a
movzx ecx, byte [ebp - 0x241]
push ecx
push 0x6912e8
lea edx, [ebp - 0x238]
push edx
call fcn.00550b10
add esp, 0xc
mov dword [ebp - 0x1c], 0
jmp 0x551dc5
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x551e06
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x238]
mov eax, dword [ebp - 0x1c]
mov cl, byte [edx + 0x6911e8]
mov byte [ebp + eax - 0x138], cl
mov edx, dword [ebp - 0x1c]
movzx eax, byte [ebp + edx - 0x237]
mov ecx, dword [ebp - 0x1c]
mov dl, byte [eax + 0x6911e8]
mov byte [ebp + ecx - 0x137], dl
jmp 0x551dbc
movzx eax, byte [ebp - 0x245]
push eax
lea ecx, [ebp - 0x138]
push ecx
lea edx, [ebp - 0x138]
push edx
call fcn.00550b10
add esp, 0xc
movzx eax, byte [ebp - 0x24d]
mov dword [ebp - 0x2a8], eax
movzx ecx, byte [ebp - 0x249]
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x1c], 0
jmp 0x551e50
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x551ed4
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp + eax - 0x138]
movzx edx, byte [ecx + 0x6912e8]
xor edx, dword [ebp - 0x2ac]
movzx eax, byte [edx + 0x6912e8]
xor eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x698088]
mov dword [edx + ecx*4 + 0x8e4], eax
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ebp + ecx - 0x137]
movzx eax, byte [edx + 0x6912e8]
xor eax, dword [ebp - 0x2ac]
movzx ecx, byte [eax + 0x6912e8]
xor ecx, dword [ebp - 0x2a8]
mov edx, dword [ebp - 0x1c]
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [ecx*4 + 0x698088]
mov dword [eax + edx*4 + 0x8ec], ecx
jmp 0x551e47
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
test eax, eax
jne 0x551eec
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00550a80
add esp, 8
mov eax, 1
mov ecx, dword [ebp - 0x38]
xor ecx, ebp
call fcn.0057bc02
mov esp, ebp
pop ebp
ret