Function at 0x405770
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov dword [esp - 0x30], 0x6e82dcb3
mov ebx, dword [ebp + 8]
push esi
push edi
xchg edx, edx
mov dword [ebp - 0xc], ecx
lea eax, [ebx + 4]
mov dword [ebp - 8], eax
mov dword [esp - 0x14], 0x693889c3
mov eax, dword [eax]
mov dword [ebp + 8], eax
cmp eax, 2
jbe 0x4057a5
mov ecx, ecx
mov ebx, dword [ebx]
xor ecx, ecx
inc eax
mov edx, 0x16f939a4
xchg ecx, ecx
add edx, 0x286dc83b
add edx, 0x407c0b14
sub edx, 0x39dc1561
add edx, 0x187196fc
mov dword [esp - 0x18], esp
xor edx, 0x393512d5
xor edx, 0x674d9c59
mul edx
mov ebp, ebp
seto cl
neg ecx
or ecx, eax
xchg ebx, ebx
push ecx
call fcn.0048b720
mov esi, eax
add esp, 4
mov dword [esp - 0x14], esp
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 4], esi
mov edi, edi
test eax, eax
je 0x40586a
mov edx, esi
mov dword [esp - 0x24], ecx
sub ebx, esi
mov esi, eax
nop
mov ecx, edi
mov dword [esp - 0x10], esi
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x7e4b0ee9
sub eax, 0x5d4440b3
xchg edx, edx
sub eax, 0x6973206
add eax, 0x1ca0df1c
sub eax, 0x3246c98d
mov dword [esp - 0x10], ebp
add eax, 0x3f4eee02
xor eax, 0x3766bb81
shl ecx, 3
inc edi
mov dword [esp - 0x20], esi
sar eax, cl
cbw
xor ax, word [ebx + edx - 2]
mov dword [esp - 0x1c], 0x15356531
mov word [edx - 2], ax
cmp edi, esi
jb 0x40580c
mov esi, dword [ebp - 4]
mov ecx, ecx
mov eax, dword [ebp + 8]
xor ecx, ecx
push ecx
xchg ecx, ecx
push ecx
mov word [esi + eax*2], cx
mov eax, dword [ebp - 8]
push ecx
mov dword [esp - 0x1c], 0x40a73744
push ecx
mov eax, dword [eax]
push eax
mov dword [esp - 0x28], edx
push esi
mov dword [ebp + 8], eax
mov eax, dword [0x4bab70]
mov dword [esp - 0x1c], esp
xor eax, dword [0x4ba958]
push ecx
sub esp, 4
mov dword [esp], 0x7f21756f
mov ecx, ecx
sub dword [esp], 0x5cccda8a
xor dword [esp], 0x1b715fea
xor dword [esp], 0x44df7782
sub dword [esp], 0x8084720
mov dword [esp - 0x20], 0x25482a79
sub dword [esp], 0x708e06a7
xor dword [esp], 0x564992f
call eax
mov dword [ebp - 8], eax
mov esp, esp
lea edi, [eax + 1]
push edi
call fcn.0048b720
mov dword [esp - 0x30], 0x5c083249
mov ecx, dword [0x4bab70]
add esp, 4
xor ecx, dword [0x4ba958]
mov esp, esp
mov ebx, eax
nop
sub esp, 4
mov dword [esp], 0x6f490f45
mov dword [esp - 0x34], esp
sub dword [esp], 0x6257b3ce
add dword [esp], 0x22430bc6
xor dword [esp], 0x25c3f39c
mov esi, esi
add dword [esp], 0xf1c45f7
add dword [esp], 0x51f583b8
sub dword [esp], 0x6c095e50
xchg ebx, ebx
nop
sub esp, 4
mov dword [esp], 0x62f12e5
add dword [esp], 0x5085519a
mov dword [esp - 0x1c], 0x49d2d08d
xor dword [esp], 0x531c5830
xor dword [esp], 0xa3cc111
xor dword [esp], 0x636eb439
mov dword [esp - 0x24], 0x4a455b7d
sub dword [esp], 0x2e392d12
sub dword [esp], 0x3ec11c55
push edi
push ebx
mov dword [esp - 0x30], 0xa44a0c9
push dword [ebp + 8]
push esi
nop
mov dword [esp - 4], 0x26f024ae
xchg esp, esp
sub dword [esp - 4], 0x244ee817
add dword [esp - 4], 0x3e4887c7
xor dword [esp - 4], 0x16159878
sub dword [esp - 4], 0x3f9f55e2
mov dword [esp - 0x44], 0x18359a4a
add dword [esp - 4], 0x7b4e433
sub dword [esp - 4], 0x1f11ea77
sub esp, 4
nop
xchg edx, edx
mov dword [esp - 4], 0x130c85c6
sub dword [esp - 4], 0x1306f10d
add dword [esp - 4], 0x159898a4
mov ecx, ecx
xor dword [esp - 4], 0x5db1c26
xor dword [esp - 4], 0x1045cc92
sub esp, 4
mov dword [esp - 0x24], 0x16cb7ee8
call ecx
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
xchg edi, edi
push esi
mov byte [ebx + eax], 0x2b
sub byte [ebx + eax], 0x25
mov esi, esi
add byte [ebx + eax], 0x20
xor byte [ebx + eax], 0x63
xor byte [ebx + eax], 0x34
xor byte [ebx + eax], 0
mov ebp, ebp
sub byte [ebx + eax], 0x71
mov dword [edi], ebx
call fcn.0048b6f0
add esp, 4
mov esp, esp
mov byte [edi + 4], 0x19
add byte [edi + 4], 0x36
add byte [edi + 4], 0
add byte [edi + 4], 0xf
mov edi, edi
xor byte [edi + 4], 0x7c
xor byte [edi + 4], 0x23
mov eax, edi
pop edi
mov ebx, ebx
pop esi
pop ebx
mov esp, ebp
mov dword [esp - 0x2c], ebp
pop ebp
ret 4