Function at 0x417170
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
inc dword [0x447060]
sub esp, 0x10
mov eax, dword [0x447060]
or eax, 0x6d8b386a
imul eax, dword [0x43a304]
mov dword [0x43a304], eax
mov ecx, dword [0x4407b8]
movzx eax, word [0x45875a]
shl ecx, 0xa
xor eax, ecx
mov word [0x45875a], ax
or dword [0x44703c], 0xe34461ae
add dword [0x4487dc], 0xb328246
mov eax, dword [0x444340]
or eax, 0x18291422
mov dword [0x44ba74], eax
inc dword [0x444340]
imul eax, dword [0x447258], 0x1f1c3a0c
mov dword [0x447258], eax
cmp dword [0x439268], 0xd756baff
jge 0x4171f8
mov dword [0x436684], 0xdbc0507b
push ebx
push esi
push 0xf
lea eax, [ebp - 0x10]
push 0
push eax
call fcn.0041f5c0
movsx eax, word [0x450686]
add esp, 0xc
mov ecx, dword [0x435108]
xor edx, edx
mov ebx, dword [ebp + 0x14]
sar eax, 5
add eax, 0xd063d743
xor ecx, eax
sub dword [0x436434], ecx
add dword [0x44a634], 0x31fbd0dc
test ebx, ebx
je 0x4172ea
mov esi, dword [ebp + 0x10]
and dword [0x43edac], 0xf1aeb76f
cmp edx, 0xf
je 0x4172e0
mov eax, dword [0x448678]
mov ecx, 0xffec3512
sub ecx, eax
mov eax, dword [0x436120]
or eax, ecx
mov cl, bl
or eax, 0xfdc145b5
and cl, 1
mov dword [0x436120], eax
movzx eax, word [esi + edx*2 + 0x300]
inc edx
mov byte [ebp + eax - 0x10], cl
add dword [0x43c574], 0x2123adbc
inc dword [0x44a374]
mov eax, dword [0x44a374]
add eax, 0xf74b4020
xor eax, 0x9fd4fa84
or eax, dword [0x448d3c]
mov dword [0x448d3c], eax
movsx eax, word [0x4592be]
mov ecx, dword [0x445ebc]
not eax
and eax, 0xa94205b2
xor ecx, eax
mov eax, dword [0x4436ac]
imul eax, ecx
mov dword [0x4436ac], eax
inc dword [0x445ebc]
shr ebx, 1
jne 0x417241
jmp 0x4172ea
add dword [0x4376e0], 0x1ff3a293
or dword [0x44a228], 0x9e14bd67
xor ebx, ebx
mov eax, dword [0x4468b8]
xor esi, esi
add eax, 0xd75934f6
and dword [0x4473dc], eax
inc dword [0x4468b8]
inc dword [0x436c6c]
mov eax, dword [0x436c6c]
movsx ecx, word [0x45019e]
shl ecx, 3
and ecx, eax
mov eax, dword [0x4460bc]
imul eax, ecx
push edi
xor edi, edi
mov dword [0x4460bc], eax
mov ecx, dword [0x44acf8]
mov eax, dword [0x44693c]
or ecx, eax
and dword [0x446968], ecx
jmp 0x417350
add dword [0x44b0d8], 0x3f7fffd
add ebx, ebx
mov eax, dword [0x4357d0]
add edi, edi
xor eax, 0xcb7edea5
and dword [0x43c6f4], eax
mov ecx, dword [0x437db8]
mov eax, dword [0x435830]
not ecx
xor eax, ecx
movsx ecx, byte [ebp + esi - 0x10]
xor eax, 0xa7a5be1d
or ebx, ecx
mov dword [0x435830], eax
mov edx, dword [0x4475f8]
mov eax, dword [0x44652c]
xor edx, eax
mov ecx, dword [0x4355e8]
mov eax, dword [0x4381d4]
or ecx, edx
imul eax, ecx
mov dword [0x4381d4], eax
dec dword [0x4355e8]
movsx eax, byte [ebp + esi - 9]
inc esi
xor dword [0x442c28], 0x2f3b2bb5
or edi, eax
and dword [0x4430ac], 0xa00633a6
cmp esi, 7
jne 0x417350
imul eax, dword [0x439b04], 0x159a95f3
add edi, edi
mov ecx, 0xcd17686
or eax, 0x8ee7856d
mov dword [0x4376cc], eax
add dword [0x449914], 0x2a288f35
movsx eax, byte [ebp - 2]
or edi, eax
imul eax, dword [0x438d98], 0x6aab5cc8
dec dword [0x438d98]
sub ecx, eax
cmp ecx, 0x4547921d
jg 0x41742c
add dword [0x440f38], 0xade67373
jmp 0x41743f
movzx eax, word [0x451b54]
imul eax, eax, 0x3bbe4fa
mov word [0x451b54], ax
movsx eax, word [0x451e70]
sar eax, 2
imul ecx, eax, 0xdbe6cb24
mov eax, dword [0x44aad8]
xor eax, 0x604405a
or eax, 0xf0b23f25
cmp ecx, eax
jge 0x41747e
mov eax, dword [0x443204]
dec dword [0x443204]
cmp eax, 0x7e9cf0d1
jle 0x41747e
mov dword [0x43a77c], 0xaff4fdaf
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + ebx*2]
add eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push eax
push ebx
call fcn.00405690
mov ecx, dword [0x445264]
mov eax, dword [0x443d98]
shl ecx, 5
or eax, ecx
or eax, 0xd0df8a16
mov dword [0x443d98], eax
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + edi*2 + 0x100]
add eax, dword [ebp + 0xc]
push eax
push ebx
call fcn.00425700
mov eax, dword [0x44b3ac]
sar eax, 8
or eax, 0x7e32cf9c
add dword [0x4399c8], eax
push 5
push 0x1887
call fcn.004270f0
mov ecx, dword [0x448d5c]
add esp, 0x18
inc dword [0x448d5c]
or ecx, 0xacb7ea1c
mov esi, eax
pop edi
cmp ecx, 0xb96d00bb
jge 0x417512
mov ecx, dword [0x445504]
xor ecx, 0x700ca08d
or dword [0x4379c0], ecx
push esi
push ebx
call fcn.00425700
add dword [0x436bbc], 0xde5a0840
push esi
push 5
call fcn.004077b0
movsx eax, word [0x44f460]
add esp, 0x10
imul eax, eax, 0xe420c80
pop esi
pop ebx
add eax, 0xf045559e
xor dword [0x44d1b0], eax
mov esp, ebp
pop ebp
ret