Function at 0x43ef70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x28
mov dword [esp + 0x10], ecx
cmp dword [ecx + 8], 0
je 0x43f053
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x43f053
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0xc0c7c6c5
mov word [esp + 8], 0
mov ebx, 0x1e0e2d1
mov edi, 0xaa1f1d2e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx - 0x1e0e2cd]
mov edx, edi
and edx, 0xaa1f0c21
mov eax, ebx
and eax, 0x1c0029e
or eax, edx
xor eax, ecx
mov ecx, eax
xor ecx, 0xfe3fec61
mov edx, eax
xor edx, 0x535b8274
and edx, ecx
mov ecx, edx
and ecx, 0xfd
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
xor esi, 2
imul esi, ecx
xor eax, 0x8b
add eax, edx
add eax, esi
inc al
mov byte [esp + ebx - 0x1e0e2cd], al
inc ebx
dec edi
cmp ebx, 0x1e0e2d7
jne 0x43efc0
mov eax, dword [esp + 4]
mov edx, dword [0x452164]
test edx, edx
je 0x43f0d0
xor edi, edi
mov ebx, dword [0x452168]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xdef797a3
je 0x43f0b0
inc edi
cmp edx, edi
jne 0x43f040
jmp 0x43f0d0
mov dword [esp + 4], 0xb9fafbf4
mov edx, 0xcb5062ab
movzx eax, byte [esp + edx + 0x34af9d59]
mov ebx, eax
mov esi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xad
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xa9
mov byte [esp + edx + 0x34af9d59], al
inc edx
cmp edx, 0xcb5062af
jne 0x43f060
mov eax, dword [esp + 4]
jmp 0x43f225
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, eax
je 0x43f0d0
push dword [ebp + 8]
push dword [esp + 0x10]
push 2
push dword [0x45216c]
push ecx
call fcn.00442160
add esp, 0x14
cmp dword [ebp + 0xc], 1
mov ecx, dword [ebp + 0x10]
sbb ecx, 0
jl 0x43f214
cmp eax, 0xc000010a
jne 0x43f214
mov ebx, dword [ebp + 0xc]
mov ecx, ebx
and ecx, 0x270f
mov eax, ebx
and eax, 0xffffd8f0
mov dword [esp + 0x14], eax
xor eax, 0xffffd8f0
mov edi, dword [ebp + 0x10]
mov esi, edi
not esi
imul esi, ecx
mul ecx
mov dword [esp + 0xc], eax
mov ecx, edx
add ecx, esi
or ebx, 0xffffd8f0
mov eax, ebx
mov esi, dword [esp + 0x14]
mul esi
imul edi, ebx
add edx, edi
sub edx, esi
add eax, dword [esp + 0xc]
adc edx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0xc0c7c6c5
mov word [esp + 8], 0
mov eax, 0x1e0e2d1
mov esi, 0xaa1f1d2e
movzx ecx, byte [esp + eax - 0x1e0e2cd]
mov edi, esi
and edi, 0xaa1f0c21
mov ebx, eax
and ebx, 0x1c0029e
or ebx, edi
xor ebx, ecx
mov edi, ebx
xor edi, 0xfe3fec61
mov ecx, ebx
xor ecx, 0x535b8274
and ecx, edi
mov edi, ecx
and edi, 0xfd
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
xor edx, 2
imul edx, edi
xor ebx, 0x8b
add ebx, ecx
add ebx, edx
inc bl
mov byte [esp + eax - 0x1e0e2cd], bl
inc eax
dec esi
cmp eax, 0x1e0e2d7
jne 0x43f160
mov eax, dword [esp + 4]
mov ecx, dword [0x452164]
test ecx, ecx
je 0x43f214
xor esi, esi
mov edi, dword [0x452168]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x53f09cfa
je 0x43f1f0
inc esi
cmp ecx, esi
jne 0x43f1e0
jmp 0x43f214
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, eax
je 0x43f214
lea eax, [esp + 0x18]
push eax
push 0
push dword [esp + 0x14]
push 3
push dword [0x45216c]
push ecx
call fcn.00442160
add esp, 0x18
test eax, eax
js 0x43f225
mov ecx, dword [esp + 0x10]
mov esi, eax
call fcn.0043ee80
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc