Function at 0x413750
Capabilities:
Encode data using xor

Disassembly:
push ebp
test al, 3
push edi
push esi
mov esi, edx
lea edx, [edx + ecx - 0x21524111]
push ebx
mov ecx, edx
mov ebx, eax
mov eax, edx
je 0x41385a
test bl, 1
jne 0x41391c
cmp esi, 0xc
jbe switch.0x004137fb
lea esi, [esi]
movzx edi, word [ebx + 6]
movzx ebp, word [ebx + 4]
shl edi, 0x10
add edi, ebp
movzx ebp, word [ebx + 8]
add edi, eax
movzx eax, word [ebx + 0xa]
shl eax, 0x10
add eax, ebp
movzx ebp, word [ebx]
add eax, ecx
movzx ecx, word [ebx + 2]
shl ecx, 0x10
add ecx, ebp
sub ecx, eax
add edx, ecx
mov ecx, eax
add eax, edi
rol ecx, 4
xor edx, ecx
mov ecx, edi
mov edi, edx
sub ecx, edx
add edx, eax
rol edi, 6
xor edi, ecx
mov ecx, edi
sub eax, edi
add edi, edx
rol ecx, 8
xor ecx, eax
mov eax, ecx
sub edx, ecx
add ecx, edi
rol eax, 0x10
xor edx, eax
mov eax, edx
sub edi, edx
add edx, ecx
ror eax, 0xd
xor eax, edi
mov edi, eax
sub ecx, eax
rol edi, 4
xor ecx, edi
add eax, edx
sub esi, 0xc
add ebx, 0xc
cmp esi, 0xc
ja 0x413780
notrack jmp dword ds:[esi*4 + 0x42ee60]
mov edi, dword [ebx]
add ecx, dword [ebx + 8]
sub esi, 0xc
add ebx, 0xc
add eax, dword [ebx - 8]
sub edi, ecx
add edx, edi
mov edi, ecx
add ecx, eax
rol edi, 4
xor edx, edi
mov edi, edx
sub eax, edx
add edx, ecx
rol edi, 6
xor eax, edi
mov edi, eax
sub ecx, eax
add eax, edx
rol edi, 8
xor ecx, edi
mov edi, ecx
sub edx, ecx
add ecx, eax
rol edi, 0x10
xor edx, edi
mov edi, edx
sub eax, edx
add edx, ecx
ror edi, 0xd
xor eax, edi
mov edi, eax
sub ecx, eax
add eax, edx
rol edi, 4
xor ecx, edi
cmp esi, 0xc
ja case.default.0x41385f
notrack jmp dword ds:[esi*4 + 0x42ee94]
movzx edi, byte [ebx + 5]
movzx ebp, byte [ebx + 6]
shl edi, 8
shl ebp, 0x10
add edi, ebp
movzx ebp, byte [ebx + 4]
add edi, ebp
movzx ebp, byte [ebx + 7]
shl ebp, 0x18
add edi, ebp
movzx ebp, byte [ebx + 0xa]
add edi, eax
movzx eax, byte [ebx + 9]
shl ebp, 0x10
shl eax, 8
add eax, ebp
movzx ebp, byte [ebx + 8]
add eax, ebp
movzx ebp, byte [ebx + 0xb]
shl ebp, 0x18
add eax, ebp
movzx ebp, byte [ebx + 2]
add eax, ecx
movzx ecx, byte [ebx + 1]
shl ebp, 0x10
shl ecx, 8
add ecx, ebp
movzx ebp, byte [ebx]
add ecx, ebp
movzx ebp, byte [ebx + 3]
shl ebp, 0x18
add ecx, ebp
sub ecx, eax
add edx, ecx
mov ecx, eax
add eax, edi
rol ecx, 4
xor edx, ecx
mov ecx, edi
mov edi, edx
sub ecx, edx
add edx, eax
rol edi, 6
xor edi, ecx
mov ecx, edi
sub eax, edi
rol ecx, 8
xor ecx, eax
add edi, edx
sub esi, 0xc
add ebx, 0xc
mov eax, ecx
sub edx, ecx
add ecx, edi
rol eax, 0x10
xor edx, eax
mov eax, edx
sub edi, edx
add edx, ecx
ror eax, 0xd
xor eax, edi
mov edi, eax
sub ecx, eax
add eax, edx
rol edi, 4
xor ecx, edi
cmp esi, 0xc
ja case.default.0x413925
notrack jmp dword ds:[esi*4 + 0x42eec8]
movzx esi, byte [ebx + 0xb]
shl esi, 0x18
add ecx, esi
movzx esi, byte [ebx + 0xa]
shl esi, 0x10
add ecx, esi
movzx esi, byte [ebx + 9]
shl esi, 8
add ecx, esi
movzx esi, byte [ebx + 8]
add ecx, esi
movzx esi, byte [ebx + 7]
shl esi, 0x18
add eax, esi
movzx esi, byte [ebx + 6]
shl esi, 0x10
add eax, esi
movzx esi, byte [ebx + 5]
shl esi, 8
add eax, esi
movzx esi, byte [ebx + 4]
add eax, esi
movzx esi, byte [ebx + 3]
shl esi, 0x18
add edx, esi
movzx esi, byte [ebx + 2]
shl esi, 0x10
add edx, esi
movzx esi, byte [ebx + 1]
shl esi, 8
add edx, esi
movzx ebx, byte [ebx]
add edx, ebx
mov ebx, eax
xor ecx, eax
rol ebx, 0xe
sub ecx, ebx
mov ebx, ecx
xor edx, ecx
rol ebx, 0xb
sub edx, ebx
mov ebx, edx
xor eax, edx
ror ebx, 7
sub eax, ebx
mov ebx, eax
xor ecx, eax
rol ebx, 0x10
sub ecx, ebx
mov ebx, ecx
xor edx, ecx
rol ebx, 4
sub edx, ebx
xor eax, edx
rol edx, 0xe
sub eax, edx
xor ecx, eax
ror eax, 8
sub ecx, eax
pop ebx
mov eax, ecx
pop esi
pop edi
pop ebp
ret
movzx esi, byte [ebx + 2]
shl esi, 0x10
add edx, esi
movzx ebx, word [ebx]
add edx, ebx
jmp 0x41398f
movzx esi, byte [ebx + 0xa]
shl esi, 0x10
add ecx, esi
movzx esi, word [ebx + 8]
add ecx, esi
movzx esi, word [ebx + 4]
add esi, eax
movzx eax, word [ebx + 6]
shl eax, 0x10
add eax, esi
movzx esi, word [ebx]
add esi, edx
movzx edx, word [ebx + 2]
shl edx, 0x10
add edx, esi
jmp 0x41398f
movzx esi, byte [ebx + 4]
add edx, dword [ebx]
add eax, esi
jmp 0x41398f
add edx, dword [ebx]
jmp 0x41398f
mov ebx, dword [ebx]
and ebx, 0xffffff
add edx, ebx
jmp 0x41398f
add ecx, dword [ebx + 8]
add eax, dword [ebx + 4]
add edx, dword [ebx]
jmp 0x41398f
mov esi, dword [ebx + 8]
add eax, dword [ebx + 4]
add edx, dword [ebx]
and esi, 0xffffff
add ecx, esi
jmp 0x41398f
movzx esi, word [ebx + 8]
add eax, dword [ebx + 4]
add edx, dword [ebx]
add ecx, esi
jmp 0x41398f
movzx esi, byte [ebx + 8]
add eax, dword [ebx + 4]
add edx, dword [ebx]
add ecx, esi
jmp 0x41398f
add eax, dword [ebx + 4]
add edx, dword [ebx]
jmp 0x41398f
mov esi, dword [ebx + 4]
add edx, dword [ebx]
and esi, 0xffffff
add eax, esi
jmp 0x41398f
movzx esi, word [ebx + 4]
add edx, dword [ebx]
add eax, esi
jmp 0x41398f
movzx esi, byte [ebx + 6]
shl esi, 0x10
add eax, esi
movzx esi, word [ebx + 4]
add eax, esi
jmp case.0x4137fb.4
movzx esi, byte [ebx + 4]
add eax, esi
jmp case.0x4137fb.4
movzx esi, word [ebx + 8]
add esi, ecx
movzx ecx, word [ebx + 0xa]
shl ecx, 0x10
add ecx, esi
jmp case.0x4137fb.8
movzx esi, byte [ebx + 8]
add ecx, esi
jmp case.0x4137fb.8