Function at 0x43b080
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov eax, dword [ebp + 8]
movzx eax, word [eax]
mov dword [esp + 8], 0x9b9af3cd
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov word [esp + 0x14], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xd
ja 0x43b119
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
lea esi, [ecx + 0x94]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0x908c3694
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
mov edx, ecx
or edx, 0xf3
and ecx, 0xf3
add ecx, edx
inc cl
mov edx, dword [esp]
mov byte [esp + edx + 8], cl
mov ecx, dword [esp]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp], ecx
mov ecx, dword [esp]
cmp ecx, 0xe
jb case.default.0x43b124
xor ecx, ecx
cmp dword [esp + 8], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x4474e8]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov edx, dword [edx + ecx]
mov dword [esp + 8], 0x33348e86
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov esi, dword [esp]
cmp esi, 0xb
ja 0x43b19a
nop
nop
nop
nop
nop
mov esi, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 8]
lea ebx, [esi - 0x4737c077]
add esi, 0x89
and esi, edi
or ebx, edi
sub ebx, esi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 4]
add bl, 0x41
mov esi, dword [esp]
mov byte [esp + esi + 8], bl
inc dword [esp]
mov esi, dword [esp]
cmp esi, 0xc
jb 0x43b160
xor ebx, ebx
cmp edx, dword [esp + 8]
setne bl
jmp dword [ebx*4 + 0x4474f0]
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov esi, dword [edx + ecx + 0x78]
mov edx, dword [edx + ecx + 0x7c]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x4474f8]
jmp dword [0x44750c]
xor ecx, ecx
test esi, esi
sete cl
jmp dword [ecx*4 + 0x447510]
mov dword [esp + 0x1c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + esi + 0x20]
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + esi + 0x24]
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + esi + 0x1c]
add ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], esi
mov edx, dword [eax + esi + 0x18]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x30], edx
cmp ecx, edx
setb al
mov edx, dword [case.0x43a5a5.235]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x34], edx
jmp dword [eax*4 + 0x447518]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
mov esi, dword [eax + ecx*4]
add esi, dword [ebp + 8]
mov eax, 0xffffffff
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
lea ecx, [ecx + 1]
jne 0x43b260
test eax, eax
je 0x43b290
cmp eax, 4
jae 0x43b2a0
mov ecx, 0xdca9bcf
test al, 3
jne 0x43b2ee
jmp 0x43b311
mov ecx, 0xdca9bcf
jmp 0x43b311
mov ebx, edx
and ebx, 0xfffffffc
mov ecx, 0xdca9bcf
nop
nop
nop
nop
nop
nop
movsx edi, byte [esi]
xor edi, ecx
imul ecx, edi, 0x1000193
movsx edi, byte [esi + 1]
xor edi, ecx
imul ecx, edi, 0x1000193
movsx edi, byte [esi + 2]
xor edi, ecx
imul ecx, edi, 0x1000193
movsx edi, byte [esi + 3]
add esi, 4
xor edi, ecx
imul ecx, edi, 0x1000193
add ebx, 0xfffffffc
jne 0x43b2b0
mov ebx, dword [ebp + 0xc]
test al, 3
je 0x43b311
and edx, 3
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx edi, byte [esi + eax]
xor edi, ecx
imul ecx, edi, 0x1000193
inc eax
cmp edx, eax
jne 0x43b300
xor eax, eax
cmp ecx, ebx
setne al
mov edx, dword [esp + 0x34]
jmp dword [eax*4 + 0x447520]
mov ecx, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x447558]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret