Function at 0x41f3e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x4df4
call fcn.0046c2a0
mov eax, dword [0x4c72d0]
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 + 0xad53c]
call fcn.00460050
push eax
call dword [0x4961dc]
mov ecx, ebx
call fcn.0044a0a0
lea ecx, [ebx + 0xad53c]
call fcn.00460050
mov ecx, eax
call fcn.0041edb0
push 0x4b38
lea eax, [esp + 0x2c4]
mov ecx, 0xa7
lea esi, [ebx + 0xad640]
lea edi, [esp + 0x24]
push 0
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.0046ac70
add esp, 0xc
mov dword [esp + 0x2c0], 0x4b38
xor esi, esi
lea edi, [ebx + 0x3d800]
nop
mov ecx, edi
call fcn.00461160
mov byte [esp + esi + 0x2c4], al
add edi, 0xc
inc esi
cmp esi, 0x1f40
jl 0x41f470
xor esi, esi
lea edi, [ebx + 0x54f00]
mov ecx, edi
call fcn.00461160
mov byte [esp + esi + 0x2204], al
add edi, 0xc
inc esi
cmp esi, 0x3e8
jl 0x41f492
xor esi, esi
lea edi, [ebx + 0x57e58]
mov ecx, edi
call fcn.00461160
mov word [esp + esi*2 + 0x25f6], ax
add edi, 0xc
inc esi
cmp esi, 0x1388
jl 0x41f4b4
xor esi, esi
lea edi, [ebx + 0x66a98]
mov ecx, edi
call fcn.00461160
mov dword [esp + esi*4 + 0x4da8], eax
add edi, 0xc
inc esi
cmp esi, 0x14
jl 0x41f4d7
xor esi, esi
lea edi, [ebx + 0x668b8]
mov ecx, edi
call fcn.00461160
mov dword [esp + esi*4 + 0x4d08], eax
add edi, 0xc
inc esi
cmp esi, 0x28
jl 0x41f4f6
mov esi, dword [0x4963a0]
call esi
mov ecx, eax
mov dword [esp + 0x20], 0x29c
sub ecx, dword [ebx + 0xad8dc]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
add dword [esp + 0x2ac], edx
call esi
mov ecx, eax
call fcn.00461550
call fcn.00461530
movzx edx, ax
shl edx, 0x10
call fcn.00461530
movzx eax, ax
or eax, edx
push 0x4dd4
mov dword [esp + 0x1c], eax
call fcn.00466953
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.00469f60
mov ecx, dword [esp + 0x24]
add esp, 0xc
call fcn.00461550
mov edi, dword [esp + 0x1c]
mov edx, 0x26ea
mov ecx, edi
call fcn.00461530
movzx eax, ax
lea ecx, [ecx + 2]
xor word [ecx - 2], ax
dec edx
jne 0x41f5a5
push edx
push 0x80
push 2
push edx
push 1
push 0x40000000
push str.system.dat
call dword [0x4961f0]
mov esi, eax
cmp esi, 0xffffffff
je 0x41f62e
push 0
lea eax, [esp + 0x18]
push eax
push 0x4dd4
push edi
mov edi, dword [0x4961e4]
push esi
call edi
test eax, eax
je 0x41f627
cmp dword [esp + 0x14], 0x4dd4
jne 0x41f627
push 0
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x24]
push eax
push esi
call edi
test eax, eax
je 0x41f627
cmp dword [esp + 0x14], 4
jne 0x41f627
push esi
call dword [0x4961c8]
mov byte [esp + 0x13], 1
jmp 0x41f62e
push esi
call dword [0x4961c8]
push dword [esp + 0x1c]
call fcn.00467a5a
add esp, 4
lea ecx, [ebx + 0xad524]
call fcn.00460050
push eax
call dword [0x4961dc]
mov al, byte [esp + 0x13]
test al, al
jne 0x41f695
mov edx, dword [ebx + 0x218]
lea ecx, [ebx + 0x218]
call dword [edx + 0x14]
push 0x10010
push 0x4afde8
push 0x4ae3bc
test eax, eax
jne 0x41f67f
push eax
call dword [0x4962c0]
jmp 0x41f691
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.00466a0a
mov esp, ebp
pop ebp
ret 4