Function at 0x416cb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4df4
call fcn.0047fbf0
mov eax, dword [0x4c6008]
xor eax, esp
mov dword [esp + 0x4df0], eax
push ebx
mov ebx, ecx
xor al, al
push esi
push edi
mov byte [esp + 0x13], al
lea ecx, [ebx + 0xae838]
call fcn.0045a620
push eax
call dword [0x49a1d8]
mov ecx, ebx
call fcn.00443170
lea ecx, [ebx + 0xae838]
call fcn.0045a620
mov ecx, eax
call fcn.004166b0
push 0x4b38
lea eax, [esp + 0x2c4]
mov ecx, 0xa8
lea esi, [ebx + 0xae93c]
lea edi, [esp + 0x24]
push 0
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.00464070
add esp, 0xc
mov dword [esp + 0x2c0], 0x4b38
xor esi, esi
lea edi, [ebx + 0x3de7c]
nop
mov ecx, edi
call fcn.0045b5f0
mov byte [esp + esi + 0x2c4], al
add edi, 0xc
inc esi
cmp esi, 0x1f40
jl 0x416d40
xor esi, esi
lea edi, [ebx + 0x5557c]
mov ecx, edi
call fcn.0045b5f0
mov byte [esp + esi + 0x2204], al
add edi, 0xc
inc esi
cmp esi, 0x3e8
jl 0x416d62
xor esi, esi
lea edi, [ebx + 0x584d4]
mov ecx, edi
call fcn.0045b5f0
mov word [esp + esi*2 + 0x25f6], ax
add edi, 0xc
inc esi
cmp esi, 0x1388
jl 0x416d84
xor esi, esi
lea edi, [ebx + 0x67114]
mov ecx, edi
call fcn.0045b5f0
mov dword [esp + esi*4 + 0x4da8], eax
add edi, 0xc
inc esi
cmp esi, 0x14
jl 0x416da7
xor esi, esi
lea edi, [ebx + 0x66f34]
mov ecx, edi
call fcn.0045b5f0
mov dword [esp + esi*4 + 0x4d08], eax
add edi, 0xc
inc esi
cmp esi, 0x28
jl 0x416dc6
mov esi, dword [0x49a3bc]
call esi
mov ecx, eax
mov dword [esp + 0x20], 0x2a0
sub ecx, dword [ebx + 0xaebdc]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
add dword [esp + 0x2b0], edx
call esi
mov ecx, eax
call fcn.0045b9e0
call fcn.0045b9c0
movzx edx, ax
shl edx, 0x10
call fcn.0045b9c0
movzx eax, ax
or eax, edx
push 0x4dd8
mov dword [esp + 0x1c], eax
call fcn.00462014
add esp, 4
mov dword [esp + 0x1c], eax
mov edi, eax
lea esi, [esp + 0x20]
mov ecx, 0xa8
add eax, 0x2a0
rep movsd dword es:[edi], dword [esi]
push 0x4b38
lea ecx, [esp + 0x2c4]
push ecx
push eax
call fcn.004802f0
mov ecx, dword [esp + 0x24]
add esp, 0xc
call fcn.0045b9e0
mov edi, dword [esp + 0x1c]
mov edx, 0x26ec
mov ecx, edi
call fcn.0045b9c0
movzx eax, ax
lea ecx, [ecx + 2]
xor word [ecx - 2], ax
sub edx, 1
jne 0x416e75
push edx
push 0x80
push 2
push edx
push 1
push 0x40000000
push str.system.dat
call dword [0x49a1d0]
mov esi, eax
cmp esi, 0xffffffff
je 0x416f00
push 0
lea eax, [esp + 0x18]
push eax
push 0x4dd8
push edi
mov edi, dword [0x49a1e0]
push esi
call edi
test eax, eax
je 0x416ef9
cmp dword [esp + 0x14], 0x4dd8
jne 0x416ef9
push 0
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x24]
push eax
push esi
call edi
test eax, eax
je 0x416ef9
cmp dword [esp + 0x14], 4
jne 0x416ef9
push esi
call dword [0x49a1c8]
mov byte [esp + 0x13], 1
jmp 0x416f00
push esi
call dword [0x49a1c8]
push dword [esp + 0x1c]
call fcn.0046200f
add esp, 4
lea ecx, [ebx + 0xae820]
call fcn.0045a620
push eax
call dword [0x49a1d8]
mov al, byte [esp + 0x13]
test al, al
jne 0x416f67
mov edx, dword [ebx + 0x218]
lea ecx, [ebx + 0x218]
call dword [edx + 0x14]
push 0x10010
push 0x4b40c0
push 0x4b2594
test eax, eax
jne 0x416f51
push eax
call dword [0x49a2c4]
jmp 0x416f63
mov eax, dword [ebx + 0x218]
lea ecx, [ebx + 0x218]
call dword [eax + 0xb8]
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x4dfc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00461b73
mov esp, ebp
pop ebp
ret 4