Function at 0x4177fb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x914
push ebx
push esi
push edi
call fcn.004151c4
cmp eax, 1
je 0x417905
call fcn.004156f2
cmp eax, 0xa
jb 0x417905
call fcn.00417631
test al, al
je 0x417905
call fcn.004151c4
cmp eax, 1
je 0x417905
push 5
pop edx
lea ecx, [ebp - 4]
call fcn.00415491
xor eax, eax
mov dword [ebp - 0x46], 0x4b3a4b21
mov dword [ebp - 0x42], 0x4be34b10
xor ecx, ecx
mov dword [ebp - 0x3e], 0x4bef4bf4
mov dword [ebp - 0x3a], 0x4bea4be6
mov dword [ebp - 0x36], 0x4bf54bf1
mov dword [ebp - 0x32], 0x4bc94bbd
mov dword [ebp - 0x2e], 0x4bfa4bf9
mov dword [ebp - 0x2a], 0x4be54be7
mov dword [ebp - 0x26], 0x4bef4bee
mov dword [ebp - 0x22], 0x4bf94bfb
mov dword [ebp - 0x1e], 0x4bfc4bfe
mov dword [ebp - 0x1a], 0x4bf54bd7
mov dword [ebp - 0x16], 0x4bf74be1
mov word [ebp - 0x12], ax
lea eax, [ecx + 0x4b7d]
xor word [ebp + ecx*2 - 0x46], ax
inc ecx
cmp ecx, 0x1a
jb 0x4178ac
xor eax, eax
lea ecx, [ebp - 4]
mov word [ebp - 0x12], ax
lea eax, [ebp - 0x46]
push eax
call fcn.004040f3
lea ecx, [ebp - 0xc]
call fcn.00415444
push dword [ebp - 4]
mov esi, dword [0x502a2d4]
call esi
push dword [ebp - 0xc]
mov edi, eax
call esi
push edi
push eax
call dword [0x502a220]
test eax, eax
jne 0x41790c
mov ecx, dword [ebp - 0xc]
call fcn.004074b7
mov ecx, dword [ebp - 4]
call fcn.004074b7
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret
push dword [0x5164090]
mov ebx, dword [0x502a234]
call ebx
lea eax, [ebp - 8]
xor edi, edi
push eax
mov dword [ebp - 8], edi
call dword [0x502a0ec]
push eax
call dword [0x502a108]
cmp dword [ebp - 8], edi
je 0x41793d
lea ecx, [ebp - 0x10]
call fcn.004152a7
call fcn.0041771a
mov esi, 0x400
lea eax, [ebp - 0x910]
push esi
push edi
push eax
call fcn.00401ecf
add esp, 0xc
lea eax, [ebp - 0x910]
push esi
push eax
push edi
call dword [0x502a258]
lea eax, [ebp - 0x910]
mov esi, 0x502d372
push eax
push esi
call fcn.00417796
push esi
push 0x502d7ac
call fcn.00417796
add esp, 0x10
lea eax, [ebp - 0x510]
push 0x104
push eax
call dword [0x502a1e0]
push 0x502d7bc
lea eax, [ebp - 0x510]
push eax
call dword [0x502a238]
call dword [0x502a240]
push 0x44
lea eax, [ebp - 0x54]
push edi
push eax
call fcn.00401ecf
push 0x11
pop ecx
lea esi, [ebp - 0x54]
xor eax, eax
lea edi, [ebp - 0xc0]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x74]
stosd dword es:[edi], eax
lea esi, [ebp - 0x74]
push 0xa
pop ecx
push 0x1df
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x2df]
lea edi, [ebp - 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, 0x502d7d4
lea edi, [ebp - 0x308]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
push edi
push eax
call fcn.00401ecf
mov esi, dword [0x502a204]
add esp, 0x18
push 0x4e20
call esi
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xc0]
push eax
push edi
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp - 0x308]
push eax
push edi
call dword [0x502a224]
push dword [ebp - 0x60]
call ebx
push dword [ebp - 0x64]
call ebx
lea eax, [ebp - 0x510]
push eax
lea eax, [ebp - 0x100]
push 0x502a7c0
push eax
call dword [0x502a2d0]
add esp, 0xc
push edi
push dword [ebp - 0x14]
call dword [0x502a1c0]
cmp dword [ebp - 8], edi
je 0x417a6f
lea ecx, [ebp - 0x10]
call fcn.004152d4
push 0x7d0
call esi
push 0x502d780
push 0x80000001
call dword [0x502a030]
push edi
call dword [0x502a22c]
int3