Function at 0x43bcb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov ebp, dword [esp + 0x44]
movzx eax, word [ebp]
mov dword [esp], 0x696a3537
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xe7
xor dl, byte [esp + ecx]
add dl, 0x7d
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 4
jne case.default.0x43bcee
xor ecx, ecx
cmp dword [esp], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x446df8]
mov edx, dword [ebp + 0x3c]
mov eax, dword [ebp + edx]
mov dword [esp], 0x33328c80
mov dword [esp + 4], 0
xor ecx, ecx
nop
nop
nop
mov ebx, ecx
add bl, 0x4c
xor bl, byte [esp + ecx]
add bl, 0x84
mov byte [esp + ecx], bl
inc ecx
cmp ecx, 8
jne case.default.0x43bd30
mov ecx, dword [esp]
xor ebx, ebx
cmp eax, ecx
setne bl
xor eax, eax
jmp dword [ebx*4 + 0x446e00]
mov esi, dword [ebp + edx + 0x7c]
mov edi, dword [ebp + edx + 0x78]
test esi, esi
sete cl
test edi, edi
sete dl
or dl, cl
movzx ecx, dl
mov dword [esp + 0x28], edi
jmp dword [ecx*4 + 0x446e08]
mov dword [esp + 0xc], esi
mov eax, dword [ebp + edi + 0x20]
add eax, ebp
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + edi + 0x24]
add eax, ebp
mov dword [esp + 0x14], eax
mov eax, dword [ebp + edi + 0x1c]
add eax, ebp
mov dword [esp + 0x10], eax
mov ecx, dword [ebp + edi + 0x18]
mov eax, dword [case.0x43bd30.5]
mov dword [esp + 0x20], eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 8], 0
cmp edx, ecx
setb al
mov ecx, dword [case.0x43bd30.7]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], 1
jmp dword [eax*4 + 0x446e10]
jmp dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 8]
mov edi, dword [eax + ecx*4]
add edi, ebp
mov edx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
cmp byte [edi + edx + 1], 0
lea edx, [edx + 1]
lea eax, [eax + 1]
jne 0x43bdf0
mov dword [esp], 0xf6faf441
mov byte [esp + 4], 0
mov ebp, 0xd4
mov esi, 0x2b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi - 0x2b]
mov eax, ebp
xor eax, esi
and eax, ebx
xor eax, esi
add al, 0x29
mov byte [esp + esi - 0x2b], al
dec ebp
inc esi
cmp ebp, 0xcf
jne 0x43be20
mov esi, 0x36c0b43e
test edx, edx
je 0x43beb0
mov ebp, dword [esp]
mov eax, 0x36c0b43e
cmp edx, 4
jb 0x43be8b
mov esi, ecx
and esi, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
movsx ebx, byte [edi]
xor ebx, eax
imul ebx, ebp
movsx eax, byte [edi + 1]
xor eax, ebx
imul eax, ebp
movsx ebx, byte [edi + 2]
xor ebx, eax
imul ebx, ebp
movsx eax, byte [edi + 3]
add edi, 4
xor eax, ebx
imul eax, ebp
add esi, 0xfffffffc
jne 0x43be60
mov esi, eax
test dl, 3
je 0x43beb0
and ecx, 3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx esi, byte [edi + edx]
xor esi, eax
imul esi, ebp
inc edx
mov eax, esi
cmp ecx, edx
jne 0x43bea0
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
jmp dword [esp + 0x24]
xor eax, eax
cmp esi, dword [esp + 0x48]
setne al
jmp dword [eax*4 + 0x446e28]
mov dword [esp], 0xf6faf441
mov byte [esp + 4], 0
mov eax, 0xd4
mov ecx, 0x2b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x2b]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
add dl, 0x29
mov byte [esp + ecx - 0x2b], dl
dec eax
inc ecx
cmp eax, 0xcf
jne 0x43bf10
jmp case.0x43bd30.5
mov ecx, dword [esp + 0x18]
jmp dword [ecx*4 + 0x446e60]
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret