Function at 0x43c2e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x18
mov dword [esp + 8], ecx
cmp dword [ecx + 8], 0
je 0x43c393
mov eax, dword [esp + 8]
mov eax, dword [eax]
test eax, eax
je 0x43c393
mov dword [esp + 0xc], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp], 0x282b2a25
xor eax, eax
xor edi, edi
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edi]
mov ecx, esi
not ecx
mov edx, edi
xor edx, 0xd1271dc7
add edx, eax
and ecx, 0x68
xor esi, 0x89eb3f68
or esi, ecx
xor edx, 0x89eb3f68
mov ecx, esi
and ecx, edx
add edx, esi
add ecx, ecx
sub edx, ecx
add dl, 0x1d
mov byte [esp + edi], dl
inc edi
add eax, 2
cmp edi, 4
jne 0x43c320
mov eax, dword [esp]
mov edx, dword [0x44cdac]
test edx, edx
je 0x43c425
xor esi, esi
mov edi, dword [0x44cdb0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xaf0e0c2e
je 0x43c405
inc esi
cmp edx, esi
jne 0x43c380
jmp 0x43c425
mov dword [esp], 0xcf0e0910
mov byte [esp + 4], 0
mov eax, 0x8e1e3df7
mov edi, 0x71e1c208
mov edx, 0x1c787082
nop
nop
movzx ecx, byte [esp + eax + 0x71e1c209]
mov ebx, edx
and ebx, ecx
add ebx, ebx
mov esi, ecx
sub esi, ebx
add esi, eax
mov dword [esp + 8], esi
sub ebx, ecx
add ebx, edi
mov ecx, ebx
and ebx, 0x60
and esi, 0x9f
or esi, ebx
not ecx
xor esi, 0x61
and ecx, 1
or ecx, esi
mov esi, dword [esp + 8]
and esi, 1
add ecx, esi
mov byte [esp + eax + 0x71e1c209], cl
inc eax
dec edi
inc edx
cmp eax, 0x8e1e3dfc
jne 0x43c3b0
mov eax, dword [esp]
jmp 0x43c540
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x43c425
push dword [ebp + 8]
push dword [esp + 0x10]
push 8
push edx
push dword [0x44cdb4]
call fcn.0043e5b0
add esp, 0x14
cmp ebx, 1
mov ecx, dword [ebp + 0x10]
sbb ecx, 0
jl 0x43c52f
cmp eax, 0xc000010a
jne 0x43c52f
mov esi, ebx
and esi, 0xffffd8f0
mov eax, esi
xor eax, 0xffffd8f0
mov ecx, ebx
and ecx, 0x270f
mul ecx
mov dword [esp + 0xc], eax
mov edi, edx
mov eax, ebx
mov ebx, dword [ebp + 0x10]
mov edx, ebx
not edx
imul edx, ecx
add edi, edx
or eax, 0xffffd8f0
imul ebx, eax
mul esi
add edx, ebx
sub edx, esi
add eax, dword [esp + 0xc]
adc edx, edi
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov dword [esp + 0x10], 0x282b2a25
xor eax, eax
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi + 0x10]
mov edi, ecx
not edi
mov ebx, esi
xor ebx, 0xd1271dc7
add ebx, eax
and edi, 0x68
xor ecx, 0x89eb3f68
or ecx, edi
xor ebx, 0x89eb3f68
mov edi, ecx
and edi, ebx
add ebx, ecx
add edi, edi
sub ebx, edi
add bl, 0x1d
mov byte [esp + esi + 0x10], bl
inc esi
add eax, 2
cmp esi, 4
jne 0x43c4a0
mov eax, dword [esp + 0x10]
mov ecx, dword [0x44cdac]
test ecx, ecx
je 0x43c52f
xor esi, esi
mov edi, dword [0x44cdb0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x4c697c35
je 0x43c510
inc esi
cmp ecx, esi
jne 0x43c500
jmp 0x43c52f
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, eax
je 0x43c52f
mov eax, esp
push eax
push 0
push edx
push 0xc
push ecx
push dword [0x44cdb4]
call fcn.0043e5b0
add esp, 0x18
test eax, eax
js 0x43c540
mov ecx, dword [esp + 8]
mov esi, eax
call fcn.0043c220
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc