Function at 0x46a9f4
Capabilities:
Encrypt data using twofish

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b8
mov eax, dword [0x57aa54]
xor eax, dword [ebp + 4]
mov dword [ebp - 0x38], eax
and dword [ebp - 0x23c], 0
and dword [ebp - 0x20], 0
cmp dword [0x578f80], 0
je 0x46aa21
call fcn.0046ba4f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x50]
lea eax, [eax + eax + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
add eax, 0x3f
cdq
push 0x40
pop ecx
idiv ecx
mov dword [ebp - 0x240], eax
and dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x240]
dec eax
mov dword [ebp - 0x254], eax
jmp 0x46aa70
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x254]
dec eax
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x240]
jge 0x46aae2
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + eax*4 + 0x54]
mov dword [ebp + ecx*4 - 0x30], eax
mov eax, dword [ebp - 0x1c]
shl eax, 1
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + eax*4 + 0x58]
mov dword [ebp + ecx*4 - 0x10], eax
mov eax, dword [ebp - 0x1c]
push dword [ebp + eax*4 - 0x10]
mov eax, dword [ebp - 0x1c]
push dword [ebp + eax*4 - 0x30]
call fcn.0046b977
pop ecx
pop ecx
mov ecx, dword [ebp - 0x254]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0x74], eax
mov eax, dword [ebp - 0x254]
mov ecx, dword [ebp - 0x254]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + ecx*4 + 0x74]
mov dword [ebp + eax*4 - 0x250], ecx
jmp 0x46aa5c
and dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
jmp 0x46ab00
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x34]
add eax, 0x2020202
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
cdq
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x1c], eax
jge 0x46aec1
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x258], eax
mov eax, dword [ebp - 0x240]
and eax, 3
mov dword [ebp - 0x2b0], eax
cmp dword [ebp - 0x2b0], 0
je 0x46ab4d
cmp dword [ebp - 0x2b0], 2
je 0x46ac1d
cmp dword [ebp - 0x2b0], 3
je 0x46abb5
jmp 0x46acc3
movzx eax, byte [ebp - 0x258]
movzx eax, byte [eax + 0x578e80]
movzx ecx, byte [ebp - 0x24]
xor eax, ecx
mov byte [ebp - 0x258], al
movzx eax, byte [ebp - 0x257]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 0x23]
xor eax, ecx
mov byte [ebp - 0x257], al
movzx eax, byte [ebp - 0x256]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 0x22]
xor eax, ecx
mov byte [ebp - 0x256], al
movzx eax, byte [ebp - 0x255]
movzx eax, byte [eax + 0x578e80]
movzx ecx, byte [ebp - 0x21]
xor eax, ecx
mov byte [ebp - 0x255], al
movzx eax, byte [ebp - 0x258]
movzx eax, byte [eax + 0x578e80]
movzx ecx, byte [ebp - 0x28]
xor eax, ecx
mov byte [ebp - 0x258], al
movzx eax, byte [ebp - 0x257]
movzx eax, byte [eax + 0x578e80]
movzx ecx, byte [ebp - 0x27]
xor eax, ecx
mov byte [ebp - 0x257], al
movzx eax, byte [ebp - 0x256]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 0x26]
xor eax, ecx
mov byte [ebp - 0x256], al
movzx eax, byte [ebp - 0x255]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 0x25]
xor eax, ecx
mov byte [ebp - 0x255], al
movzx eax, byte [ebp - 0x258]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 0x2c]
xor eax, ecx
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 0x30]
xor eax, ecx
movzx ecx, byte [ebp - 0x257]
movzx ecx, byte [ecx + 0x578e80]
movzx edx, byte [ebp - 0x2b]
xor ecx, edx
movzx ecx, byte [ecx + 0x578d80]
movzx edx, byte [ebp - 0x2f]
xor ecx, edx
mov eax, dword [eax*4 + 0x580520]
xor eax, dword [ecx*4 + 0x580920]
movzx ecx, byte [ebp - 0x256]
movzx ecx, byte [ecx + 0x578d80]
movzx edx, byte [ebp - 0x2a]
xor ecx, edx
movzx ecx, byte [ecx + 0x578e80]
movzx edx, byte [ebp - 0x2e]
xor ecx, edx
xor eax, dword [ecx*4 + 0x580d20]
movzx ecx, byte [ebp - 0x255]
movzx ecx, byte [ecx + 0x578e80]
movzx edx, byte [ebp - 0x29]
xor ecx, edx
movzx ecx, byte [ecx + 0x578e80]
movzx edx, byte [ebp - 0x2d]
xor ecx, edx
xor eax, dword [ecx*4 + 0x581120]
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x34]
add eax, 0x1010101
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x240]
and eax, 3
mov dword [ebp - 0x2b4], eax
cmp dword [ebp - 0x2b4], 0
je 0x46ad04
cmp dword [ebp - 0x2b4], 2
je 0x46add4
cmp dword [ebp - 0x2b4], 3
je 0x46ad6c
jmp 0x46ae77
movzx eax, byte [ebp - 0x25c]
movzx eax, byte [eax + 0x578e80]
movzx ecx, byte [ebp - 4]
xor eax, ecx
mov byte [ebp - 0x25c], al
movzx eax, byte [ebp - 0x25b]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 3]
xor eax, ecx
mov byte [ebp - 0x25b], al
movzx eax, byte [ebp - 0x25a]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 2]
xor eax, ecx
mov byte [ebp - 0x25a], al
movzx eax, byte [ebp - 0x259]
movzx eax, byte [eax + 0x578e80]
movzx ecx, byte [ebp - 1]
xor eax, ecx
mov byte [ebp - 0x259], al
movzx eax, byte [ebp - 0x25c]
movzx eax, byte [eax + 0x578e80]
movzx ecx, byte [ebp - 8]
xor eax, ecx
mov byte [ebp - 0x25c], al
movzx eax, byte [ebp - 0x25b]
movzx eax, byte [eax + 0x578e80]
movzx ecx, byte [ebp - 7]
xor eax, ecx
mov byte [ebp - 0x25b], al
movzx eax, byte [ebp - 0x25a]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 6]
xor eax, ecx
mov byte [ebp - 0x25a], al
movzx eax, byte [ebp - 0x259]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 5]
xor eax, ecx
mov byte [ebp - 0x259], al
movzx eax, byte [ebp - 0x25c]
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 0xc]
xor eax, ecx
movzx eax, byte [eax + 0x578d80]
movzx ecx, byte [ebp - 0x10]
xor eax, ecx
movzx ecx, byte [ebp - 0x25b]
movzx ecx, byte [ecx + 0x578e80]
movzx edx, byte [ebp - 0xb]
xor ecx, edx
movzx ecx, byte [ecx + 0x578d80]
movzx edx, byte [ebp - 0xf]
xor ecx, edx
mov eax, dword [eax*4 + 0x580520]
xor eax, dword [ecx*4 + 0x580920]
movzx ecx, byte [ebp - 0x25a]
movzx ecx, byte [ecx + 0x578d80]
movzx edx, byte [ebp - 0xa]
xor ecx, edx
movzx ecx, byte [ecx + 0x578e80]
movzx edx, byte [ebp - 0xe]
xor ecx, edx
xor eax, dword [ecx*4 + 0x580d20]
movzx ecx, byte [ebp - 0x259]
movzx ecx, byte [ecx + 0x578e80]
movzx edx, byte [ebp - 9]
xor ecx, edx
movzx ecx, byte [ecx + 0x578e80]
movzx edx, byte [ebp - 0xd]
xor ecx, edx
xor eax, dword [ecx*4 + 0x581120]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
rol eax, 8
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x23c]
add eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0x84], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x23c]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
rol eax, 9
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0x88], eax
jmp 0x46aaee
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2b8], eax
cmp dword [ebp - 0x2b8], 0x80
je 0x46aefb
cmp dword [ebp - 0x2b8], 0xc0
je 0x46b170
cmp dword [ebp - 0x2b8], 0x100
je 0x46b48d
jmp 0x46b951
push dword [ebp - 0x24c]
push 0x578d80
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x250]
mov dword [ebp - 0x260], eax
and dword [ebp - 0x1c], 0
jmp 0x46af30
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46af97
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580520]
mov dword [edx + ecx*4 + 0x124], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580520]
mov dword [edx + ecx*4 + 0x12c], eax
jmp 0x46af28
push dword [ebp - 0x24b]
push 0x578e80
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24f]
mov dword [ebp - 0x264], eax
and dword [ebp - 0x1c], 0
jmp 0x46afcc
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b033
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580920]
mov dword [edx + ecx*4 + 0x128], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580920]
mov dword [edx + ecx*4 + 0x130], eax
jmp 0x46afc4
push dword [ebp - 0x24a]
push 0x578d80
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24e]
mov dword [ebp - 0x268], eax
and dword [ebp - 0x1c], 0
jmp 0x46b068
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b0cf
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x268]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580d20]
mov dword [edx + ecx*4 + 0x924], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x268]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580d20]
mov dword [edx + ecx*4 + 0x92c], eax
jmp 0x46b060
push dword [ebp - 0x249]
push 0x578e80
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24d]
mov dword [ebp - 0x26c], eax
and dword [ebp - 0x1c], 0
jmp 0x46b104
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b16b
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x581120]
mov dword [edx + ecx*4 + 0x928], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x581120]
mov dword [edx + ecx*4 + 0x930], eax
jmp 0x46b0fc
jmp 0x46b951
push dword [ebp - 0x248]
push 0x578e80
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x250]
mov dword [ebp - 0x270], eax
movzx eax, byte [ebp - 0x24c]
mov dword [ebp - 0x274], eax
and dword [ebp - 0x1c], 0
jmp 0x46b1b2
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b236
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x274]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580520]
mov dword [edx + ecx*4 + 0x124], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x274]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580520]
mov dword [edx + ecx*4 + 0x12c], eax
jmp 0x46b1aa
push dword [ebp - 0x247]
push 0x578e80
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24f]
mov dword [ebp - 0x278], eax
movzx eax, byte [ebp - 0x24b]
mov dword [ebp - 0x27c], eax
and dword [ebp - 0x1c], 0
jmp 0x46b278
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b2fc
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x27c]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580920]
mov dword [edx + ecx*4 + 0x128], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x27c]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580920]
mov dword [edx + ecx*4 + 0x130], eax
jmp 0x46b270
push dword [ebp - 0x246]
push 0x578d80
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24e]
mov dword [ebp - 0x280], eax
movzx eax, byte [ebp - 0x24a]
mov dword [ebp - 0x284], eax
and dword [ebp - 0x1c], 0
jmp 0x46b33e
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b3c2
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x284]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580d20]
mov dword [edx + ecx*4 + 0x924], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x284]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580d20]
mov dword [edx + ecx*4 + 0x92c], eax
jmp 0x46b336
push dword [ebp - 0x245]
push 0x578d80
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24d]
mov dword [ebp - 0x288], eax
movzx eax, byte [ebp - 0x249]
mov dword [ebp - 0x28c], eax
and dword [ebp - 0x1c], 0
jmp 0x46b404
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b488
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x28c]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x581120]
mov dword [edx + ecx*4 + 0x928], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x28c]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x581120]
mov dword [edx + ecx*4 + 0x930], eax
jmp 0x46b3fc
jmp 0x46b951
push dword [ebp - 0x244]
push 0x578e80
lea eax, [ebp - 0x238]
push eax
call fcn.0046a601
add esp, 0xc
and dword [ebp - 0x1c], 0
jmp 0x46b4b5
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b4f6
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x238]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 0x578e80]
mov byte [ebp + ecx - 0x138], al
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x237]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 0x578e80]
mov byte [ebp + ecx - 0x137], al
jmp 0x46b4ad
push dword [ebp - 0x248]
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x250]
mov dword [ebp - 0x290], eax
movzx eax, byte [ebp - 0x24c]
mov dword [ebp - 0x294], eax
and dword [ebp - 0x1c], 0
jmp 0x46b53a
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b5be
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x294]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580520]
mov dword [edx + ecx*4 + 0x124], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x294]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580520]
mov dword [edx + ecx*4 + 0x12c], eax
jmp 0x46b532
push dword [ebp - 0x243]
push 0x578d80
lea eax, [ebp - 0x238]
push eax
call fcn.0046a601
add esp, 0xc
and dword [ebp - 0x1c], 0
jmp 0x46b5e6
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b627
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x238]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 0x578e80]
mov byte [ebp + ecx - 0x138], al
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x237]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 0x578e80]
mov byte [ebp + ecx - 0x137], al
jmp 0x46b5de
push dword [ebp - 0x247]
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24f]
mov dword [ebp - 0x298], eax
movzx eax, byte [ebp - 0x24b]
mov dword [ebp - 0x29c], eax
and dword [ebp - 0x1c], 0
jmp 0x46b66b
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b6ef
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x29c]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580920]
mov dword [edx + ecx*4 + 0x128], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x29c]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580920]
mov dword [edx + ecx*4 + 0x130], eax
jmp 0x46b663
push dword [ebp - 0x242]
push 0x578d80
lea eax, [ebp - 0x238]
push eax
call fcn.0046a601
add esp, 0xc
and dword [ebp - 0x1c], 0
jmp 0x46b717
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b758
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x238]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 0x578d80]
mov byte [ebp + ecx - 0x138], al
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x237]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 0x578d80]
mov byte [ebp + ecx - 0x137], al
jmp 0x46b70f
push dword [ebp - 0x246]
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24e]
mov dword [ebp - 0x2a0], eax
movzx eax, byte [ebp - 0x24a]
mov dword [ebp - 0x2a4], eax
and dword [ebp - 0x1c], 0
jmp 0x46b79c
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b820
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x2a4]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580d20]
mov dword [edx + ecx*4 + 0x924], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578d80]
xor eax, dword [ebp - 0x2a4]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x580d20]
mov dword [edx + ecx*4 + 0x92c], eax
jmp 0x46b794
push dword [ebp - 0x241]
push 0x578e80
lea eax, [ebp - 0x238]
push eax
call fcn.0046a601
add esp, 0xc
and dword [ebp - 0x1c], 0
jmp 0x46b848
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b889
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x238]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 0x578d80]
mov byte [ebp + ecx - 0x138], al
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x237]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 0x578d80]
mov byte [ebp + ecx - 0x137], al
jmp 0x46b840
push dword [ebp - 0x245]
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0046a601
add esp, 0xc
movzx eax, byte [ebp - 0x24d]
mov dword [ebp - 0x2a8], eax
movzx eax, byte [ebp - 0x249]
mov dword [ebp - 0x2ac], eax
and dword [ebp - 0x1c], 0
jmp 0x46b8cd
mov eax, dword [ebp - 0x1c]
inc eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x100
jge 0x46b951
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x138]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x2ac]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x581120]
mov dword [edx + ecx*4 + 0x928], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [ebp + eax - 0x137]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x2ac]
movzx eax, byte [eax + 0x578e80]
xor eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x1c]
shl ecx, 1
mov edx, dword [ebp + 8]
mov eax, dword [eax*4 + 0x581120]
mov dword [edx + ecx*4 + 0x930], eax
jmp 0x46b8c5
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
test eax, eax
jne 0x46b967
push 0
push dword [ebp + 8]
call fcn.0046bc2b
pop ecx
pop ecx
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x38]
xor ecx, dword [ebp + 4]
call fcn.0049c63c
leave
ret