Function at 0x550c30
Capabilities:
Encrypt data using twofish

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b8
mov eax, dword [0x6926e4]
xor eax, ebp
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x20], 0
cmp dword [0x6913e8], 0
je 0x550c62
call fcn.005505a0
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 0x550cbd
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 0x550d32
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.005504b0
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 0x550ca5
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], edx
jmp 0x550d56
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 0x551104
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x240]
and eax, 3
mov dword [ebp - 0x2b0], eax
je 0x550d9c
cmp dword [ebp - 0x2b0], 2
je 0x550e6c
cmp dword [ebp - 0x2b0], 3
je 0x550e04
jmp 0x550f12
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 + 0x696c68]
xor ecx, dword [edx*4 + 0x697068]
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 + 0x697468]
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 + 0x697868]
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 0x550f4d
cmp dword [ebp - 0x2b4], 2
je 0x55101d
cmp dword [ebp - 0x2b4], 3
je 0x550fb5
jmp 0x5510c0
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 + 0x696c68]
xor eax, dword [ecx*4 + 0x697068]
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 + 0x697468]
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 + 0x697868]
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 0x550d41
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2b8], ecx
cmp dword [ebp - 0x2b8], 0x80
je 0x55113e
cmp dword [ebp - 0x2b8], 0xc0
je 0x5513cb
cmp dword [ebp - 0x2b8], 0x100
je 0x551700
jmp 0x551bf4
movzx edx, byte [ebp - 0x24c]
push edx
push 0x6911e8
lea eax, [ebp - 0x138]
push eax
call fcn.00550820
add esp, 0xc
movzx ecx, byte [ebp - 0x250]
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x1c], 0
jmp 0x551179
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x5511e0
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 + 0x696c68]
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 + 0x696c68]
mov dword [ecx + eax*4 + 0xe8], edx
jmp 0x551170
movzx eax, byte [ebp - 0x24b]
push eax
push 0x6912e8
lea ecx, [ebp - 0x138]
push ecx
call fcn.00550820
add esp, 0xc
movzx edx, byte [ebp - 0x24f]
mov dword [ebp - 0x264], edx
mov dword [ebp - 0x1c], 0
jmp 0x55121b
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x551282
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 + 0x697068]
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 + 0x697068]
mov dword [edx + ecx*4 + 0xec], eax
jmp 0x551212
movzx ecx, byte [ebp - 0x24a]
push ecx
push 0x6911e8
lea edx, [ebp - 0x138]
push edx
call fcn.00550820
add esp, 0xc
movzx eax, byte [ebp - 0x24e]
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x1c], 0
jmp 0x5512bd
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x551324
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 + 0x697468]
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 + 0x697468]
mov dword [eax + edx*4 + 0x8e8], ecx
jmp 0x5512b4
movzx edx, byte [ebp - 0x249]
push edx
push 0x6912e8
lea eax, [ebp - 0x138]
push eax
call fcn.00550820
add esp, 0xc
movzx ecx, byte [ebp - 0x24d]
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0x1c], 0
jmp 0x55135f
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x5513c6
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 + 0x697868]
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 + 0x697868]
mov dword [ecx + eax*4 + 0x8ec], edx
jmp 0x551356
jmp 0x551bf4
movzx eax, byte [ebp - 0x248]
push eax
push 0x6912e8
lea ecx, [ebp - 0x138]
push ecx
call fcn.00550820
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 0x551413
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x551497
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 + 0x696c68]
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 + 0x696c68]
mov dword [edx + ecx*4 + 0xe8], eax
jmp 0x55140a
movzx ecx, byte [ebp - 0x247]
push ecx
push 0x6912e8
lea edx, [ebp - 0x138]
push edx
call fcn.00550820
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 0x5514df
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x551563
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 + 0x697068]
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 + 0x697068]
mov dword [eax + edx*4 + 0xec], ecx
jmp 0x5514d6
movzx edx, byte [ebp - 0x246]
push edx
push 0x6911e8
lea eax, [ebp - 0x138]
push eax
call fcn.00550820
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 0x5515ab
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x55162f
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 + 0x697468]
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 + 0x697468]
mov dword [ecx + eax*4 + 0x8e8], edx
jmp 0x5515a2
movzx eax, byte [ebp - 0x245]
push eax
push 0x6911e8
lea ecx, [ebp - 0x138]
push ecx
call fcn.00550820
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 0x551677
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x5516fb
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 + 0x697868]
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 + 0x697868]
mov dword [edx + ecx*4 + 0x8ec], eax
jmp 0x55166e
jmp 0x551bf4
movzx ecx, byte [ebp - 0x244]
push ecx
push 0x6912e8
lea edx, [ebp - 0x238]
push edx
call fcn.00550820
add esp, 0xc
mov dword [ebp - 0x1c], 0
jmp 0x55172e
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x55176f
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 0x551725
movzx eax, byte [ebp - 0x248]
push eax
lea ecx, [ebp - 0x138]
push ecx
lea edx, [ebp - 0x138]
push edx
call fcn.00550820
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 0x5517b9
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x55183d
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 + 0x696c68]
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 + 0x696c68]
mov dword [eax + edx*4 + 0xe8], ecx
jmp 0x5517b0
movzx edx, byte [ebp - 0x243]
push edx
push 0x6911e8
lea eax, [ebp - 0x238]
push eax
call fcn.00550820
add esp, 0xc
mov dword [ebp - 0x1c], 0
jmp 0x55186b
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x5518ac
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 0x551862
movzx ecx, byte [ebp - 0x247]
push ecx
lea edx, [ebp - 0x138]
push edx
lea eax, [ebp - 0x138]
push eax
call fcn.00550820
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 0x5518f6
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x55197a
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 + 0x697068]
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 + 0x697068]
mov dword [ecx + eax*4 + 0xec], edx
jmp 0x5518ed
movzx eax, byte [ebp - 0x242]
push eax
push 0x6911e8
lea ecx, [ebp - 0x238]
push ecx
call fcn.00550820
add esp, 0xc
mov dword [ebp - 0x1c], 0
jmp 0x5519a8
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x5519e9
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 0x55199f
movzx edx, byte [ebp - 0x246]
push edx
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x138]
push ecx
call fcn.00550820
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 0x551a33
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0x100
jge 0x551ab7
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 + 0x697468]
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 + 0x697468]
mov dword [edx + ecx*4 + 0x8e8], eax
jmp 0x551a2a
movzx ecx, byte [ebp - 0x241]
push ecx
push 0x6912e8
lea edx, [ebp - 0x238]
push edx
call fcn.00550820
add esp, 0xc
mov dword [ebp - 0x1c], 0
jmp 0x551ae5
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x551b26
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 0x551adc
movzx eax, byte [ebp - 0x245]
push eax
lea ecx, [ebp - 0x138]
push ecx
lea edx, [ebp - 0x138]
push edx
call fcn.00550820
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 0x551b70
mov edx, dword [ebp - 0x1c]
add edx, 2
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x100
jge 0x551bf4
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 + 0x697868]
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 + 0x697868]
mov dword [eax + edx*4 + 0x8ec], ecx
jmp 0x551b67
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
test eax, eax
jne 0x551c0c
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00550790
add esp, 8
mov eax, 1
mov ecx, dword [ebp - 0x38]
xor ecx, ebp
call fcn.0057bd22
mov esp, ebp
pop ebp
ret