Function at 0x592ba0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
lea edi, [edx + ecx - 0x21524111]
push esi
mov esi, eax
and eax, 3
push ebx
mov ecx, edi
mov ebx, edi
je 0x592ca1
test esi, 1
jne 0x592d5a
cmp edx, 0xc
jbe switch.0x00592c49
nop
lea esi, [esi]
movzx eax, word [esi + 6]
movzx ebp, word [esi + 4]
shl eax, 0x10
add eax, ebp
movzx ebp, word [esi + 8]
add ebx, eax
movzx eax, word [esi + 0xa]
shl eax, 0x10
add eax, ebp
movzx ebp, word [esi]
add ecx, eax
movzx eax, word [esi + 2]
shl eax, 0x10
add eax, ebp
sub eax, ecx
add edi, eax
mov eax, ecx
add ecx, ebx
rol eax, 4
xor edi, eax
mov eax, edi
sub ebx, edi
add edi, ecx
rol eax, 6
xor ebx, eax
mov eax, ebx
sub ecx, ebx
add ebx, edi
rol eax, 8
xor ecx, eax
mov eax, ecx
sub edi, ecx
add ecx, ebx
rol eax, 0x10
xor edi, eax
mov eax, edi
sub ebx, edi
add edi, ecx
ror eax, 0xd
xor ebx, eax
mov eax, ebx
sub ecx, ebx
rol eax, 4
xor ecx, eax
add ebx, edi
sub edx, 0xc
add esi, 0xc
cmp edx, 0xc
ja 0x592bd0
jmp dword [edx*4 + 0x727708]
add ecx, dword [esi + 8]
add ebx, dword [esi + 4]
sub edx, 0xc
add esi, 0xc
sub edi, ecx
add edi, dword [esi - 0xc]
mov eax, ecx
rol eax, 4
add ecx, ebx
xor edi, eax
mov eax, edi
sub ebx, edi
add edi, ecx
rol eax, 6
xor ebx, eax
mov eax, ebx
sub ecx, ebx
add ebx, edi
rol eax, 8
xor ecx, eax
mov eax, ecx
sub edi, ecx
add ecx, ebx
rol eax, 0x10
xor edi, eax
mov eax, edi
sub ebx, edi
add edi, ecx
ror eax, 0xd
xor ebx, eax
mov eax, ebx
sub ecx, ebx
add ebx, edi
rol eax, 4
xor ecx, eax
cmp edx, 0xc
ja case.default.0x592ca6
jmp dword [edx*4 + 0x72773c]
movzx ebp, byte [esi + 5]
movzx eax, byte [esi + 6]
shl ebp, 8
shl eax, 0x10
add eax, ebp
movzx ebp, byte [esi + 4]
add ebp, eax
movzx eax, byte [esi + 7]
shl eax, 0x18
add eax, ebp
movzx ebp, byte [esi + 9]
add ebx, eax
movzx eax, byte [esi + 0xa]
shl ebp, 8
shl eax, 0x10
add eax, ebp
movzx ebp, byte [esi + 8]
add ebp, eax
movzx eax, byte [esi + 0xb]
shl eax, 0x18
add eax, ebp
movzx ebp, byte [esi + 1]
add ecx, eax
movzx eax, byte [esi + 2]
shl ebp, 8
shl eax, 0x10
add eax, ebp
movzx ebp, byte [esi]
add ebp, eax
movzx eax, byte [esi + 3]
shl eax, 0x18
add eax, ebp
sub eax, ecx
add edi, eax
mov eax, ecx
add ecx, ebx
rol eax, 4
xor edi, eax
mov eax, edi
sub ebx, edi
add edi, ecx
rol eax, 6
xor ebx, eax
mov eax, ebx
sub ecx, ebx
rol eax, 8
xor ecx, eax
add ebx, edi
sub edx, 0xc
mov eax, ecx
sub edi, ecx
add ecx, ebx
rol eax, 0x10
add esi, 0xc
xor edi, eax
mov eax, edi
sub ebx, edi
add edi, ecx
ror eax, 0xd
xor ebx, eax
mov eax, ebx
sub ecx, ebx
add ebx, edi
rol eax, 4
xor ecx, eax
cmp edx, 0xc
ja case.default.0x592d63
jmp dword [edx*4 + 0x727770]
movzx eax, byte [esi + 0xb]
shl eax, 0x18
add ecx, eax
movzx eax, byte [esi + 0xa]
shl eax, 0x10
add ecx, eax
movzx eax, byte [esi + 9]
shl eax, 8
add ecx, eax
movzx eax, byte [esi + 8]
add ecx, eax
movzx eax, byte [esi + 7]
shl eax, 0x18
add ebx, eax
movzx eax, byte [esi + 6]
shl eax, 0x10
add ebx, eax
movzx eax, byte [esi + 5]
shl eax, 8
add ebx, eax
movzx eax, byte [esi + 4]
add ebx, eax
movzx eax, byte [esi + 3]
shl eax, 0x18
add edi, eax
movzx eax, byte [esi + 2]
shl eax, 0x10
add edi, eax
movzx eax, byte [esi + 1]
shl eax, 8
add edi, eax
movzx eax, byte [esi]
add edi, eax
mov edx, ebx
xor ecx, ebx
rol edx, 0xe
sub ecx, edx
mov eax, ecx
xor edi, ecx
rol eax, 0xb
sub edi, eax
mov eax, edi
xor ebx, edi
ror eax, 7
sub ebx, eax
mov eax, ebx
xor ecx, ebx
rol eax, 0x10
sub ecx, eax
mov eax, ecx
xor edi, ecx
rol eax, 4
sub edi, eax
xor ebx, edi
rol edi, 0xe
sub ebx, edi
xor ecx, ebx
ror ebx, 8
mov eax, ecx
sub eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [esi + 0xa]
shl eax, 0x10
add ecx, eax
movzx eax, byte [esi + 9]
shl eax, 8
add ecx, eax
movzx eax, byte [esi + 8]
add ecx, eax
add ebx, dword [esi + 4]
add edi, dword [esi]
jmp 0x592dcc
movzx eax, byte [esi + 6]
shl eax, 0x10
add ebx, eax
movzx eax, byte [esi + 5]
shl eax, 8
add ebx, eax
movzx eax, byte [esi + 4]
add ebx, eax
add edi, dword [esi]
jmp 0x592dcc
mov eax, ecx
jmp 0x592e09
movzx eax, byte [esi + 4]
add ebx, eax
lea esi, [esi]
movzx eax, word [esi]
add edi, eax
movzx eax, word [esi + 2]
shl eax, 0x10
add edi, eax
jmp 0x592dcc
movzx eax, byte [esi + 8]
add ecx, eax
movzx eax, word [esi + 4]
add eax, ebx
movzx ebx, word [esi + 6]
shl ebx, 0x10
add ebx, eax
jmp case.0x592c49.4
add ecx, dword [esi + 8]
add ebx, dword [esi + 4]
add edi, dword [esi]
jmp 0x592dcc
movzx eax, byte [esi + 2]
shl eax, 0x10
add edi, eax
movzx eax, word [esi]
add edi, eax
jmp 0x592dcc
movzx eax, byte [esi + 0xa]
shl eax, 0x10
add ecx, eax
movzx eax, word [esi + 8]
add ecx, eax
jmp case.0x592c49.8
movzx eax, byte [esi + 6]
shl eax, 0x10
add ebx, eax
movzx eax, word [esi + 4]
add ebx, eax
jmp case.0x592c49.4
movzx eax, word [esi + 8]
add eax, ecx
movzx ecx, word [esi + 0xa]
shl ecx, 0x10
add ecx, eax
movzx eax, word [esi + 4]
add ebx, eax
movzx eax, word [esi + 6]
shl eax, 0x10
add ebx, eax
jmp case.0x592c49.4