Function at 0x4383b0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 0x20]
sub esp, 0x128
push esi
mov esi, dword [esp + 0x144]
push esi
mov dword [eax], 0
call fcn.004386d0
add esp, 4
test eax, eax
jne 0x438667
mov eax, esi
imul eax, eax, 0x64
push ebx
mov ebx, dword [eax + 0x579518]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14c]
mov ecx, eax
and cl, 7
neg cl
push edi
mov dword [esp + 0x18], ebx
sbb ecx, ecx
shr eax, 3
neg ecx
add ecx, eax
mov eax, dword [esp + 0x148]
mov esi, ecx
cmp eax, esi
ja 0x4386bb
lea edx, [ebx + eax + 2]
cmp esi, edx
jb 0x4386bb
mov edi, dword [esp + 0x144]
cmp edi, esi
jne 0x4386bb
push ebp
push esi
call fcn.00415970
push esi
mov ebp, eax
call fcn.00415970
push esi
mov dword [esp + 0x1c], eax
call fcn.00415970
push esi
mov dword [esp + 0x28], eax
call fcn.00415970
add esp, 0x10
test ebp, ebp
mov dword [esp + 0x14], eax
je 0x438678
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x43866f
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x43866f
test eax, eax
je 0x43866f
mov eax, dword [esp + 0x144]
cmp byte [eax + edi - 1], 0xbc
jne 0x438566
mov edi, esi
sub edi, ebx
lea ebx, [edi - 1]
push ebx
push eax
push ebp
call fcn.004379f0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x150]
push eax
mov ecx, esi
sub ecx, eax
lea eax, [ecx + edx - 1]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call fcn.004379f0
mov edx, dword [esp + 0x16c]
lea ecx, [esi*8]
sub ecx, edx
mov edx, dword [esp + 0x15c]
add esp, 0x18
inc ecx
mov eax, 0xff
sar eax, cl
mov cl, byte [edx]
mov dword [esp + 0x20], eax
not eax
test al, cl
jne 0x438566
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ebx
push eax
mov eax, dword [esp + 0x158]
push ecx
push edx
push eax
call fcn.00465510
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x43863b
test ebx, ebx
jbe 0x438539
mov ecx, dword [esp + 0x10]
mov eax, ebp
sub ecx, ebp
mov esi, ebx
lea esp, [esp]
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec esi
jne 0x438530
mov dl, byte [ebp]
mov ecx, dword [esp + 0x14c]
mov al, byte [esp + 0x20]
and dl, al
sub edi, ecx
xor ebx, ebx
sub edi, 2
mov byte [ebp], dl
je 0x438560
cmp byte [ebx + ebp], 0
jne 0x438566
inc ebx
cmp ebx, edi
jb 0x438555
cmp byte [ebx + ebp], 1
je 0x438570
mov esi, 0x20005
jmp 0x43863b
mov edi, dword [esp + 0x24]
lea ecx, [esp + 0x28]
push ecx
call dword [edi + 0x579564]
mov esi, eax
add esp, 4
test esi, esi
jne 0x43863b
mov esi, dword [esp + 0x10]
push 8
push esi
call fcn.0044da10
push 8
lea edx, [esp + 0x34]
push esi
push edx
call dword [edi + 0x579568]
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x43863b
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x13c]
push eax
push ecx
lea edx, [esp + 0x30]
push edx
call dword [edi + 0x579568]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x43863b
mov eax, dword [esp + 0x14c]
push eax
lea ecx, [ebx + ebp + 1]
push ecx
lea edx, [esp + 0x30]
push edx
call dword [edi + 0x579568]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x43863b
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x2c]
push ecx
call dword [edi + 0x57956c]
mov esi, eax
add esp, 8
test esi, esi
jne 0x43863b
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edx
push eax
push ecx
call fcn.00437dc0
add esp, 0xc
test eax, eax
jne 0x438639
mov edx, dword [esp + 0x158]
mov dword [edx], 1
xor esi, esi
mov eax, dword [esp + 0x14]
push eax
call fcn.00412f90
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00412f90
mov edx, dword [esp + 0x18]
push edx
call fcn.00412f90
push ebp
call fcn.00412f90
add esp, 0x10
pop ebp
pop edi
mov eax, esi
pop ebx
pop esi
add esp, 0x128
ret
push ebp
call fcn.00412f90
add esp, 4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x438689
push eax
call fcn.00412f90
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x43869a
push eax
call fcn.00412f90
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4386ab
push eax
call fcn.00412f90
add esp, 4
pop ebp
pop edi
pop ebx
mov eax, 0xc
pop esi
add esp, 0x128
ret
pop edi
pop ebx
mov eax, 0x20012
pop esi
add esp, 0x128
ret