Function at 0x439d20
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov esi, ecx
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov dword [esp], 0
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], 0x787b7a7d
mov byte [esp + 8], 0
mov eax, 0xeb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0xe7]
lea edx, [eax - 0x6a48e400]
mov ebp, eax
and ebp, ebx
or edx, ebx
xor edx, ebp
mov ebx, edx
not ebx
and ebx, 0x98
and edx, 0x67
sub edx, ebx
inc dl
mov byte [esp + eax - 0xe7], dl
inc eax
cmp eax, 0xf0
jne 0x439d60
mov eax, dword [esp + 4]
mov edx, dword [0x44b030]
test edx, edx
je 0x439df1
xor ebx, ebx
mov ebp, dword [0x44b034]
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0x3e416e49
je 0x439dc1
inc ebx
cmp edx, ebx
jne 0x439db0
jmp 0x439df1
mov edx, dword [ebp + ebx*8 + 4]
cmp edx, eax
je 0x439df1
lea eax, [esp + 0x1c]
mov ebx, esp
push 4
push 0x3000
push eax
push 0
push ebx
push 0xffffffffffffffff
push 6
push edx
push dword [0x44b038]
mov ebx, ecx
call fcn.0043b600
mov ecx, ebx
add esp, 0x24
test eax, eax
js 0x439e52
push 0
push 0
push dword [esi + 8]
push dword [esp + 0xc]
push dword [esi + 4]
mov dword [esp + 0x20], esi
push dword [esi]
call fcn.00438fc0
test eax, eax
jns 0x439e27
mov ecx, eax
xor eax, eax
mov edx, 0
cmp ecx, 0x8000000d
jne 0x439f23
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
add ecx, ebx
sub ecx, dword [esp + 0x3c]
xor eax, eax
mov edx, 0
mov dword [esp + 0x14], ecx
cmp ecx, ebx
jbe 0x439f23
mov esi, ebx
mov dword [esp + 0x10], ebx
jmp 0x439e9a
xor eax, eax
xor edx, edx
jmp 0x439fda
mov ebp, edx
not ebp
and ebp, 2
mov ecx, edx
shr ecx, 2
mov esi, edx
and esi, 0x7ffffffc
or esi, 2
shr edx, 1
and edx, 1
imul edx, esi
and ebx, 2
lea edx, [ebx + edx*2]
add eax, edx
imul ecx, ebp
lea esi, [eax + ecx*4]
inc esi
xor eax, eax
mov edx, 0
cmp esi, dword [esp + 0x14]
jae 0x439f23
test edi, edi
je 0x439ea3
cmp byte [edi], 0x3f
je 0x439eae
movzx eax, byte [esi]
mov ecx, dword [esp + 0x38]
cmp al, byte [ecx]
jne 0x439e88
cmp dword [esp + 0x3c], 2
jb 0x439ef9
lea eax, [esi - 2]
mov edx, 1
mov ebx, 2
jmp 0x439eed
movzx ecx, byte [esi + edx]
mov ebp, dword [esp + 0x38]
cmp cl, byte [ebp + edx]
jne 0x439e5b
inc edx
dec eax
add ebx, 2
cmp dword [esp + 0x3c], edx
je 0x439ef9
test edi, edi
je 0x439ed0
cmp byte [edi + edx], 0x3f
jne 0x439ed0
jmp 0x439ee2
test esi, esi
je 0x439f1f
mov eax, esi
not eax
mov ecx, dword [esp + 0x10]
and eax, ecx
not ecx
and ecx, esi
sub ecx, eax
mov edx, ecx
sar edx, 0x1f
mov eax, dword [esp + 0xc]
add ecx, dword [eax]
adc edx, dword [eax + 4]
mov eax, ecx
jmp 0x439f23
xor eax, eax
xor edx, edx
mov dword [esp + 0x18], 0
mov dword [esp + 4], 0x787b7a7d
mov byte [esp + 8], 0
mov ecx, 0xeb
nop
nop
nop
movzx esi, byte [esp + ecx - 0xe7]
lea ebx, [ecx - 0x6a48e400]
mov edi, ecx
and edi, esi
or ebx, esi
xor ebx, edi
mov esi, ebx
not esi
and esi, 0x98
and ebx, 0x67
sub ebx, esi
inc bl
mov byte [esp + ecx - 0xe7], bl
inc ecx
cmp ecx, 0xf0
jne 0x439f40
mov ecx, dword [0x44b030]
test ecx, ecx
je 0x439fda
mov esi, dword [esp + 4]
xor edi, edi
mov ebx, dword [0x44b034]
nop
nop
nop
cmp dword [ebx + edi*8], 0x16194952
je 0x439faa
mov ebp, edi
and ebp, 1
xor edi, 1
lea edi, [edi + ebp*2]
cmp edi, ecx
jb 0x439f90
jmp 0x439fda
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, esi
je 0x439fda
lea esi, [esp + 0x18]
mov edi, esp
push 0x8000
push esi
push edi
push 0xffffffffffffffff
push 4
push ecx
push dword [0x44b038]
mov esi, eax
mov edi, edx
call fcn.0043b600
mov edx, edi
mov eax, esi
add esp, 0x1c
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret 0x10