Function at 0x439c90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x45a024]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 4]
xor esi, esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x58], ebx
test ebx, ebx
jle 0x439ce3
mov dword [ebp - 0x48], eax
lea eax, [edi + 0x3c]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x48]
call fcn.00433d90
add dword [ebp - 0x48], 4
mov ecx, eax
mov eax, dword [ebp - 0x50]
xor ecx, dword [eax]
inc esi
mov dword [ebp + esi*4 - 0x28], ecx
add eax, 4
mov dword [ebp - 0x50], eax
cmp esi, ebx
jl 0x439cc1
mov ecx, dword [edi + 8]
lea esi, [ebp - 0x44]
mov dword [ebp - 0x48], ebx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x54], esi
cmp ecx, 1
jle 0x439d9f
dec ecx
mov dword [ebp - 0x4c], ecx
nop
test ebx, ebx
jle 0x439d8d
mov edx, dword [ebp - 0x48]
lea ecx, [edi + 0xc]
lea edi, [edi + edx*4 + 0x3c]
mov edx, eax
sub edx, esi
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x58]
add dword [ebp - 0x48], edx
mov dword [ebp - 0x5c], edx
movzx edx, byte [ecx]
mov edx, dword [eax + edx*4]
movzx ebx, byte [ecx + 1]
movzx ebx, byte [eax + ebx*4 + 2]
mov ebx, dword [ebx*4 + 0x4602f8]
shr edx, 8
movzx edx, dl
mov edx, dword [edx*4 + 0x4602f8]
rol edx, 8
rol ebx, 0x10
xor edx, ebx
movzx ebx, byte [ecx + 2]
movzx ebx, byte [eax + ebx*4 + 3]
mov ebx, dword [ebx*4 + 0x4602f8]
ror ebx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x50]
movzx ebx, byte [ebx + esi]
xor edx, dword [ebx*4 + 0x4602f8]
add edi, 4
xor edx, dword [edi - 4]
add esi, 4
mov dword [esi - 4], edx
add ecx, 3
dec dword [ebp - 0x5c]
jne 0x439d22
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x58]
dec dword [ebp - 0x4c]
mov ecx, eax
mov eax, esi
mov esi, ecx
mov dword [ebp - 0x54], esi
jne 0x439d00
test ebx, ebx
jle 0x439e31
mov ebx, dword [ebp - 0x48]
lea ecx, [edi + 0xc]
lea edi, [edi + ebx*4 + 0x3c]
mov dword [ebp - 0x4c], edi
mov edi, eax
sub edi, esi
mov dword [ebp - 0x50], edi
mov edi, dword [ebp - 0x58]
mov edx, esi
mov dword [ebp - 0x54], edi
movzx edi, byte [ecx]
mov ebx, dword [eax + edi*4]
shr ebx, 8
movzx edi, bl
movzx ebx, byte [edi + 0x460970]
movzx edi, byte [ecx + 1]
movzx edi, byte [eax + edi*4 + 2]
movzx edi, byte [edi + 0x460970]
rol ebx, 8
rol edi, 0x10
xor ebx, edi
movzx edi, byte [ecx + 2]
movzx edi, byte [eax + edi*4 + 3]
movzx edi, byte [edi + 0x460970]
ror edi, 8
xor ebx, edi
mov edi, dword [ebp - 0x50]
movzx edi, byte [edi + edx]
movzx edi, byte [edi + 0x460970]
xor ebx, edi
mov edi, dword [ebp - 0x4c]
xor ebx, dword [edi]
add edi, 4
mov dword [edx], ebx
add edx, 4
add ecx, 3
dec dword [ebp - 0x54]
mov dword [ebp - 0x4c], edi
jne 0x439dc3
mov ebx, dword [ebp - 0x58]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x4c], 0
test ebx, ebx
jle 0x439e69
mov ecx, dword [ebp - 0x60]
mov ebx, eax
sub ebx, esi
mov eax, dword [esi]
call fcn.00433db0
mov eax, dword [ebp - 0x4c]
mov dword [esi], 0
inc eax
mov dword [ebx + esi], 0
add esi, 4
add ecx, 4
mov dword [ebp - 0x4c], eax
cmp eax, dword [edi + 4]
jl 0x439e43
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041af7a
mov esp, ebp
pop ebp
ret