Function at 0x416710
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov esi, esi
sub esp, 0x48
push esi
sub esp, 4
mov dword [esp - 0x2c], esi
mov dword [esp], 0x58777ab
add dword [esp], 0x1c2d1e83
xor dword [esp], 0x78b3e81c
mov ebp, ebp
xor dword [esp], 0x1625bd6e
xor dword [esp], 0x6fd8b566
add dword [esp], 0x4c6af940
add dword [esp], 0x242c770
mov dword [esp - 0x38], 0x21a2486e
lea ecx, [ebp - 0x20]
call fcn.00485030
lea eax, [ebp - 8]
mov ebp, ebp
mov dword [ebp - 8], 0x5945266b
add dword [ebp - 8], 0x1cdfdc20
sub dword [ebp - 8], 0x3044758c
mov edi, edi
xor dword [ebp - 8], 0x49756bfd
xor dword [ebp - 8], 0xc95e712
push eax
mov dword [esp - 0x14], 0x629af2bd
lea eax, [ebp - 0x48]
push eax
mov eax, dword [0x4bab78]
xor eax, dword [0x4ba958]
mov esi, esi
call eax
test eax, eax
je 0x41682a
mov edx, edx
or eax, 0xffffffff
lea esi, [ebp - 0x48]
cmp word [ebp - 0x48], 0
mov dword [ebp - 4], eax
xchg edi, edi
je 0x41681c
nop
mov dword [esp - 4], 0x3ee9a5a8
mov edx, edx
sub dword [esp - 4], 0x1dceb10a
xor dword [esp - 4], 0x79a07d4
sub dword [esp - 4], 0xa1625a2
mov esp, esp
sub dword [esp - 4], 0x1636454a
add dword [esp - 4], 0x22656359
sub dword [esp - 4], 0x2899ebb5
mov edi, edi
sub esp, 4
push esi
lea ecx, [ebp - 4]
call fcn.00481c70
mov esi, esi
add esi, 2
cmp word [esi], 0
jne 0x4167c1
mov eax, dword [ebp - 4]
mov ebx, ebx
rol eax, 0x10
lea ecx, [ebp - 0x20]
push eax
call fcn.004860d0
xchg ebp, ebp
mov dword [ebp - 4], 0x7378e100
xor dword [ebp - 4], 0x7023b541
add dword [ebp - 4], 0x6e2a6400
mov ecx, ecx
sub dword [ebp - 4], 0x2ed62107
sub dword [ebp - 4], 0x3b9056cc
mov eax, dword [ebp - 4]
nop
mov dword [esp - 0x1c], 0x6524ae76
mov dword [esp - 4], 0x678a0156
sub dword [esp - 4], 0x1cd719f4
sub dword [esp - 4], 0x3545590e
xor dword [esp - 4], 0x65931437
mov dword [esp - 0x44], 0x18834ec3
sub dword [esp - 4], 0x60c57caf
xor dword [esp - 4], 0x10391dbc
sub esp, 4
mov dword [ebp - 4], eax
xchg ebx, ebx
mov dword [ebp - 0x14], 0x1bc3d021
add dword [ebp - 0x14], 0x1fbbd329
add dword [ebp - 0x14], 0x831607
mov ebp, ebp
xor dword [ebp - 0x14], 0xdd3c6e
add dword [ebp - 0x14], 0x9f70318
xor dword [ebp - 0x14], 0x23cc1013
sub dword [ebp - 0x14], 0x651a9840
mov esi, esi
call fcn.0048b720
xor edx, edx
mov dword [ebp - 0x18], eax
add esp, 4
xchg edi, edi
cmp dword [ebp - 0x14], edx
jbe 0x4168f9
nop
xchg esp, esp
movsx cx, byte [ebp + edx - 4]
mov word [eax + edx*2], cx
inc edx
cmp edx, dword [ebp - 0x14]
xchg esi, esi
jb 0x4168e7
lea eax, [ebp - 0x18]
push eax
mov dword [esp - 0x2c], esi
nop
mov dword [esp - 4], 0x7bf5169c
sub dword [esp - 4], 0x6cac2b46
add dword [esp - 4], 0x1ef68d27
mov esp, esp
add dword [esp - 4], 0x33fc7a48
sub dword [esp - 4], 0x11d1d331
sub dword [esp - 4], 0x506a1f89
sub esp, 4
mov dword [esp - 0x30], 0x1d966ac3
nop
mov dword [esp - 4], 0x5f994f55
sub dword [esp - 4], 0x1a532d65
xchg ebx, ebx
sub dword [esp - 4], 0x1b241c73
add dword [esp - 4], 0x2eb9f639
sub dword [esp - 4], 0x48eb3942
xor dword [esp - 4], 0x586a0558
mov edx, edx
sub dword [esp - 4], 0x579ac726
sub esp, 4
lea eax, [ebp - 0x28]
push eax
mov ebp, ebp
lea ecx, [ebp - 0x20]
call fcn.00485fe0
push eax
mov ecx, ecx
lea eax, [ebp - 0x10]
push eax
call fcn.00480d90
add esp, 0xc
mov dword [esp - 0x20], edx
cmp dword [ebp - 0x24], 2
jbe 0x4169b3
push dword [ebp - 0x28]
call fcn.0048b6f0
xchg esi, esi
add esp, 4
cmp dword [ebp - 0x14], 2
jbe 0x4169c6
push dword [ebp - 0x18]
mov ebp, ebp
call fcn.0048b6f0
add esp, 4
nop
mov dword [esp - 0x38], ecx
sub esp, 4
mov dword [esp], 0x7a7b6ed6
sub dword [esp], 0x3d5b1ca0
mov dword [esp - 0x38], 0x3c2cc95b
xor dword [esp], 0x732f1855
sub dword [esp], 0x59dab4d
sub dword [esp], 0x48719f0e
mov esp, esp
call fcn.0048b6d0
mov esi, eax
add esp, 4
xchg ecx, ecx
test esi, esi
je 0x416abc
mov eax, dword [ebp - 0xc]
push edi
xchg ecx, ecx
cmp eax, 2
jbe 0x416a73
xor ecx, ecx
mov dword [esp - 0x1c], 0x1969c6ba
mov edx, 0x1ff74290
xor edx, 0x13a19202
add edx, 0x30d35a10
mov dword [esp - 0x10], 0x7ae9b4d8
add edx, 0x1947e004
add edx, 0x28bc6f1e
sub edx, 0x7f2e79c2
mul edx
mov dword [esp - 0x2c], ebp
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [esp - 0xc], 0x7ffef518
call fcn.0048b720
add esp, 4
mov edi, eax
mov edx, edx
jmp 0x416a75
xor edi, edi
mov dword [esi], edi
mov eax, dword [ebp - 0xc]
mov dword [esi + 4], eax
mov dword [esp - 0x20], ebp
mov ecx, dword [ebp - 0xc]
cmp ecx, 2
cmovbe edi, esi
xor edx, edx
mov edx, edx
test ecx, ecx
je 0x416ab9
cmp ecx, 2
mov dword [esp - 0x14], 0x313c4690
lea eax, [ebp - 0x10]
cmova eax, dword [ebp - 0x10]
mov ax, word [eax + edx*2]
mov word [edi + edx*2], ax
xchg ebx, ebx
inc edx
mov ecx, dword [ebp - 0xc]
cmp edx, dword [esi + 4]
jb 0x416a92
mov esi, esi
pop edi
jmp 0x416ac9
mov ecx, dword [ebp - 0xc]
xor esi, esi
mov dword [esp - 0x30], 0x78bf4632
mov dword [0x4ba8f4], esi
pop esi
cmp ecx, 2
jbe 0x416ae8
mov dword [esp - 0x18], 0x58854930
push dword [ebp - 0x10]
call fcn.0048b6f0
add esp, 4
mov esp, ebp
mov dword [esp - 0xc], ebx
pop ebp
ret