Function at 0x41e370
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x27c
mov eax, 2
imul ecx, eax, 0xb73
movsx edx, word [ecx + 0x48fba0]
xor edx, 0x6926a784
mov eax, 2
imul ecx, eax, 0xb73
mov word [ecx + 0x48fba0], dx
cmp dword [0x48f97c], 0
je 0x41e3b1
jmp 0x41eaf3
mov edx, 4
imul eax, edx, 0x20ae
mov ecx, dword [eax + 0x495f00]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, 4
imul eax, edx, 0x20ae
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0x495f00], ecx
mov edx, dword [ebp - 0x24]
sub edx, 0x6f50eff5
and edx, 0x8fb29403
mov eax, 4
imul ecx, eax, 0x1536
mov eax, dword [ecx + 0x495f00]
and eax, edx
mov ecx, 4
imul edx, ecx, 0x1536
mov dword [edx + 0x495f00], eax
mov eax, 4
imul ecx, eax, 0x495
mov edx, dword [ecx + 0x495f00]
and edx, 0x36e0e4c
mov eax, 4
imul ecx, eax, 0x186
mov dword [ecx + 0x495f00], edx
mov edx, 4
imul eax, edx, 0x5a5
mov ecx, dword [eax + 0x495f00]
xor ecx, 0xd820847b
mov edx, 4
imul eax, edx, 0x5a5
mov dword [eax + 0x495f00], ecx
mov ecx, 4
imul edx, ecx, 0x113e
mov eax, dword [edx + 0x495f00]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, 4
imul edx, ecx, 0x113e
mov eax, dword [ebp - 0x20]
mov dword [edx + 0x495f00], eax
cmp dword [ebp - 0x20], 0xb13cb463
je 0x41e4bc
mov ecx, 4
imul edx, ecx, 0x4c5
mov eax, dword [edx + 0x495f00]
or eax, 0x4d4d57e
mov ecx, 4
imul edx, ecx, 0x4c5
mov dword [edx + 0x495f00], eax
jmp 0x41e4f7
mov eax, 4
imul ecx, eax, 0x2004
mov edx, 4
imul eax, edx, 0x2206
mov edx, dword [eax + 0x495f00]
or edx, 0xb4bac00e
mov eax, dword [ecx + 0x495f00]
add eax, edx
mov ecx, 4
imul edx, ecx, 0x2004
mov dword [edx + 0x495f00], eax
mov eax, 4
imul ecx, eax, 0x1616
mov edx, dword [ecx + 0x495f00]
sub edx, 0xde67f1b
mov eax, 4
imul ecx, eax, 0x1616
mov dword [ecx + 0x495f00], edx
lea edx, [ebp - 0x13c]
push edx
push 0x104
call fcn.00409330
add esp, 8
mov eax, 4
imul ecx, eax, 0x1dc5
mov edx, dword [ecx + 0x495f00]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, 4
imul ecx, eax, 0x1dc5
mov edx, dword [ebp - 0x18]
mov dword [ecx + 0x495f00], edx
mov eax, dword [ebp - 0x18]
add eax, 0x34227d5
mov ecx, 4
imul edx, ecx, 0x29f2
mov ecx, dword [edx + 0x495f00]
add ecx, eax
mov edx, 4
imul eax, edx, 0x29f2
mov dword [eax + 0x495f00], ecx
lea ecx, [ebp - 0x13c]
push ecx
call fcn.004652c0
add esp, 4
mov dword [ebp - 0x14], eax
mov edx, 4
imul eax, edx, 0x194d
mov ecx, 2
imul edx, ecx, 0x2e4a
movsx ecx, word [edx + 0x48fba0]
mov edx, 2
imul edx, edx, 0x192c
movsx edx, word [edx + 0x48fba0]
imul ecx, edx
and ecx, 0x41c3e1aa
mov eax, dword [eax + 0x495f00]
or eax, ecx
mov ecx, 4
imul edx, ecx, 0x194d
mov dword [edx + 0x495f00], eax
push 0x3e8
call dword [0x48fb14]
mov eax, 2
imul ecx, eax, 0x2ea7
movsx edx, word [ecx + 0x48fba0]
add edx, 0x1a009210
mov eax, 2
imul ecx, eax, 0x2ea7
mov word [ecx + 0x48fba0], dx
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0x13c], 0
mov eax, 4
imul ecx, eax, 0x23a2
mov edx, dword [ecx + 0x495f00]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, 4
imul ecx, eax, 0x23a2
mov edx, dword [ebp - 0xc]
mov dword [ecx + 0x495f00], edx
cmp dword [ebp - 0xc], 0x80e0a8aa
jne 0x41e689
mov eax, 4
imul ecx, eax, 0x14c6
mov edx, dword [ecx + 0x495f00]
and edx, 0xfa00012f
mov eax, 4
imul ecx, eax, 0x14c6
mov dword [ecx + 0x495f00], edx
mov edx, dword [0x48f998]
push edx
lea eax, [ebp - 0x13c]
push eax
call fcn.00465140
add esp, 8
mov ecx, 2
imul edx, ecx, 0x1b30
mov eax, 4
imul ecx, eax, 0x723
mov eax, dword [ecx + 0x495f00]
or eax, 0x576fe4a0
movsx ecx, word [edx + 0x48fba0]
add ecx, eax
mov edx, 2
imul eax, edx, 0x1b30
mov word [eax + 0x48fba0], cx
push 2
push 0x23a3
call fcn.004456b0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, 4
imul edx, ecx, 0x2b21
mov eax, dword [edx + 0x495f00]
xor eax, 0x90af7033
mov ecx, 4
imul edx, ecx, 0x2b21
mov dword [edx + 0x495f00], eax
mov eax, dword [ebp - 0x10]
push eax
lea ecx, [ebp - 0x13c]
push ecx
call fcn.00465140
add esp, 8
mov edx, 4
imul eax, edx, 0x39c
mov ecx, dword [eax + 0x495f00]
sub ecx, 0x3bfac616
cmp ecx, 0xf75de1cb
jl 0x41e7a6
mov edx, 4
imul eax, edx, 0x13ab
mov ecx, 4
imul edx, ecx, 0x1906
mov ecx, dword [edx + 0x495f00]
sub ecx, 0x729ee442
mov edx, dword [eax + 0x495f00]
and edx, ecx
mov eax, 4
imul ecx, eax, 0x13ab
mov dword [ecx + 0x495f00], edx
mov edx, 4
imul eax, edx, 0x1906
mov ecx, dword [eax + 0x495f00]
sub ecx, 1
mov edx, 4
imul eax, edx, 0x1906
mov dword [eax + 0x495f00], ecx
mov ecx, dword [ebp - 0x10]
push ecx
push 2
call fcn.00405010
add esp, 8
mov edx, 2
imul eax, edx, 0x1f82
mov ecx, 0xffffd99b
mov word [eax + 0x48fba0], cx
lea edx, [ebp - 0x27c]
push edx
lea eax, [ebp - 0x13c]
push eax
call dword [0x48fa6c]
mov dword [ebp - 8], eax
mov ecx, 4
imul edx, ecx, 0x10a6
mov eax, 4
imul ecx, eax, 0x185a
mov eax, dword [ecx + 0x495f00]
not eax
add eax, 0x4bdcc69b
mov ecx, dword [edx + 0x495f00]
imul ecx, eax
mov edx, 4
imul eax, edx, 0x10a6
mov dword [eax + 0x495f00], ecx
cmp dword [ebp - 8], 0xffffffff
je 0x41e9c3
mov ecx, 2
imul edx, ecx, 0x2193
mov eax, 4
imul ecx, eax, 0xab1
mov eax, dword [ecx + 0x495f00]
movsx ecx, word [edx + 0x48fba0]
lea edx, [ecx + eax*2]
mov eax, 2
imul ecx, eax, 0x2193
mov word [ecx + 0x48fba0], dx
mov edx, 4
imul eax, edx, 0x46a
mov ecx, dword [eax + 0x495f00]
add ecx, 0x38f6c5cf
mov edx, 4
imul eax, edx, 0x46a
mov dword [eax + 0x495f00], ecx
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x13c], 0
mov edx, 4
imul eax, edx, 0x2bb7
mov ecx, dword [eax + 0x495f00]
or ecx, 0xf7d9daff
mov edx, 4
imul eax, edx, 0x2bb7
mov dword [eax + 0x495f00], ecx
lea ecx, [ebp - 0x250]
push ecx
lea edx, [ebp - 0x13c]
push edx
call fcn.00465140
add esp, 8
mov eax, 4
imul ecx, eax, 0x1301
mov edx, 4
imul eax, edx, 0xa24
mov edx, 0xfd941cc7
sub edx, dword [eax + 0x495f00]
add edx, 0x650341bc
mov eax, dword [ecx + 0x495f00]
and eax, edx
mov ecx, 4
imul edx, ecx, 0x1301
mov dword [edx + 0x495f00], eax
lea eax, [ebp - 0x13c]
push eax
call dword [0x48fa5c]
mov ecx, 4
imul edx, ecx, 0x223f
mov eax, dword [edx + 0x495f00]
xor eax, 0x990f2864
mov ecx, 4
imul edx, ecx, 0x223f
mov dword [edx + 0x495f00], eax
lea eax, [ebp - 0x27c]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [0x48fa68]
test eax, eax
jne 0x41e861
mov edx, 4
imul eax, edx, 0x1570
mov ecx, 4
imul edx, ecx, 0x1b1f
mov eax, dword [eax + 0x495f00]
sub eax, dword [edx + 0x495f00]
mov ecx, 4
imul edx, ecx, 0x1570
mov dword [edx + 0x495f00], eax
mov eax, dword [ebp - 8]
push eax
call dword [0x48fa64]
mov ecx, 4
imul edx, ecx, 0x20c5
mov eax, dword [edx + 0x495f00]
and eax, 0x9acec7d5
mov ecx, 4
imul edx, ecx, 0x20c5
mov dword [edx + 0x495f00], eax
mov eax, 2
imul ecx, eax, 0x17b0
movsx edx, word [ecx + 0x48fba0]
not edx
imul eax, edx, 0x39c11ddd
xor eax, 0x5a4e9e0e
cmp eax, 0x268ec5e3
jl 0x41ea7b
mov ecx, 2
imul edx, ecx, 0x235d
mov ax, word [edx + 0x48fba0]
sub ax, 1
mov word [ebp - 2], ax
mov ecx, 2
imul edx, ecx, 0x235d
mov ax, word [ebp - 2]
mov word [edx + 0x48fba0], ax
movsx ecx, word [ebp - 2]
cmp ecx, 0x96d99f32
jne 0x41ea79
mov edx, 4
imul eax, edx, 0xc2d
mov ecx, dword [eax + 0x495f00]
sub ecx, 1
mov dword [ebp - 0x1c], ecx
mov edx, 4
imul eax, edx, 0xc2d
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x495f00], ecx
mov edx, 4
imul eax, edx, 0x2b52
mov ecx, dword [eax + 0x495f00]
or ecx, dword [ebp - 0x1c]
mov edx, 4
imul eax, edx, 0x2b52
mov dword [eax + 0x495f00], ecx
jmp 0x41eab7
mov ecx, 4
imul edx, ecx, 0x2dab
mov eax, 2
imul ecx, eax, 0x2f6
movsx eax, word [ecx + 0x48fba0]
and eax, 0x9b47e007
mov ecx, dword [edx + 0x495f00]
imul ecx, eax
mov edx, 4
imul eax, edx, 0x2dab
mov dword [eax + 0x495f00], ecx
push 0x118
push 0
lea ecx, [ebp - 0x13c]
push ecx
call fcn.004650a0
add esp, 0xc
mov edx, 4
imul eax, edx, 0x30da
imul ecx, dword [eax + 0x495f00], 0xf1f242e2
mov edx, 4
imul eax, edx, 0x30da
mov dword [eax + 0x495f00], ecx
mov esp, ebp
pop ebp
ret