Function at 0x43aec0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov ebx, ecx
mov dword [esp + 8], 0
mov dword [esp], 0x4c4d4a4b
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax]
lea edi, [eax + 0x27e6f8f2]
mov esi, 0xd
sub esi, eax
mov ecx, esi
or ecx, edx
and esi, 0xd
and edi, 2
or edi, esi
xor edi, 2
lea esi, [eax*2 + 0x4fcdf1e4]
neg esi
add esi, eax
add esi, 0xf1
or esi, edi
and esi, edx
not ecx
or ecx, esi
add cl, 0x46
mov byte [esp + eax], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 7
jb 0x43aef0
mov edi, dword [esp]
mov eax, dword [0x44d300]
test eax, eax
je 0x43af96
xor ecx, ecx
mov edx, dword [0x44d304]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x61813e67
je 0x43af70
inc ecx
cmp eax, ecx
jne 0x43af60
jmp 0x43af96
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x43af96
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 5
push 0x10
push eax
push dword [0x44d308]
call fcn.0043d770
add esp, 0x1c
mov edi, eax
mov dword [esp], 0x94a4b70
mov dword [esp + 4], 0
mov eax, 0x5a60b193
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x5a60b193]
lea ecx, [eax - 0x40000000]
xor edx, 0xc58c74c2
mov esi, eax
and esi, 0x40003082
or esi, 0x18610319
and ecx, 0x1a60811d
xor ecx, esi
xor ecx, 0xdded77db
mov esi, edx
and esi, ecx
add ecx, edx
add esi, esi
sub ecx, esi
mov edx, ecx
and edx, 0x20
xor ecx, 0x20
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x5a60b193], cl
inc eax
cmp eax, 0x5a60b19b
jne 0x43afb0
cmp edi, dword [esp]
jne 0x43b1c4
mov dword [esp + 0x10], ebx
push dword [esp + 8]
call fcn.0043ad80
add esp, 4
mov ebp, dword [esp + 8]
mov dword [esp], 0x4c4d4a4b
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx]
lea esi, [edx + 0x27e6f8f2]
mov ebx, 0xd
sub ebx, edx
mov ecx, ebx
or ecx, edi
and ebx, 0xd
and esi, 2
or esi, ebx
xor esi, 2
lea ebx, [edx*2 + 0x4fcdf1e4]
neg ebx
add ebx, edx
add ebx, 0xf1
or ebx, esi
and ebx, edi
not ecx
or ecx, ebx
add cl, 0x46
mov byte [esp + edx], cl
mov ecx, edx
and ecx, 1
xor edx, 1
lea edx, [edx + ecx*2]
cmp edx, 7
jb 0x43b040
mov edi, dword [esp]
mov ecx, dword [0x44d300]
test ecx, ecx
je 0x43b0e5
xor edx, edx
mov esi, dword [0x44d304]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x61813e67
je 0x43b0c0
inc edx
cmp ecx, edx
jne 0x43b0b0
jmp 0x43b0e5
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, edi
je 0x43b0e5
push 0
push ebp
push eax
push 5
push 0x10
push ecx
push dword [0x44d308]
mov esi, eax
call fcn.0043d770
add esp, 0x1c
mov edi, eax
mov eax, esi
test edi, edi
js 0x43b1bb
mov dword [esp], 0x37766785
mov word [esp + 4], 0
mov ecx, 0x67449116
mov edx, 0x18bb6ee9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x67449116]
lea esi, [edi + edi]
not esi
add esi, edi
not edi
and esi, edi
mov ebx, edx
and ebx, 0x10116c8d
mov ebp, ecx
and ebp, 0x63409002
or ebp, ebx
xor ebp, 0x6bea9262
or ebp, esi
not ebp
and edi, edx
or edi, ebp
lea ebx, [edi + edi]
not ebx
add ebx, edi
add bl, 0x92
mov byte [esp + ecx - 0x67449116], bl
inc ecx
dec edx
cmp ecx, 0x6744911c
jne 0x43b110
mov ecx, dword [esp]
mov dword [esp + 0xc], ecx
mov esi, dword [eax]
mov ecx, eax
mov ebx, dword [esp + 0x28]
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, word [edx + esi]
movzx edi, word [ebx + esi]
test bp, bp
je 0x43b195
add esi, 2
cmp bp, di
je 0x43b180
cmp bp, di
je 0x43b1a6
mov esi, dword [ecx]
test esi, esi
jne 0x43b170
mov edi, dword [esp + 0xc]
jmp 0x43b1bb
mov edx, dword [ecx + 0x44]
mov esi, dword [esp + 0x10]
mov dword [esi + 8], edx
mov ecx, dword [ecx + 0xdc]
mov dword [esi + 0xc], ecx
xor edi, edi
push eax
call fcn.0043ae30
add esp, 4
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 4