Function at 0x419853
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, dword [esp + 0x34]
xor dword [0x488c18], 0xe2145dc6
mov eax, dword [0x4888a0]
cmp eax, 0x181c0138
jg 0x419896
mov eax, dword [0x48b4d0]
lea ecx, [eax + 1]
mov dword [0x48b4d0], ecx
mov ecx, dword [0x488330]
add ecx, 0x2491c9b9
or ecx, eax
or dword [0x489ee4], ecx
mov ebx, dword [esp + 0x28]
mov ax, word [0x48df50]
add eax, 0xffff9fcb
mov word [0x48df50], ax
mov eax, dword [esi + 4]
shl eax, 2
push eax
push dword [esi + 8]
call fcn.0042076e
add esp, 8
mov eax, dword [0x48ba6c]
imul eax, eax, 0xc3a41e05
mov ecx, dword [0x487f78]
lea edx, [ecx - 1]
mov dword [0x487f78], edx
add eax, ecx
cmp eax, 0xc6c17398
jne 0x4198ec
add dword [0x48ae30], 0x1a538ebd
jmp 0x4198f6
add dword [0x4896bc], 0xa2c48a3c
mov eax, dword [esi + 8]
mov dword [esp + 4], eax
mov eax, dword [0x488538]
imul eax, eax, 0x2c896980
mov dword [0x488538], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [eax + 4]
mov eax, dword [0x48b010]
xor dword [0x487880], 0x5090678d
mov ecx, dword [ebx + 4]
cmp ecx, edi
jle 0x41992c
mov ecx, edi
mov edx, dword [esp + 0x24]
mov ax, word [0x48e66c]
or eax, 0x96c5
mov word [0x48e66c], ax
test edi, edi
jle 0x419a59
xor esi, esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 4]
mov dword [esp + 8], ecx
mov ax, word [0x48dcdc]
inc dword [0x4875f8]
inc dword [0x48a41c]
mov eax, dword [0x488934]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
mov edi, dword [eax + esi*4]
inc dword [0x48a7ac]
mov eax, dword [0x489c20]
lea ecx, [eax + 1]
mov dword [0x489c20], ecx
imul eax, eax, 0x200e24ec
add eax, 0xc5eb3be8
or dword [0x48a7a4], eax
mov eax, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [ecx + 8]
mov ebx, dword [eax]
imul ebx, edi
add ebx, dword [ebp]
mov eax, dword [0x48aa18]
inc eax
mov dword [0x48aa18], eax
imul eax, eax, 0x8a3fced0
add dword [0x488098], eax
imul ebx, dword [esp + 0x30]
push edi
push ebp
push dword [ecx + 8]
push dword [esp + 0x14]
call fcn.0041cf30
add esp, 0x10
mov ax, word [0x48dc56]
mov cx, word [0x48d744]
xor ecx, eax
not ecx
mov word [0x48d744], cx
push ebx
mov ebx, dword [esp + 0x30]
push ebp
push dword [ebx + 8]
mov ebx, dword [esp + 0x18]
push ebx
call fcn.0041cf30
add esp, 0x10
mov ax, word [0x48cf92]
mov dword [ebp], edi
xor dword [0x48997c], 0x2d9db154
mov dword [ebp + ebx*4 + 8], 0
lea ebp, [ebp + 4]
mov ax, word [0x48db9c]
xor eax, 0xbe7f
mov word [0x48db9c], ax
inc esi
cmp ebx, esi
jne 0x419957
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 4]
mov eax, dword [esp + 0xc]
lea ebp, [ebp + eax*4]
mov esi, dword [esp + 0x34]
mov edi, eax
jmp 0x419a5d
mov ebp, dword [esp + 4]
mov eax, dword [0x489fe0]
lea ecx, [eax + 1]
mov dword [0x489fe0], ecx
xor eax, 0x4fd84f36
or dword [0x4871c0], eax
lea eax, [edi*4 + 4]
push eax
push ebp
mov ebp, edx
push dword [ebp + 8]
call fcn.00431f10
add esp, 0xc
mov ax, word [0x48cc6c]
add eax, 0xffffb9ef
mov word [0x48cc6c], ax
push dword [esp + 0x2c]
push ebp
call fcn.00427c88
add esp, 8
test eax, eax
js 0x419abb
push dword [ebp + 8]
mov eax, dword [esp + 0x30]
push dword [eax + 8]
push edi
jmp 0x419ac2
push dword [esi + 8]
push dword [ebp + 8]
push edi
call fcn.004071b6
add esp, 0xc
mov dword [0x488674], 0xc556c8ac
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret