Function at 0x43b414
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov dword [esp + 8], 0x131211c0
mov dword [esp + 0xc], 0
mov eax, 0x44
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3c]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xac
mov byte [esp + eax - 0x3c], cl
inc eax
cmp eax, 0x4c
jne case.default.0x43b0e0
mov eax, dword [esp + 8]
mov eax, dword fs:[eax]
xor ecx, ecx
cmp dword [esp + 0x30], 0
sete cl
jmp dword [ecx*4 + 0x446e78]
jmp dword [0x446e88]
mov ecx, dword [eax + 0xc]
add ecx, 0xc
mov eax, dword [case.0x43b0e0.12]
mov dword [esp + 0x18], eax
mov dword [esp], 0
mov eax, dword [case.0x43b0e0.7]
mov dword [esp + 0x14], eax
mov edx, dword [ecx]
xor eax, eax
mov dword [esp + 0x10], ecx
cmp edx, ecx
setne al
jmp dword [eax*4 + 0x446e90]
mov dword [esp + 4], edx
mov eax, dword [edx + 0x30]
xor ebx, ebx
test eax, eax
setne bl
mov ebp, 1
mov ecx, dword [esp + 0x30]
mov edx, eax
jmp dword [ebx*4 + 0x446e98]
mov ecx, dword [esp + 0x30]
mov edx, eax
jmp dword [esp + 0x18]
movzx edi, word [ecx]
lea ebx, [edi - 0x41]
cmp bx, 0x1a
jae 0x43b169
or edi, 0x20
movzx ebx, word [edx]
lea esi, [ebx - 0x41]
cmp si, 0x1a
jae 0x43b178
or ebx, 0x20
test di, di
je 0x43b150
add edx, 2
add ecx, 2
cmp di, bx
je case.0x43b0e0.8
jmp 0x43b150
xor eax, eax
cmp di, bx
sete al
jmp dword [eax*4 + 0x446eb0]
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
nop
nop
nop
nop
nop
nop
nop
xor ebp, ebp
jmp dword [esp + 0x14]
mov edx, dword [esp + 4]
jmp dword [ebp*4 + 0x446ec8]
mov edx, dword [edx]
xor eax, eax
cmp edx, dword [esp + 0x10]
setne al
jmp dword [eax*4 + 0x446e90]
mov eax, dword [eax + 8]
mov dword [esp], eax
mov eax, dword [esp]
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
jmp edx
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x446ee0]
jmp 0x43b275
mov ecx, dword [eax + 8]
movzx eax, word [ecx]
mov dword [esp], 0xb18e7543
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov edx, 0x8bc6c5d
movzx ebx, byte [esp + edx - 0x8bc6c5d]
xor ebx, edx
mov esi, ebx
and esi, 1
xor ebx, 1
add ebx, 0x2e
or ebx, esi
add ebx, esi
mov byte [esp + edx - 0x8bc6c5d], bl
inc edx
cmp edx, 0x8bc6c64
jne 0x43b290
xor ebx, ebx
cmp dword [esp], eax
sete bl
xor edx, edx
jmp dword [ebx*4 + 0x446ee8]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x446f10]
jmp 0x43b363
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + eax]
mov dword [esp], 0x73720c00
mov dword [esp + 4], 0
xor esi, esi
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, esi
and ebp, 8
mov ebx, edi
xor ebx, 0x6c
add ebx, ebp
xor bl, byte [esp + edi]
add bl, 0xe4
mov byte [esp + edi], bl
inc edi
add esi, 2
cmp edi, 8
jne case.default.0x43b326
xor ebx, ebx
cmp edx, dword [esp]
sete bl
jmp dword [ebx*4 + 0x446ef0]
xor edx, edx
mov ecx, 1
jmp dword [ecx*4 + 0x446f08]
mov eax, dword [ecx + eax + 0x50]
mov edx, 1
xor ecx, ecx
jmp dword [ecx*4 + 0x446f08]
xor ecx, ecx
xor edx, edx
test ecx, 0
sete dl
jmp dword [edx*4 + 0x446f10]
xor eax, eax
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ebx, ebx
jmp esi
jmp dword [ebx*4 + 0x446f50]
mov edi, dword [edi]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x446f30]
push eax
push eax
mov eax, esp
mov dword [eax], 0x57564938
mov dword [eax + 4], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0xee
xor bl, byte [eax + edx]
add bl, 0x5a
mov byte [eax + edx], bl
inc edx
cmp edx, 8
jne 0x43b470
mov eax, dword [eax]
mov eax, dword fs:[eax]
jmp dword [0x446f60]
push eax
push eax
mov eax, esp
mov dword [eax], 0x57564938
mov dword [eax + 4], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0xee
xor bl, byte [eax + edx]
add bl, 0x5a
mov byte [eax + edx], bl
inc edx
cmp edx, 8
jne 0x43b4b0
mov eax, dword [eax]
mov eax, dword fs:[eax]
jmp case.0x43b0e0.55
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x446f68]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [edx]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x446f70]
jmp dword [0x446f80]
mov eax, dword [esi + 0x28]
xor edi, edi
jmp dword [edi*4 + 0x446f90]
mov esi, dword [esi]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x446f70]
xor ebx, ebx
cmp dword [esi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x446f88]
mov edi, 1
jmp dword [edi*4 + 0x446f90]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, 0x43
add bl, dl
mov cl, 0x43
add al, dh
mov al, 0x43
add al, dh
mov al, 0x43
add dh, dh
mov al, 0x43
add al, dh
mov al, 0x43
add cl, bl
mov cl, 0x43
add byte [eax], dh
mov cl, 0x43
add byte [esi + 0x5a0043b1], dh
mov cl, 0x43
add byte [edx - 0x4f], bl
inc ebx
add byte [edx - 0x4f], bl
inc ebx
add byte [edx - 0x4f], bl
inc ebx
add byte [eax - 0x49ffbc4f], dl
mov cl, 0x43
add byte [edi - 0x4fffbc4f], bl
mov cl, 0x43
add byte [eax - 0x4fffbc4f], dh
mov cl, 0x43
add byte [esi - 0x26ffbc4f], dh
mov cl, 0x43
add cl, al
mov cl, 0x43
add byte [eax - 0x4e], ah
inc ebx
add byte [eax - 0x4e], ah
inc ebx
add byte [edx - 0x4e], ah
inc ebx
add byte [eax - 0x4e], ah
inc ebx
add byte [eax - 0x4e], dh
inc ebx
add byte [edx - 0x4e], dh
inc ebx
add byte [ebp - 0x4d], cl
inc ebx
add ch, bl
mov dl, 0x43
add byte [0x3b0043b3], ch
mov bl, 0x43
add byte [ebx], bh
mov bl, 0x43
add byte [ebx], bh
mov bl, 0x43
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx], bh
mov bl, 0x43
add dl, cl
mov dl, 0x43
add byte [ebp - 0x4d], cl
inc ebx
add al, bl
mov dl, 0x43
add byte [ecx - 0x4d], ah
inc ebx
add dl, dl
mov bl, 0x43
add byte [eax - 0x2fffbc4d], bh
mov bl, 0x43
add al, dl
mov bl, 0x43
add dl, dl
mov bl, 0x43
add al, dl
mov bl, 0x43
add byte [ebx], ch
mov ah, 0x43
add al, dh
mov bl, 0x43
add byte [esp + esi*4], dl
inc ebx
add byte [esp + esi*4], al
inc ebx
add byte [eax], dl
mov ah, 0x43
add byte [eax], dl
mov ah, 0x43
add byte [esp + esi*4], dl
inc ebx
add byte [eax], dl
mov ah, 0x43
add byte [ebx], ch
mov ah, 0x43
add byte [ebx], bl
mov ah, 0x43
add byte [edi - 0x4c], cl
inc ebx
add byte [edi - 0x34ffbc4c], cl
mov ah, 0x43
add byte [edi - 0x26ffbc4c], cl
mov ah, 0x43
add byte [edi - 0x4b], al
inc ebx
add byte [eax], al
mov ch, 0x43
add byte [esi*4 - 0x4affffbd], ch
inc ebx
add byte [eax], al
mov ch, 0x43
add byte [ebp - 0x4b], cl
inc ebx
add byte [eax], al
mov ch, 0x43
add byte [ebx], bh
mov ch, 0x43
add byte [eax], dl
mov ch, 0x43
add byte [ebp - 0x4b], cl
inc ebx
add byte [esi*4 - 0x4a35ffbd], bl
inc ebx
add byte [edi + 0x200043b8], bh