Function at 0x43a2f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
mov ebx, ecx
mov eax, dword [ebx + 8]
push esi
push edi
lea edi, [ebx + 8]
mov dword [ebp - 4], edi
cmp eax, dword [edi + 4]
je 0x43a30c
mov dword [edi + 4], eax
push dword [ebx]
call fcn.004cf4f6
add esp, 4
mov dword [ebx], 0
mov edx, 5
mov ecx, 0x5248cc
call fcn.00419440
mov esi, eax
mov dword [ebx + 4], edx
mov dword [ebx], esi
test esi, esi
je 0x43a7ab
test edx, edx
je 0x43a7ab
cmp byte [esi], 0
je 0x43a7ab
nop dword [eax + eax]
push 0x50470c
push esi
call fcn.004d0580
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43a7ab
add ebx, 2
push 0x50470c
push ebx
mov dword [ebp - 0x14], ebx
call fcn.004d0580
add esp, 8
test eax, eax
je 0x43a7ab
mov byte [eax], 0
add eax, 2
test ebx, ebx
je 0x43a7ab
push 0x50470c
push eax
call fcn.004d0580
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43a7ab
add ebx, 2
push 0x50470c
push ebx
mov dword [ebp - 8], ebx
call fcn.004d0580
add esp, 8
test eax, eax
je 0x43a7ab
mov byte [eax], 0
add eax, 2
test ebx, ebx
je 0x43a7ab
push 0x50470c
push eax
call fcn.004d0580
mov edi, eax
add esp, 8
test edi, edi
je 0x43a7a8
add edi, 2
push 0x50470c
push edi
mov dword [ebp - 0x10], edi
call fcn.004d0580
add esp, 8
test eax, eax
je 0x43a7a8
mov byte [eax], 0
add eax, 2
test edi, edi
je 0x43a7a8
push 0x50470c
push eax
call fcn.004d0580
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43a7a8
add ebx, 2
push 0x50470c
push ebx
mov dword [ebp - 0x18], ebx
call fcn.004d0580
add esp, 8
test eax, eax
je 0x43a7a8
mov byte [eax], 0
add eax, 2
test ebx, ebx
je 0x43a7a8
push 0x50470c
push eax
call fcn.004d0580
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43a7a8
add ebx, 2
push 0x50470c
push ebx
mov dword [ebp - 0x1c], ebx
call fcn.004d0580
add esp, 8
test eax, eax
je 0x43a7a8
mov byte [eax], 0
add eax, 2
test ebx, ebx
je 0x43a7a8
push 0x50470c
push eax
call fcn.004d0580
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43a7a8
add ebx, 2
push 0x50470c
push ebx
mov dword [ebp - 0x20], ebx
call fcn.004d0580
add esp, 8
test eax, eax
je 0x43a7a8
mov byte [eax], 0
lea esi, [eax + 2]
mov dword [ebp - 0xc], esi
test ebx, ebx
je 0x43a7a8
push 0xa
push 0
push dword [ebp - 0x14]
call fcn.004d63e8
add esp, 0xc
mov dword [ebp - 0x30], edi
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], eax
push 0xa
push 0
push dword [ebp - 0x18]
call fcn.004d63e8
add esp, 0xc
mov dword [ebp - 0x2c], eax
push dword [ebp - 0x1c]
call fcn.004d968f
add esp, 4
fstp dword [ebp - 0x28]
push dword [ebp - 0x20]
call fcn.004d968f
movzx eax, bl
add esp, 4
imul edx, eax, 0x401
mov eax, ebx
shr eax, 8
movzx ecx, al
mov edi, dword [ebp - 8]
fstp dword [ebp - 0x24]
mov eax, edx
shr eax, 6
xor eax, edx
add ecx, eax
mov eax, ebx
imul edx, ecx, 0x401
shr eax, 0x10
movzx ecx, al
shr ebx, 0x18
mov eax, edx
shr eax, 6
xor eax, edx
lea edx, [edi + 1]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
add ecx, ebx
imul ecx, ecx, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
lea ecx, [ecx + ecx*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
imul ecx, eax, 0x8001
mov al, byte [edi]
inc edi
test al, al
jne 0x43a590
mov eax, dword [ebp - 0x10]
sub edi, edx
mov ebx, 0
mov edx, eax
je 0x43a5cb
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 8]
nop dword [eax + eax]
movzx eax, byte [esi + ebx]
inc ebx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp ebx, edi
jb 0x43a5b0
mov esi, dword [ebp - 0xc]
lea ecx, [ecx + ecx*8]
mov edi, edx
mov eax, ecx
shr eax, 0xb
xor eax, ecx
imul ecx, eax, 0x8001
lea ebx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x43a5e0
sub edi, ebx
mov ebx, 0
je 0x43a60e
mov esi, dword [ebp - 0x10]
movzx eax, byte [esi + ebx]
inc ebx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp ebx, edi
jb 0x43a5f3
mov esi, dword [ebp - 0xc]
lea ecx, [ecx + ecx*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
imul ecx, eax, 0x8001
movzx eax, byte [ebp - 0x2c]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x2b]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x2a]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x29]
add ecx, eax
imul ecx, ecx, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
lea ecx, [ecx + ecx*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
imul ecx, eax, 0x8001
movzx eax, byte [ebp - 0x28]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x27]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x26]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x25]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x24]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x23]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x22]
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor ecx, eax
movzx eax, byte [ebp - 0x21]
add ecx, eax
imul ecx, ecx, 0x401
mov eax, ecx
shr eax, 6
mov bl, byte [edx]
xor ecx, eax
xor edi, edi
lea ecx, [ecx + ecx*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
mov ecx, edx
imul eax, eax, 0x8001
mov dword [ebp - 0x3c], eax
test bl, bl
je 0x43a769
mov bh, bl
cmp bl, 0xa
mov eax, ecx
cmovne eax, edx
cmp bh, 0x20
mov edx, eax
mov eax, ecx
cmovne eax, edi
mov edi, eax
mov eax, ecx
sub eax, edx
cmp eax, 0x48
jle 0x43a75f
lea edx, [ecx + 1]
test edi, edi
je 0x43a75a
mov byte [edi], 0xa
jmp 0x43a75d
mov byte [ecx], 0xa
xor edi, edi
mov bl, byte [ecx + 1]
inc ecx
mov bh, bl
test bl, bl
jne 0x43a731
mov edi, dword [ebp - 4]
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 8]
je 0x43a791
movups xmm0, xmmword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
movups xmmword [ecx], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], eax
add dword [edi + 4], 0x1c
jmp 0x43a79d
lea eax, [ebp - 0x3c]
push eax
push ecx
mov ecx, edi
call fcn.0043ae00
cmp byte [esi], 0
jne 0x43a350
jmp 0x43a7ab
mov edi, dword [ebp - 4]
mov eax, dword [edi + 4]
mov ecx, dword [edi]
sub eax, ecx
sar eax, 2
imul eax, eax, 0xb6db6db7
test eax, eax
je 0x43a7d0
push 0x4379f0
push 0x1c
push eax
push ecx
call fcn.004d97f0
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret