Function at 0x43a330
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 + 8], 0
mov dword [esp], 0x181b1a1d
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
and ecx, 1
mov esi, ecx
xor esi, 0xb19c89d9
mov edx, eax
and edx, 2
mov edi, edx
sub edi, esi
mov ebp, 0x2b
sub ebp, edi
neg esi
lea ebx, [edx + esi]
add ebx, 0x14
and ebp, 0x35
and ebx, 0x4a
or ebx, ebp
xor bl, byte [esp + eax]
xor bl, 0xb5
add bl, 0x59
mov byte [esp + eax], bl
xor ecx, 0x9bbaf00d
neg ecx
lea eax, [edx + ecx]
inc eax
mov ecx, eax
and ecx, 0xd
xor eax, 0x9bbaf00d
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x43a350
mov edi, dword [esp]
mov eax, dword [0x44bcdc]
test eax, eax
je 0x43a3f6
xor ecx, ecx
mov edx, dword [0x44bce0]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x61813e67
je 0x43a3d0
inc ecx
cmp eax, ecx
jne 0x43a3c0
jmp 0x43a3f6
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x43a3f6
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 5
push 0x10
push eax
push dword [0x44bce4]
call fcn.0043cba0
add esp, 0x1c
mov edi, eax
mov dword [esp], 0xf332314c
mov eax, 0x44000b0c
mov ecx, 0xf3
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x44000b0c]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, edx
and esi, 0xc1
mov ebx, edx
and ebx, 2
mov ebp, ebx
xor ebp, 2
imul ebp, esi
or esi, 2
imul esi, ebx
xor edx, 0xc3
add edx, ebp
add edx, esi
inc dl
mov byte [esp + eax - 0x44000b0c], dl
inc eax
dec ecx
cmp eax, 0x44000b10
jne 0x43a410
cmp edi, dword [esp]
jne 0x43a5f0
push dword [esp + 8]
call fcn.0043a220
add esp, 4
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
mov dword [esp], 0x181b1a1d
xor edx, edx
nop
nop
nop
mov edi, edx
and edi, 1
mov esi, edi
xor esi, 0xb19c89d9
mov ebp, edx
and ebp, 2
mov ebx, ebp
sub ebx, esi
mov ecx, 0x2b
sub ecx, ebx
neg esi
lea ebx, [esi + ebp]
add ebx, 0x14
and ecx, 0x35
and ebx, 0x4a
or ebx, ecx
xor bl, byte [esp + edx]
xor bl, 0xb5
add bl, 0x59
mov byte [esp + edx], bl
xor edi, 0x9bbaf00d
neg edi
lea ecx, [edi + ebp]
inc ecx
mov edx, ecx
and edx, 0xd
xor ecx, 0x9bbaf00d
lea edx, [ecx + edx*2]
cmp edx, 4
jb 0x43a480
mov edi, dword [esp]
mov edx, dword [0x44bcdc]
test edx, edx
je 0x43a528
xor esi, esi
mov ebx, dword [0x44bce0]
nop
nop
nop
cmp dword [ebx + esi*8], 0x61813e67
je 0x43a500
inc esi
cmp edx, esi
jne 0x43a4f0
jmp 0x43a528
mov edx, dword [ebx + esi*8 + 4]
cmp edx, edi
je 0x43a528
push 0
push dword [esp + 0x10]
push eax
push 5
push 0x10
push edx
push dword [0x44bce4]
mov esi, eax
call fcn.0043cba0
add esp, 0x1c
mov edi, eax
mov eax, esi
test edi, edi
js 0x43a5e7
mov dword [esp], 0x519e9dfb
mov word [esp + 4], 0
xor ecx, ecx
movzx esi, byte [esp + ecx]
lea edx, [ecx - 0x21a63d5b]
mov edi, 0x1a63d5a
sub edi, ecx
xor esi, 0x455523e6
and edi, 0x1042146
and edx, 0x9a08c009
or edx, edi
mov edi, esi
and edi, edx
add edx, esi
add edi, edi
sub edx, edi
add dl, 0xc7
mov byte [esp + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 6
jb 0x43a540
mov edi, dword [esp]
mov edx, dword [eax]
mov ecx, eax
nop
nop
nop
nop
mov ebp, dword [ecx + edx + 0x3c]
add ecx, edx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ebp + esi]
mov ebx, dword [esp + 0x28]
movzx ebx, word [ebx + esi]
test edx, edx
je 0x43a5b9
add esi, 2
cmp dx, bx
je 0x43a5a0
movzx esi, bx
mov ebx, edx
not ebx
and ebx, esi
not esi
and esi, edx
cmp esi, ebx
je 0x43a5d2
mov edx, dword [ecx]
test edx, edx
jne 0x43a590
jmp 0x43a5e7
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.0043a2b0
add esp, 4
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 4