Function at 0x43a9d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0
mov dword [esp], 0xb4b58a8b
mov byte [esp + 4], 0
mov edi, 0x1e
mov ecx, 0x17a346e1
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi - 0x1e]
mov eax, edi
xor eax, ecx
and eax, edx
xor eax, ecx
xor eax, 0x40
and eax, edi
add al, al
sub dl, al
movzx eax, dl
add eax, edi
add al, 0x6a
mov byte [esp + edi - 0x1e], al
inc edi
dec ecx
cmp edi, 0x23
jne 0x43aa00
mov eax, dword [esp]
mov esi, dword [0x44d398]
test esi, esi
je 0x43aa74
xor ecx, ecx
mov edx, dword [0x44d39c]
nop
nop
nop
cmp dword [edx + ecx*8], 0x61813e67
je 0x43aa50
inc ecx
cmp esi, ecx
jne 0x43aa40
jmp 0x43aa74
mov edx, dword [edx + ecx*8 + 4]
cmp edx, eax
je 0x43aa74
lea ecx, [esp + 0xc]
push ecx
push 0
push 0
push 5
push 0x10
push edx
push dword [0x44d3a0]
call fcn.0043dc10
add esp, 0x1c
mov dword [esp + 8], eax
mov dword [esp], 0xf4e494c
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax]
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 0x858c5f12
add ecx, esi
mov ebp, ecx
and ebp, edx
mov esi, ebp
and esi, 2
mov edi, ebp
or edi, 0xfffffffd
inc edi
mov ebx, ebp
and ebx, 0x15
imul ebx, edi
or ebp, 2
imul ebp, esi
sub ebx, ebp
add ecx, edx
add ecx, ebx
mov esi, ecx
xor esi, 0x9bbddb5a
mov edx, ecx
or edx, 0x644224a5
and edx, esi
mov esi, edx
and esi, 0xfd
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
xor edi, 2
imul edi, esi
lea esi, [ecx + ecx]
and esi, 0x4a
sub ecx, esi
add ecx, edx
add ecx, edi
add cl, 0xa6
mov byte [esp + eax], cl
inc eax
cmp eax, 4
jne 0x43aa90
mov edi, dword [esp + 8]
cmp edi, dword [esp]
jne 0x43acb4
push dword [esp + 0xc]
call fcn.0043a8b0
add esp, 4
mov ebp, dword [esp + 0xc]
mov dword [esp], 0xb4b58a8b
mov byte [esp + 4], 0
mov esi, 0x1e
mov edi, 0x17a346e1
nop
nop
nop
nop
movzx ecx, byte [esp + esi - 0x1e]
mov edx, esi
xor edx, edi
and edx, ecx
xor edx, edi
xor edx, 0x40
and edx, esi
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, esi
add cl, 0x6a
mov byte [esp + esi - 0x1e], cl
inc esi
dec edi
cmp esi, 0x23
jne 0x43ab40
mov edi, dword [esp]
mov ecx, dword [0x44d398]
test ecx, ecx
je 0x43abb5
xor edx, edx
mov esi, dword [0x44d39c]
nop
nop
cmp dword [esi + edx*8], 0x61813e67
je 0x43ab90
inc edx
cmp ecx, edx
jne 0x43ab80
jmp 0x43abb5
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, edi
je 0x43abb5
push 0
push ebp
push eax
push 5
push 0x10
push ecx
push dword [0x44d3a0]
mov esi, eax
call fcn.0043dc10
add esp, 0x1c
mov edi, eax
mov eax, esi
test edi, edi
js 0x43acab
mov dword [esp], 0xf9babd5f
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx]
lea esi, [edx + edx]
not esi
add esi, edx
mov edi, esi
xor edi, 0xd8773159
or esi, 0x2788cea6
and esi, edi
and edx, 0x59
or edx, esi
mov edi, 0x65bfda20
sub edi, ecx
mov esi, edi
xor esi, 0x40371019
mov ebx, edi
or ebx, 0x2588ca26
and ebx, esi
and edi, 0x19
xor edi, 0x98402159
or edi, ebx
xor edi, edx
mov edx, edi
and edx, 0x24
add edx, edx
xor edi, 0x5b
sub edx, edi
mov byte [esp + ecx], dl
mov edx, ecx
not edx
or edx, 1
add edx, ecx
xor ecx, 1
lea ecx, [ecx + edx*2]
add ecx, 2
cmp ecx, 7
jb 0x43abe0
mov ecx, dword [esp]
mov dword [esp + 8], ecx
mov esi, dword [eax]
mov ecx, eax
mov ebx, dword [esp + 0x28]
nop
nop
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edx + ebp]
movzx edi, word [ebx + ebp]
test si, si
je 0x43ac85
add ebp, 2
cmp si, di
je 0x43ac70
cmp si, di
je 0x43ac96
mov esi, dword [ecx]
test esi, esi
jne 0x43ac60
mov edi, dword [esp + 8]
jmp 0x43acab
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.0043a930
add esp, 4
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 4