Function at 0x416c60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4df4
call fcn.0047f4e0
mov eax, dword [0x4c5008]
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 + 0xadbb8]
call fcn.00459c80
push eax
call dword [0x4991d0]
mov ecx, ebx
call fcn.00442470
lea ecx, [ebx + 0xadbb8]
call fcn.00459c80
mov ecx, eax
call fcn.00416660
push 0x4b38
lea eax, [esp + 0x2c4]
mov ecx, 0xa7
lea esi, [ebx + 0xadcbc]
lea edi, [esp + 0x24]
push 0
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.00463720
add esp, 0xc
mov dword [esp + 0x2c0], 0x4b38
xor esi, esi
lea edi, [ebx + 0x3de7c]
nop
mov ecx, edi
call fcn.0045ac50
mov byte [esp + esi + 0x2c4], al
add edi, 0xc
inc esi
cmp esi, 0x1f40
jl 0x416cf0
xor esi, esi
lea edi, [ebx + 0x5557c]
mov ecx, edi
call fcn.0045ac50
mov byte [esp + esi + 0x2204], al
add edi, 0xc
inc esi
cmp esi, 0x3e8
jl 0x416d12
xor esi, esi
lea edi, [ebx + 0x584d4]
mov ecx, edi
call fcn.0045ac50
mov word [esp + esi*2 + 0x25f6], ax
add edi, 0xc
inc esi
cmp esi, 0x1388
jl 0x416d34
xor esi, esi
lea edi, [ebx + 0x67114]
mov ecx, edi
call fcn.0045ac50
mov dword [esp + esi*4 + 0x4da8], eax
add edi, 0xc
inc esi
cmp esi, 0x14
jl 0x416d57
xor esi, esi
lea edi, [ebx + 0x66f34]
mov ecx, edi
call fcn.0045ac50
mov dword [esp + esi*4 + 0x4d08], eax
add edi, 0xc
inc esi
cmp esi, 0x28
jl 0x416d76
mov esi, dword [0x4993a4]
call esi
mov ecx, eax
mov dword [esp + 0x20], 0x29c
sub ecx, dword [ebx + 0xadf58]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
add dword [esp + 0x2ac], edx
call esi
mov ecx, eax
call fcn.0045b040
call fcn.0045b020
movzx edx, ax
shl edx, 0x10
call fcn.0045b020
movzx eax, ax
or eax, edx
push 0x4dd4
mov dword [esp + 0x1c], eax
call fcn.004616b2
add esp, 4
mov dword [esp + 0x1c], eax
mov edi, eax
lea esi, [esp + 0x20]
mov ecx, 0xa7
add eax, 0x29c
rep movsd dword es:[edi], dword [esi]
push 0x4b38
lea ecx, [esp + 0x2c4]
push ecx
push eax
call fcn.0047fbe0
mov ecx, dword [esp + 0x24]
add esp, 0xc
call fcn.0045b040
mov edi, dword [esp + 0x1c]
mov edx, 0x26ea
mov ecx, edi
call fcn.0045b020
movzx eax, ax
lea ecx, [ecx + 2]
xor word [ecx - 2], ax
sub edx, 1
jne 0x416e25
push edx
push 0x80
push 2
push edx
push 1
push 0x40000000
push str.system.dat
call dword [0x4991c8]
mov esi, eax
cmp esi, 0xffffffff
je 0x416eb0
push 0
lea eax, [esp + 0x18]
push eax
push 0x4dd4
push edi
mov edi, dword [0x4991d8]
push esi
call edi
test eax, eax
je 0x416ea9
cmp dword [esp + 0x14], 0x4dd4
jne 0x416ea9
push 0
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x24]
push eax
push esi
call edi
test eax, eax
je 0x416ea9
cmp dword [esp + 0x14], 4
jne 0x416ea9
push esi
call dword [0x4991c0]
mov byte [esp + 0x13], 1
jmp 0x416eb0
push esi
call dword [0x4991c0]
push dword [esp + 0x1c]
call fcn.004616ad
add esp, 4
lea ecx, [ebx + 0xadba0]
call fcn.00459c80
push eax
call dword [0x4991d0]
mov al, byte [esp + 0x13]
test al, al
jne 0x416f17
mov edx, dword [ebx + 0x218]
lea ecx, [ebx + 0x218]
call dword [edx + 0x14]
push 0x10010
push 0x4b306c
push 0x4b1564
test eax, eax
jne 0x416f01
push eax
call dword [0x4992bc]
jmp 0x416f13
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.00461211
mov esp, ebp
pop ebp
ret 4