Function at 0x43bbd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
je 0x43bc1b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x43bbf0
lea esi, [eax + ecx]
add esi, 0xfffffffe
mov edx, eax
not edx
and edx, esi
add ecx, eax
mov esi, 1
sub esi, ecx
and esi, eax
sub edx, esi
and edx, 0xfffe
mov ecx, edx
mov word [esp + 0x10], cx
mov edx, eax
test eax, eax
je 0x43bc2b
add ecx, 2
mov edx, ecx
mov word [esp + 0x12], dx
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x504f4e4d
mov dword [esp + 8], 0
lea eax, [esp + 4]
mov ecx, 0x74b3c072
nop
nop
nop
movzx esi, byte [eax]
mov edx, ecx
or edx, esi
lea edi, [ecx - 0x74b3c000]
and edi, esi
not edx
or edx, edi
add edx, 0x43cca59a
mov esi, edx
and esi, 0x3e
xor edx, 0x3e
lea edx, [edx + esi*2]
add dl, 0x67
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x74b3c06a
jne 0x43bc50
mov ebx, dword [esp + 4]
mov eax, dword [0x446f44]
test eax, eax
je 0x43bcdf
xor ecx, ecx
mov edx, dword [0x446f48]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0xc0a4c970
je 0x43bcb0
inc ecx
cmp eax, ecx
jne 0x43bca0
jmp 0x43bcdf
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebx
je 0x43bcdf
lea ecx, [esp + 0xc]
lea edx, [esp + 0x10]
push ecx
push 0
push 0
push 2
push edx
push dword [esp + 0x4c]
push 6
push eax
push dword [0x446f4c]
call fcn.00437050
add esp, 0x24
mov ebx, eax
mov dword [esp + 4], 0xd7161947
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov eax, 0xc8e5a506
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x371a5afe]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xe2
mov byte [esp + eax + 0x371a5afe], cl
inc eax
cmp eax, 0xc8e5a50d
jne 0x43bd00
cmp ebx, dword [esp + 4]
jne 0x43beee
push dword [esp + 0xc]
call fcn.00434740
add esp, 4
mov dword [esp], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x919e9f9e
mov byte [esp + 0x20], 0
lea edx, [esp + 0x1c]
mov ebp, 0x5a
nop
nop
movzx ecx, byte [edx]
mov ebx, ebp
or ebx, ecx
lea eax, [ebp - 0x12c70900]
lea edi, [ecx + ecx]
not edi
add edi, ecx
mov esi, eax
or esi, ecx
and ecx, 0x3c
and edi, 0xc3
or edi, ecx
xor edi, eax
xor edi, 0x3c
and edi, esi
not ebx
or ebx, edi
add bl, 0xc7
mov byte [edx], bl
inc edx
dec ebp
cmp ebp, 0x55
jne 0x43bd60
mov edx, dword [esp + 0x1c]
mov dword [esp + 4], 0x504f4e4d
mov dword [esp + 8], 0
lea ebx, [esp + 4]
mov ebp, 0x74b3c072
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx]
mov ecx, ebp
or ecx, eax
lea esi, [ebp - 0x74b3c000]
and esi, eax
not ecx
or ecx, esi
add ecx, 0x43cca59a
mov eax, ecx
and eax, 0x3e
xor ecx, 0x3e
lea eax, [ecx + eax*2]
add al, 0x67
mov byte [ebx], al
inc ebx
dec ebp
cmp ebp, 0x74b3c06a
jne 0x43bdc0
mov ebx, dword [esp + 4]
mov edi, dword [0x446f44]
test edi, edi
je 0x43be5e
xor ebp, ebp
mov ecx, dword [0x446f48]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ecx + ebp*8], 0xc0a4c970
je 0x43be2b
mov eax, ebp
and eax, 1
xor ebp, 1
lea ebp, [ebp + eax*2]
cmp ebp, edi
jb 0x43be10
jmp 0x43be5e
mov ebp, dword [ecx + ebp*8 + 4]
cmp ebp, ebx
je 0x43be5e
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
push dword [esp + 0x1c]
mov eax, dword [esp + 8]
push eax
push edx
push ecx
push dword [esp + 0x4c]
push 6
push ebp
push dword [0x446f4c]
call fcn.00437050
add esp, 0x24
mov ebx, eax
test ebx, ebx
mov ecx, dword [esp + 0x44]
js 0x43bee3
mov edx, dword [esp + 0x40]
test edx, edx
je 0x43be76
mov eax, dword [esp]
mov eax, dword [eax + 4]
mov dword [edx], eax
cmp dword [esp + 0x48], 0
je 0x43bee3
test ecx, ecx
je 0x43bed7
mov eax, dword [esp + 0x48]
mov edx, dword [eax]
mov eax, dword [esp]
mov ecx, dword [eax + 8]
cmp edx, ecx
jb 0x43be93
mov edx, ecx
mov eax, dword [esp]
lea esi, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov ebp, dword [esp + 0x44]
mov edi, ebp
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, edx
and ecx, 0xfffffffc
add ebp, ecx
lea esi, [eax + ecx]
add esi, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov eax, esi
mov edi, ebp
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test dl, 1
je 0x43bed7
and edx, 2
movzx eax, byte [esi + edx]
mov byte [ebp + edx], al
mov eax, dword [esp]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x48]
mov dword [ecx], eax
push dword [esp]
call fcn.004347a0
add esp, 4
mov eax, ebx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret