Function at 0x41b623
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ax, word [0x4913a6]
and eax, 0xebb4
mov word [0x4913a6], ax
mov ax, word [0x48f40a]
inc eax
mov word [0x48f40a], ax
cwde
mov ecx, dword [0x48b8a8]
imul ecx, ecx, 0x32e6d098
cmp eax, ecx
jle 0x41b665
mov ax, word [0x48f4a2]
mov ebx, dword [esp + 0x1c]
xor dword [0x48a4f0], 0xc401093
cmp esi, edi
je 0x41b6b1
mov eax, dword [0x48bd30]
or eax, 0x1f74da7
mov ecx, dword [0x48bb4c]
imul ecx, eax
mov dword [0x48bb4c], ecx
cmp ebx, esi
je 0x41b740
push ebx
push esi
call fcn.0041ae36
add esp, 8
test eax, eax
mov ebx, edi
jne 0x41ba15
jmp 0x41b767
mov eax, dword [0x48a610]
or eax, 0x1d7c3e25
xor eax, 0xe283c1da
cmp eax, 0xffdfffea
jg 0x41b6d2
mov eax, dword [0x48bf28]
add dword [0x48bd64], eax
mov eax, dword [0x48854c]
sar eax, 5
mov ecx, dword [0x489e84]
imul ecx, eax
mov dword [0x489e84], ecx
mov ax, word [0x48fd8c]
mov cx, word [0x490cc6]
xor ecx, eax
mov word [0x490cc6], cx
mov eax, dword [0x487b24]
lea ecx, [eax + 1]
mov dword [0x487b24], ecx
add eax, 0xdadcb6de
xor eax, 0xd2d32bae
cmp eax, 0x95556db6
jl 0x41b744
mov eax, dword [0x488e90]
lea ecx, [eax - 1]
mov dword [0x488e90], ecx
mov ecx, dword [0x48dd7c]
lea eax, [eax + ecx + 0x5902d3c9]
mov dword [0x48dd7c], eax
jmp 0x41b74e
mov ebx, edi
jmp 0x41b767
mov dword [0x488a00], 0x4802001
mov eax, dword [0x48bd30]
or eax, 0x1f74da7
mov ecx, dword [0x48bb4c]
imul ecx, eax
mov dword [0x48bb4c], ecx
mov eax, dword [0x48dbf8]
lea ecx, [eax + 1]
mov dword [0x48dbf8], ecx
cmp eax, 0xc53dcae2
jne 0x41b786
add dword [0x487680], 0x13c49027
mov eax, dword [ebx + 4]
lea ecx, [eax*4]
neg ecx
mov edi, eax
mov ebp, ecx
test edi, edi
jle 0x41b7aa
lea eax, [edi - 1]
mov edx, dword [ebx + 8]
lea ecx, [ebp + 4]
cmp dword [edx + edi*4 - 4], 0
je 0x41b792
mov dword [esp], ebp
mov ax, word [0x4909b4]
inc eax
mov word [0x4909b4], ax
cwde
mov ecx, dword [0x48d618]
lea edx, [ecx - 1]
mov dword [0x48d618], edx
and ecx, 0x1a46bcaf
or ecx, eax
cmp ecx, 0x723cd68a
jg 0x41b7fe
mov eax, dword [0x48a9cc]
dec eax
mov dword [0x48a9cc], eax
cmp eax, 0x7d5c1fc0
jne 0x41b7f4
dec dword [0x48d6cc]
jmp 0x41b7fe
and dword [0x4899a4], 0xed7af5e9
push edi
push esi
call fcn.00414689
add esp, 8
test eax, eax
jne 0x41ba15
and dword [0x48c320], 0xfc81f9a9
mov ecx, dword [ebx + 8]
add dword [0x489114], 0x360c588
test edi, edi
mov ebp, dword [esi + 8]
mov dword [0x48b23c], 0xcf0409b8
mov edx, dword [0x48cdec]
jle 0x41b9f3
xor ebx, ebx
xor edx, edx
mov eax, ecx
mov esi, dword [0x48bdbc]
shl esi, 3
and esi, 0x9a7a7ad8
xor dword [0x487fc8], esi
add dword [ebp + edx*4], ebx
mov esi, dword [0x489acc]
and esi, 0x55756e2b
add dword [0x48d46c], esi
mov esi, dword [ebp + edx*4]
mov ecx, dword [0x48aca4]
dec ecx
mov dword [0x48aca4], ecx
xor ecx, 0x81a682
add dword [0x489a74], ecx
mov ecx, dword [eax + edx*4]
add dword [ebp + edx*4], ecx
xor dword [0x48a224], 0xcf1a679d
mov ecx, dword [ebp + edx*4]
cmp ecx, dword [eax + edx*4]
sbb ecx, ecx
and ecx, 1
cmp esi, ebx
mov ebx, ecx
adc ebx, 0
xor dword [0x48b64c], 0xd632b67e
inc edx
cmp edx, edi
jne 0x41b848
test ebx, ebx
mov eax, ebp
je 0x41b9f3
sub eax, dword [esp]
mov cx, word [0x48f8e0]
inc ecx
mov word [0x48f8e0], cx
movsx ecx, cx
mov edx, dword [0x487bec]
imul edx, ecx
cmp edx, 0x1dc34b2a
jg 0x41b917
mov ecx, dword [0x487748]
add ecx, 0xa16f
xor ecx, 0xfd49
mov dx, word [0x4900c8]
sub edx, ecx
mov word [0x4900c8], dx
jmp 0x41b929
mov ecx, dword [0x48a144]
and ecx, 0x9c9199e3
xor dword [0x48903c], ecx
mov esi, dword [esp + 0x18]
cmp edi, dword [esi + 4]
jge 0x41b937
inc edi
mov ebp, edi
jmp 0x41b979
add dword [0x48844c], 0x68c55d1
lea ebp, [edi + 1]
push ebp
push esi
call fcn.00414689
add esp, 8
test eax, eax
jne 0x41ba15
mov ax, word [0x49161a]
xor eax, 0xdcd3
mov word [0x49161a], ax
shl edi, 2
add edi, dword [esi + 8]
add dword [0x489740], 0x3232d3e5
mov eax, edi
add dword [0x487a20], 0x94398f5f
add dword [eax], ebx
mov ecx, dword [0x48ce54]
lea edx, [ecx + 1]
mov dword [0x48ce54], edx
add ecx, 0x22ae6b89
mov edx, dword [0x48868c]
imul edx, ecx
mov dword [0x48868c], edx
mov ecx, dword [eax]
cmp ecx, ebx
mov edx, dword [0x48a47c]
mov esi, dword [0x488fd4]
lea edi, [esi + 1]
mov dword [0x488fd4], edi
sbb edi, edi
imul edx, edx, 0x6ffc3dd0
or edx, esi
and edi, 1
and dword [0x48953c], edx
mov edx, dword [0x488fd4]
imul edx, edx, 0xd0cae5a4
cmp ecx, ebx
mov dword [0x488fd4], edx
mov ebx, edi
mov edi, ebp
jb 0x41b8d0
mov ax, word [0x48f64a]
lea ecx, [eax + 1]
mov word [0x48f64a], cx
mov cx, word [0x48ff6e]
xor ecx, eax
mov word [0x48ff6e], cx
xor eax, eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret