Function at 0x620240
Capabilities:
Encode data using xor
Encrypt data using twofish

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x254
mov eax, dword [0x703eb0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor esi, esi
xor edi, edi
mov dword [ebp - 0x240], eax
cmp dword [0x718110], esi
je 0x620270
call fcn.0061fa40
mov eax, dword [ebp - 0x240]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x254], eax
add eax, 0x3f
lea edx, [ecx + ecx + 8]
mov dword [ebp - 0x250], edx
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
xor ebx, ebx
mov dword [ebp - 0x248], eax
test eax, eax
jle 0x620325
lea ecx, [ebp + eax*4 - 0x21c]
mov dword [ebp - 0x24c], ecx
mov ecx, dword [ebp - 0x240]
lea edx, [ecx + eax*4 + 0x2c]
add ecx, 0x14
mov dword [ebp - 0x244], edx
mov dword [ebp - 0x23c], ecx
mov edi, edi
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ecx - 4]
mov ecx, dword [ecx]
push ecx
push eax
mov dword [ebp + ebx*4 - 0x228], eax
mov dword [ebp + ebx*4 - 0x238], ecx
call fcn.0061f8d0
mov ecx, dword [ebp - 0x244]
mov edx, dword [ebp - 0x24c]
add dword [ebp - 0x23c], 8
mov dword [ecx], eax
mov dword [edx], eax
inc ebx
sub ecx, 4
sub edx, 4
add esp, 8
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x24c], edx
cmp ebx, dword [ebp - 0x248]
jl 0x6202d0
mov eax, dword [ebp - 0x250]
cdq
sub eax, edx
xor ebx, ebx
sar eax, 1
mov dword [ebp - 0x244], ebx
test eax, eax
jle 0x6206be
mov ecx, dword [ebp - 0x248]
mov edx, dword [ebp - 0x240]
and ecx, 3
add edx, 0x44
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x248], edx
mov dword [ebp - 0x250], eax
mov eax, ecx
sub eax, 0
mov dword [ebp - 0x23c], ebx
je 0x6203d1
sub eax, 2
je 0x62041e
dec eax
jne 0x6204ea
mov al, byte [ebp - 0x239]
mov cl, byte [ebp - 0x23a]
mov dl, byte [ebp - 0x23b]
movzx edi, bl
mov bl, byte [edi + 0x718010]
xor bl, byte [ebp - 0x220]
movzx edx, dl
mov dl, byte [edx + 0x718010]
xor dl, byte [ebp - 0x21f]
movzx ecx, cl
mov cl, byte [ecx + 0x717f10]
xor cl, byte [ebp - 0x21e]
movzx eax, al
mov al, byte [eax + 0x717f10]
xor al, byte [ebp - 0x21d]
jmp 0x620436
movzx ecx, byte [ebp - 0x23b]
mov dl, byte [ecx + 0x717f10]
xor dl, byte [ebp - 0x21b]
movzx eax, bl
mov bl, byte [eax + 0x718010]
movzx eax, byte [ebp - 0x23a]
mov cl, byte [eax + 0x717f10]
movzx eax, byte [ebp - 0x239]
mov al, byte [eax + 0x718010]
xor bl, byte [ebp - 0x21c]
xor cl, byte [ebp - 0x21a]
xor al, byte [ebp - 0x219]
jmp 0x620393
mov al, byte [ebp - 0x239]
mov cl, byte [ebp - 0x23a]
mov dl, byte [ebp - 0x23b]
mov bl, byte [ebp - 0x23c]
movzx edi, byte [ebp - 0x221]
movzx eax, al
movzx eax, byte [eax + 0x718010]
xor eax, edi
movzx eax, byte [eax + 0x718010]
movzx edi, byte [ebp - 0x225]
movzx ecx, cl
movzx ecx, byte [ecx + 0x717f10]
xor eax, edi
movzx edi, byte [ebp - 0x222]
xor ecx, edi
movzx ecx, byte [ecx + 0x718010]
movzx edi, byte [ebp - 0x226]
xor ecx, edi
mov edi, dword [eax*4 + 0x721488]
xor edi, dword [ecx*4 + 0x721088]
movzx ecx, byte [ebp - 0x223]
movzx edx, dl
movzx eax, byte [edx + 0x718010]
xor eax, ecx
movzx edx, byte [eax + 0x717f10]
movzx eax, byte [ebp - 0x227]
xor edx, eax
xor edi, dword [edx*4 + 0x720c88]
movzx eax, byte [ebp - 0x224]
movzx ecx, bl
movzx edx, byte [ecx + 0x717f10]
mov ebx, dword [ebp - 0x244]
xor edx, eax
movzx ecx, byte [edx + 0x717f10]
movzx edx, byte [ebp - 0x228]
xor ecx, edx
xor edi, dword [ecx*4 + 0x720888]
mov ecx, dword [ebp - 0x24c]
lea eax, [ebx + 0x1010101]
mov dword [ebp - 0x23c], eax
mov eax, ecx
sub eax, 0
je 0x62056f
sub eax, 2
je 0x6205c0
dec eax
jne 0x620684
mov bl, byte [ebp - 0x239]
mov cl, byte [ebp - 0x23a]
mov dl, byte [ebp - 0x23b]
mov al, byte [ebp - 0x23c]
movzx eax, al
mov al, byte [eax + 0x718010]
xor al, byte [ebp - 0x230]
movzx edx, dl
mov dl, byte [edx + 0x718010]
xor dl, byte [ebp - 0x22f]
mov byte [ebp - 0x23c], al
movzx eax, cl
mov cl, byte [eax + 0x717f10]
xor cl, byte [ebp - 0x22e]
movzx eax, bl
mov al, byte [eax + 0x717f10]
xor al, byte [ebp - 0x22d]
mov ebx, dword [ebp - 0x244]
jmp 0x6205d2
movzx ecx, byte [ebp - 0x23c]
mov al, byte [ecx + 0x718010]
movzx edx, byte [ebp - 0x23b]
movzx ecx, byte [ebp - 0x23a]
movzx esi, byte [ebp - 0x239]
mov dl, byte [edx + 0x717f10]
mov cl, byte [ecx + 0x717f10]
mov bl, byte [esi + 0x718010]
xor al, byte [ebp - 0x22c]
xor dl, byte [ebp - 0x22b]
xor cl, byte [ebp - 0x22a]
xor bl, byte [ebp - 0x229]
jmp 0x620525
mov al, byte [ebp - 0x239]
mov cl, byte [ebp - 0x23a]
mov dl, byte [ebp - 0x23b]
movzx esi, byte [ebp - 0x231]
movzx eax, al
movzx eax, byte [eax + 0x718010]
xor eax, esi
movzx eax, byte [eax + 0x718010]
movzx esi, byte [ebp - 0x235]
movzx ecx, cl
movzx ecx, byte [ecx + 0x717f10]
xor eax, esi
movzx esi, byte [ebp - 0x232]
xor ecx, esi
movzx ecx, byte [ecx + 0x718010]
movzx esi, byte [ebp - 0x236]
xor ecx, esi
mov esi, dword [eax*4 + 0x721488]
xor esi, dword [ecx*4 + 0x721088]
movzx ecx, byte [ebp - 0x233]
movzx edx, dl
movzx eax, byte [edx + 0x718010]
xor eax, ecx
movzx edx, byte [eax + 0x717f10]
movzx eax, byte [ebp - 0x237]
movzx ecx, byte [ebp - 0x23c]
xor edx, eax
xor esi, dword [edx*4 + 0x720c88]
movzx edx, byte [ecx + 0x717f10]
movzx eax, byte [ebp - 0x234]
xor edx, eax
movzx ecx, byte [edx + 0x717f10]
movzx edx, byte [ebp - 0x238]
xor ecx, edx
xor esi, dword [ecx*4 + 0x720888]
mov ecx, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x248]
rol esi, 8
lea edx, [esi + edi]
mov dword [eax - 4], edx
lea esi, [edi + esi*2]
mov edx, esi
rol edx, 9
mov dword [eax], edx
add eax, 8
add ebx, 0x2020202
dec dword [ebp - 0x250]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], ebx
jne 0x620364
mov eax, dword [ebp - 0x254]
sub eax, 0x80
je 0x620cf9
sub eax, 0x40
je 0x620ab7
sub eax, 0x40
jne 0x620a64
mov eax, dword [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x204]
push 0x718010
push ecx
call fcn.0061ff60
add esp, 0xc
xor eax, eax
mov edi, edi
movzx edx, byte [ebp + eax - 0x204]
movzx ecx, byte [edx + 0x718010]
movzx edx, byte [ebp + eax - 0x203]
mov byte [ebp + eax - 0x104], cl
movzx ecx, byte [edx + 0x718010]
mov byte [ebp + eax - 0x103], cl
add eax, 2
cmp eax, 0x100
jl 0x620700
mov edx, dword [ebp - 0x210]
push edx
lea eax, [ebp - 0x104]
push eax
mov ecx, eax
push ecx
call fcn.0061ff60
mov edi, dword [ebp - 0x240]
movzx edx, byte [ebp - 0x218]
movzx esi, byte [ebp - 0x214]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0xe8]
jmp 0x620770
movzx ebx, byte [ebp + eax - 0x104]
movzx ebx, byte [ebx + 0x717f10]
xor ebx, esi
movzx ebx, byte [ebx + 0x717f10]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x720888]
mov dword [ecx - 8], ebx
movzx ebx, byte [ebp + eax - 0x103]
movzx ebx, byte [ebx + 0x717f10]
xor ebx, esi
movzx ebx, byte [ebx + 0x717f10]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x720888]
mov dword [ecx], ebx
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620770
mov edx, dword [ebp - 0x20b]
push edx
lea eax, [ebp - 0x204]
push 0x717f10
push eax
call fcn.0061ff60
add esp, 0xc
xor eax, eax
movzx ecx, byte [ebp + eax - 0x204]
movzx edx, byte [ecx + 0x718010]
movzx ecx, byte [ebp + eax - 0x203]
mov byte [ebp + eax - 0x104], dl
movzx edx, byte [ecx + 0x718010]
mov byte [ebp + eax - 0x103], dl
add eax, 2
cmp eax, 0x100
jl 0x6207e1
mov eax, dword [ebp - 0x20f]
push eax
lea ecx, [ebp - 0x104]
push ecx
mov edx, ecx
push edx
call fcn.0061ff60
movzx edx, byte [ebp - 0x217]
movzx esi, byte [ebp - 0x213]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0xec]
jmp 0x620850
movzx ebx, byte [ebp + eax - 0x104]
movzx ebx, byte [ebx + 0x718010]
xor ebx, esi
movzx ebx, byte [ebx + 0x717f10]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x720c88]
mov dword [ecx - 8], ebx
movzx ebx, byte [ebp + eax - 0x103]
movzx ebx, byte [ebx + 0x718010]
xor ebx, esi
movzx ebx, byte [ebx + 0x717f10]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x720c88]
mov dword [ecx], ebx
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620850
mov eax, dword [ebp - 0x20a]
push eax
lea ecx, [ebp - 0x204]
push 0x717f10
push ecx
call fcn.0061ff60
add esp, 0xc
xor eax, eax
movzx edx, byte [ebp + eax - 0x204]
movzx ecx, byte [edx + 0x717f10]
movzx edx, byte [ebp + eax - 0x203]
mov byte [ebp + eax - 0x104], cl
movzx ecx, byte [edx + 0x717f10]
mov byte [ebp + eax - 0x103], cl
add eax, 2
cmp eax, 0x100
jl 0x6208c1
mov edx, dword [ebp - 0x20e]
push edx
lea eax, [ebp - 0x104]
push eax
mov ecx, eax
push ecx
call fcn.0061ff60
movzx edx, byte [ebp - 0x216]
movzx esi, byte [ebp - 0x212]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0x8e8]
jmp 0x620930
movzx ebx, byte [ebp + eax - 0x104]
movzx ebx, byte [ebx + 0x717f10]
xor ebx, esi
movzx ebx, byte [ebx + 0x718010]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x721088]
mov dword [ecx - 8], ebx
movzx ebx, byte [ebp + eax - 0x103]
movzx ebx, byte [ebx + 0x717f10]
xor ebx, esi
movzx ebx, byte [ebx + 0x718010]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x721088]
mov dword [ecx], ebx
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620930
mov edx, dword [ebp - 0x209]
push edx
lea eax, [ebp - 0x204]
push 0x718010
push eax
call fcn.0061ff60
add esp, 0xc
xor eax, eax
movzx ecx, byte [ebp + eax - 0x204]
movzx edx, byte [ecx + 0x717f10]
movzx ecx, byte [ebp + eax - 0x203]
mov byte [ebp + eax - 0x104], dl
movzx edx, byte [ecx + 0x717f10]
mov byte [ebp + eax - 0x103], dl
add eax, 2
cmp eax, 0x100
jl 0x6209a1
mov eax, dword [ebp - 0x20d]
push eax
lea ecx, [ebp - 0x104]
push ecx
mov edx, ecx
push edx
call fcn.0061ff60
movzx edx, byte [ebp - 0x215]
movzx esi, byte [ebp - 0x211]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0x8ec]
jmp 0x620a10
movzx edi, byte [ebp + eax - 0x104]
movzx edi, byte [edi + 0x718010]
xor edi, esi
movzx edi, byte [edi + 0x718010]
xor edi, edx
mov edi, dword [edi*4 + 0x721488]
mov dword [ecx - 8], edi
movzx edi, byte [ebp + eax - 0x103]
movzx edi, byte [edi + 0x718010]
xor edi, esi
movzx edi, byte [edi + 0x718010]
xor edi, edx
mov edi, dword [edi*4 + 0x721488]
mov dword [ecx], edi
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620a10
mov edi, dword [ebp - 0x240]
cmp byte [edi], 0
jne 0x620aa1
mov ecx, dword [edi + 0xc]
lea eax, [edi + 0x60]
lea ecx, [eax + ecx*8 - 8]
cmp eax, ecx
jae 0x620a9e
lea ecx, [ecx]
mov ebx, dword [ecx]
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov dword [ecx], edx
mov dword [ecx + 4], esi
add eax, 8
sub ecx, 8
cmp eax, ecx
jb 0x620a80
mov byte [edi], 0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.00521602
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x210]
push eax
lea ecx, [ebp - 0x104]
push 0x718010
push ecx
call fcn.0061ff60
mov edi, dword [ebp - 0x240]
movzx edx, byte [ebp - 0x218]
movzx esi, byte [ebp - 0x214]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0xe8]
mov edi, edi
movzx ebx, byte [ebp + eax - 0x104]
movzx ebx, byte [ebx + 0x717f10]
xor ebx, esi
movzx ebx, byte [ebx + 0x717f10]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x720888]
mov dword [ecx - 8], ebx
movzx ebx, byte [ebp + eax - 0x103]
movzx ebx, byte [ebx + 0x717f10]
xor ebx, esi
movzx ebx, byte [ebx + 0x717f10]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x720888]
mov dword [ecx], ebx
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620af0
mov edx, dword [ebp - 0x20f]
push edx
lea eax, [ebp - 0x104]
push 0x718010
push eax
call fcn.0061ff60
movzx edx, byte [ebp - 0x217]
movzx esi, byte [ebp - 0x213]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0xec]
jmp 0x620b80
movzx ebx, byte [ebp + eax - 0x104]
movzx ebx, byte [ebx + 0x718010]
xor ebx, esi
movzx ebx, byte [ebx + 0x717f10]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x720c88]
mov dword [ecx - 8], ebx
movzx ebx, byte [ebp + eax - 0x103]
movzx ebx, byte [ebx + 0x718010]
xor ebx, esi
movzx ebx, byte [ebx + 0x717f10]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x720c88]
mov dword [ecx], ebx
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620b80
mov ecx, dword [ebp - 0x20e]
push ecx
lea edx, [ebp - 0x104]
push 0x717f10
push edx
call fcn.0061ff60
movzx edx, byte [ebp - 0x216]
movzx esi, byte [ebp - 0x212]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0x8e8]
jmp 0x620c10
movzx ebx, byte [ebp + eax - 0x104]
movzx ebx, byte [ebx + 0x717f10]
xor ebx, esi
movzx ebx, byte [ebx + 0x718010]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x721088]
mov dword [ecx - 8], ebx
movzx ebx, byte [ebp + eax - 0x103]
movzx ebx, byte [ebx + 0x717f10]
xor ebx, esi
movzx ebx, byte [ebx + 0x718010]
xor ebx, edx
mov ebx, dword [ebx*4 + 0x721088]
mov dword [ecx], ebx
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620c10
mov eax, dword [ebp - 0x20d]
push eax
lea ecx, [ebp - 0x104]
push 0x717f10
push ecx
call fcn.0061ff60
movzx edx, byte [ebp - 0x215]
movzx esi, byte [ebp - 0x211]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0x8ec]
jmp 0x620ca0
movzx edi, byte [ebp + eax - 0x104]
movzx edi, byte [edi + 0x718010]
xor edi, esi
movzx edi, byte [edi + 0x718010]
xor edi, edx
mov edi, dword [edi*4 + 0x721488]
mov dword [ecx - 8], edi
movzx edi, byte [ebp + eax - 0x103]
movzx edi, byte [edi + 0x718010]
xor edi, esi
movzx edi, byte [edi + 0x718010]
xor edi, edx
mov edi, dword [edi*4 + 0x721488]
mov dword [ecx], edi
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620ca0
jmp 0x620a64
mov edx, dword [ebp - 0x214]
push edx
lea eax, [ebp - 0x104]
push 0x717f10
push eax
call fcn.0061ff60
mov edi, dword [ebp - 0x240]
movzx edx, byte [ebp - 0x218]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0xe8]
lea esp, [esp]
movzx esi, byte [ebp + eax - 0x104]
movzx esi, byte [esi + 0x717f10]
xor esi, edx
mov esi, dword [esi*4 + 0x720888]
mov dword [ecx - 8], esi
movzx esi, byte [ebp + eax - 0x103]
movzx esi, byte [esi + 0x717f10]
xor esi, edx
mov esi, dword [esi*4 + 0x720888]
mov dword [ecx], esi
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620d30
mov ecx, dword [ebp - 0x213]
push ecx
lea edx, [ebp - 0x104]
push 0x718010
push edx
call fcn.0061ff60
movzx edx, byte [ebp - 0x217]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0xec]
lea esp, [esp]
movzx esi, byte [ebp + eax - 0x104]
movzx esi, byte [esi + 0x717f10]
xor esi, edx
mov esi, dword [esi*4 + 0x720c88]
mov dword [ecx - 8], esi
movzx esi, byte [ebp + eax - 0x103]
movzx esi, byte [esi + 0x717f10]
xor esi, edx
mov esi, dword [esi*4 + 0x720c88]
mov dword [ecx], esi
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620da0
mov eax, dword [ebp - 0x212]
push eax
lea ecx, [ebp - 0x104]
push 0x717f10
push ecx
call fcn.0061ff60
movzx edx, byte [ebp - 0x216]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0x8e8]
lea esp, [esp]
movzx esi, byte [ebp + eax - 0x104]
movzx esi, byte [esi + 0x718010]
xor esi, edx
mov esi, dword [esi*4 + 0x721088]
mov dword [ecx - 8], esi
movzx esi, byte [ebp + eax - 0x103]
movzx esi, byte [esi + 0x718010]
xor esi, edx
mov esi, dword [esi*4 + 0x721088]
mov dword [ecx], esi
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620e10
mov edx, dword [ebp - 0x211]
push edx
lea eax, [ebp - 0x104]
push 0x718010
push eax
call fcn.0061ff60
movzx edx, byte [ebp - 0x215]
add esp, 0xc
xor eax, eax
lea ecx, [edi + 0x8ec]
lea esp, [esp]
movzx esi, byte [ebp + eax - 0x104]
movzx esi, byte [esi + 0x718010]
xor esi, edx
mov esi, dword [esi*4 + 0x721488]
mov dword [ecx - 8], esi
movzx esi, byte [ebp + eax - 0x103]
movzx esi, byte [esi + 0x718010]
xor esi, edx
mov esi, dword [esi*4 + 0x721488]
mov dword [ecx], esi
add eax, 2
add ecx, 0x10
cmp eax, 0x100
jl 0x620e80
jmp 0x620a6a