Function at 0x43a430
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43a47a
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x43a450
sar ecx, 1
mov edx, ecx
and edx, 2
mov esi, ecx
or ecx, 2
imul ecx, edx
xor edx, 2
and esi, 0xfffd
imul esi, edx
add ecx, esi
jmp 0x43a47c
xor ecx, ecx
mov word [esp + 0xc], cx
mov edx, eax
test eax, eax
je 0x43a48c
add ecx, 2
mov edx, ecx
mov word [esp + 0xe], dx
mov dword [esp + 0x10], eax
mov dword [esp], 0x20272026
xor eax, eax
mov cl, 1
movzx edx, word [esp + eax*2]
lea esi, [edx + edx]
not esi
add esi, edx
lea edi, [esi + esi]
not edi
add edi, esi
mov esi, eax
or esi, 0x496
and esi, edi
mov edi, 0xfb69
sub edi, eax
not edx
and edx, edi
add edx, esi
mov esi, 0xffffdb4f
sub esi, edx
mov word [esp + eax*2], si
mov eax, 1
xor edx, edx
test cl, 1
mov ecx, 0
jne 0x43a4a0
mov eax, dword [esp]
mov dword [esp + 8], 0xd2bed2bf
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [esp + edx*2 + 8]
mov edi, edx
xor edi, 0xad62bde9
lea edi, [edi + edx*2]
add edi, 0xa432042c
xor edi, esi
add edi, 0x7359ef57
mov esi, edi
and esi, 1
xor edi, 1
lea esi, [edi + esi*2]
mov word [esp + edx*2 + 8], si
mov edx, 1
test cl, 1
mov ecx, 0
jne 0x43a500
mov edx, dword [0x4452ac]
mov ebx, 0xffffffff
test edx, edx
je 0x43a59e
mov ecx, dword [esp + 8]
xor ebp, ebp
mov edi, dword [0x4452b0]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + ebp*8], 0x299a4ecd
je 0x43a570
inc ebp
cmp edx, ebp
jne 0x43a560
jmp 0x43a59e
mov edx, dword [edi + ebp*8 + 4]
cmp edx, 0xffffffff
je 0x43a59e
lea esi, [esp + 4]
lea edi, [esp + 0xc]
push esi
push eax
push 0
push ecx
push edi
push dword [esp + 0x40]
push 0x18
push edx
push dword [0x4452b4]
call fcn.00437870
add esp, 0x24
mov ebx, eax
mov dword [esp], 0x83ab4389
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [esp + eax*2]
mov edx, eax
or edx, 0x407a
and edx, ecx
add ecx, eax
add ecx, 0x24d83ca9
add edx, edx
mov esi, ecx
sub esi, edx
and ecx, 1
mov edx, esi
xor edx, 1
add edx, esi
and esi, 0xfffe
mov edi, edx
sub edi, esi
and edx, ecx
xor edi, ecx
lea ecx, [edi + edx*2]
mov word [esp + eax*2], cx
inc eax
cmp eax, 2
jne 0x43a5b0
cmp ebx, dword [esp]
jne 0x43a74a
push dword [esp + 4]
call fcn.00435be0
add esp, 4
mov ecx, dword [esp + 4]
mov dword [esp], 0xe155e156
xor edx, edx
mov bl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [esp + edx*2]
mov ebp, edx
or ebp, 0x7e2156f4
xor ebp, esi
mov esi, ebp
xor esi, 0x5134
and ebp, 0x2ecb
add ebp, ebp
sub ebp, esi
add ebp, 0xffff9994
mov word [esp + edx*2], bp
mov edx, 1
test bl, 1
mov ebx, 0
jne 0x43a620
mov ebp, dword [0x4452ac]
mov ebx, 0xffffffff
test ebp, ebp
je 0x43a6c1
mov edx, dword [esp]
xor edi, edi
mov esi, dword [0x4452b0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edi*8], 0x299a4ecd
je 0x43a690
inc edi
cmp ebp, edi
jne 0x43a680
jmp 0x43a6c1
mov ebp, dword [esi + edi*8 + 4]
cmp ebp, 0xffffffff
je 0x43a6c1
lea esi, [esp + 4]
lea edi, [esp + 0xc]
push esi
push ecx
push eax
push edx
push edi
push dword [esp + 0x40]
push 0x18
push ebp
push dword [0x4452b4]
mov esi, eax
call fcn.00437870
add esp, 0x24
mov ebx, eax
mov eax, esi
test ebx, ebx
js 0x43a741
mov edx, dword [esp + 0x34]
test edx, edx
je 0x43a6d2
mov ecx, dword [eax + 4]
mov dword [edx], ecx
cmp dword [esp + 0x3c], 0
je 0x43a741
cmp dword [esp + 0x38], 0
je 0x43a738
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
mov ecx, dword [eax + 8]
cmp edx, ecx
jb 0x43a6ef
mov edx, ecx
lea esi, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov ebp, dword [esp + 0x38]
mov edi, ebp
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, edx
and ecx, 0xfffffffc
add ebp, ecx
lea esi, [eax + ecx]
add esi, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov dword [esp + 0x14], esi
mov edi, ebp
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test dl, 1
je 0x43a738
and edx, 2
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + edx]
mov byte [ebp + edx], cl
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x3c]
mov dword [edx], ecx
push eax
call fcn.00435c10
add esp, 4
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret