Function at 0x41f5a7
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov eax, dword [0x488854]
lea ecx, [eax + 1]
mov dword [0x488854], ecx
add eax, 0x66738ba4
and eax, 0xdf4819a1
mov ecx, dword [0x489f04]
sub ecx, eax
mov dword [0x489f04], ecx
add dword [0x48932c], 0x3737b7bc
mov eax, dword [0x48c220]
cmp eax, 0xf03fb253
jne 0x41f607
mov eax, dword [0x48a6f4]
imul eax, eax, 0xe77ab04d
add dword [0x488ef8], eax
mov eax, dword [esi + 4]
shl eax, 2
push eax
push dword [esi + 8]
call fcn.00430c4a
add esp, 8
add dword [0x48857c], 0x3d982d12
mov eax, dword [esi + 8]
mov dword [esp + 4], eax
mov eax, dword [0x48b7f0]
mov ecx, dword [0x489fb4]
or ecx, eax
or ecx, 0xe0295ccb
mov dword [0x489fb4], ecx
mov edi, dword [ebx + 4]
mov dword [0x48a0bc], 0x723e237e
mov edx, dword [ebp + 4]
cmp edx, edi
jle 0x41f659
mov edx, edi
mov ebp, dword [esp + 0x24]
mov ax, word [0x48e6b2]
dec eax
mov word [0x48e6b2], ax
cwde
mov ecx, dword [0x489fdc]
lea eax, [eax + ecx + 0x69563c82]
mov dword [0x489fdc], eax
test edi, edi
jle 0x41f7d5
xor ebp, ebp
mov esi, edi
mov edi, dword [esp + 4]
mov dword [esp + 8], edx
mov ax, word [0x490bf6]
add eax, 0xd0c
mov word [0x490bf6], ax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
mov edx, dword [eax + ebp*4]
mov dword [esp + 0xc], edx
mov ax, word [0x48fd90]
inc eax
mov word [0x48fd90], ax
cwde
xor eax, 0xbd5ee103
mov ecx, dword [0x4887fc]
imul ecx, eax
mov dword [0x4887fc], ecx
mov eax, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [ecx + 8]
mov ebx, dword [eax]
imul ebx, edx
add ebx, dword [edi]
mov ax, word [0x4903ce]
inc eax
mov word [0x4903ce], ax
cwde
xor eax, 0xac35eee1
mov dword [0x48db84], eax
imul ebx, dword [esp + 0x30]
push edx
push edi
push dword [ecx + 8]
push dword [esp + 0x14]
call fcn.00405082
add esp, 0x10
inc dword [0x48b624]
mov ax, word [0x48f9cc]
cwde
sar eax, 2
mov ecx, dword [0x48a050]
sub ecx, eax
mov dword [0x48a050], ecx
push ebx
mov ebx, dword [esp + 0x30]
push edi
push dword [ebx + 8]
push esi
call fcn.00405082
add esp, 0x10
mov ax, word [0x48ed12]
dec eax
mov word [0x48ed12], ax
cwde
mov cx, word [0x48f284]
movsx ecx, cx
sub eax, ecx
mov ecx, dword [0x48b460]
dec ecx
mov dword [0x48b460], ecx
xor ecx, eax
add dword [0x48be7c], ecx
mov eax, dword [esp + 0xc]
mov dword [edi], eax
mov eax, dword [0x489778]
shl eax, 0xa
mov ecx, dword [0x48c768]
xor ecx, eax
xor ecx, 0x12b80830
mov dword [0x48c768], ecx
mov dword [edi + esi*4 + 8], 0
lea edi, [edi + 4]
mov eax, dword [0x48d340]
dec eax
mov dword [0x48d340], eax
mov cx, word [0x48fe2c]
and ecx, eax
mov word [0x48fe2c], cx
inc ebp
cmp esi, ebp
jne 0x41f691
mov ecx, dword [esp + 4]
mov eax, esi
lea ecx, [ecx + eax*4]
mov esi, dword [esp + 0x34]
mov edi, eax
mov ebp, dword [esp + 0x24]
jmp 0x41f7d9
mov ecx, dword [esp + 4]
mov eax, dword [0x48a5bc]
shl eax, 4
and eax, 0x2ba4000
or eax, 0x4d05a958
and dword [0x48d218], eax
lea eax, [edi*4 + 4]
push eax
push ecx
push dword [ebp + 8]
call fcn.004329e0
add esp, 0xc
mov eax, dword [0x489258]
lea ecx, [eax + 1]
mov dword [0x489258], ecx
add eax, 0x111a
and eax, 0x2d1a
mov word [0x48eed2], ax
push ebx
push ebp
call fcn.00413227
add esp, 8
test eax, eax
js 0x41f83a
push dword [ebp + 8]
push dword [ebx + 8]
push edi
jmp 0x41f841
push dword [esi + 8]
push dword [ebp + 8]
push edi
call fcn.004168e4
add esp, 0xc
mov ax, word [0x490682]
or eax, 0x154e
mov word [0x490682], ax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret