Function at 0x41e900
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x43a3dc]
mov ecx, dword [0x43b368]
imul eax, eax, 0x9ea31bb1
sub esp, 0x258
or ecx, eax
or ecx, 0x36bb2ce5
push ebx
or ebx, 0xffffffff
mov dword [0x43b368], ecx
add dword [0x43a3dc], ebx
mov edx, dword [0x446b80]
test edx, edx
jne 0x41ec92
mov ax, word [0x44570a]
movzx ecx, word [0x442cc2]
cwde
xor eax, 0x248fe1b2
sub ecx, eax
mov word [0x442cc2], cx
inc word [0x44570a]
mov eax, dword [0x43a438]
mov edx, dword [0x436d90]
and eax, 0x7d3c268b
cmp edx, eax
jle 0x41e981
and dword [0x43a6c4], 0xdec93d2b
mov eax, dword [0x437c24]
add eax, dword [0x43abe0]
mov ecx, dword [0x438274]
or eax, 0x2a5c6b7a
imul ecx, eax
push esi
push edi
lea edx, [ebp - 0x118]
mov dword [0x438274], ecx
push edx
mov dword [0x438924], 0xeffdffff
or dword [0x43cd48], 0xaebe07eb
push 0x104
call fcn.0042ece0
and dword [0x44014c], 0x648625a7
lea eax, [ebp - 0x118]
push eax
call fcn.00402a60
mov esi, eax
mov eax, dword [0x43ad10]
imul eax, eax, 0x4636f1c8
xor dword [0x43cfc4], eax
add esp, 0xc
push 0x3e8
call dword [0x4414bc]
mov cx, word [0x445dba]
movsx eax, cx
xor eax, 0xd02569d4
and dword [0x4370c4], eax
mov eax, dword [0x437ea4]
mov edx, dword [0x437030]
shl eax, 5
add edx, eax
cmp edx, 0x3db91cd4
lea edi, [ebp + esi - 0x118]
mov byte [edi], 0
jg 0x41ea7f
mov eax, dword [0x43ce04]
not eax
cmp eax, 0x18b3a3dd
jle 0x41ea74
add dword [0x43b264], ebx
mov eax, dword [0x43b264]
mov ecx, dword [0x440554]
imul eax, eax, 0x6a1a216
movzx edx, word [0x4467e0]
sub ecx, eax
and edx, ecx
mov word [0x4467e0], dx
add dword [0x440554], ebx
jmp 0x41ea7f
add dword [0x439dfc], ebx
mov eax, dword [0x439dfc]
mov ecx, dword [0x446b9c]
push ecx
lea edx, [ebp - 0x118]
push edx
call fcn.00401990
and dword [0x437184], 0xa3437b82
push 2
push 0x2bb3
call fcn.0040d680
mov esi, eax
mov eax, dword [0x43ed04]
imul eax, eax, 0x2261c6c6
add esp, 0x10
cmp eax, 0x599161c7
jge 0x41ead3
movzx ecx, word [0x442e16]
xor ecx, 0xd4abd09c
mov word [0x442e16], cx
lea edx, [ebp - 0x118]
push esi
push edx
call fcn.00401990
mov ecx, dword [0x4404a8]
mov eax, dword [0x437888]
imul ecx, ecx, 0x29a4d3c
add eax, eax
add eax, eax
add eax, eax
xor eax, ecx
or dword [0x43c29c], eax
push esi
push 2
call fcn.0041a760
mov eax, dword [0x43fbc0]
imul eax, eax, 0xec88d0d8
or eax, 0x33cae444
add esp, 0x10
cmp eax, 0x220cfcd4
jl 0x41eb2b
add dword [0x43f7c8], 0x2d7e3604
lea ecx, [ebp - 0x258]
push ecx
lea edx, [ebp - 0x118]
push edx
call dword [0x446b44]
add dword [0x43ab0c], ebx
mov esi, eax
mov eax, dword [0x43ab0c]
add eax, 0x6ddce3aa
xor dword [0x437d90], eax
cmp esi, ebx
je 0x41ec4c
add dword [0x43c850], ebx
mov ecx, dword [0x43c850]
mov eax, 0x6b3b2cf
sub eax, ecx
or eax, 0x880d14d0
add dword [0x43cd74], eax
mov ebx, 0xe8a5e345
add dword [0x437364], 0x450ae220
mov byte [edi], 0
inc dword [0x4395d8]
mov eax, dword [0x43c7e0]
mov ecx, dword [0x4395d8]
not eax
and ecx, eax
xor dword [0x43e378], ecx
lea edx, [ebp - 0x22c]
push edx
lea eax, [ebp - 0x118]
push eax
call fcn.00401990
add dword [0x43cf68], ebx
add esp, 8
lea ecx, [ebp - 0x118]
push ecx
call dword [0x4470c0]
mov dx, word [0x442910]
movsx eax, dx
sar eax, 2
and eax, 0xa6fbe3dc
add dword [0x43e1c8], eax
lea eax, [ebp - 0x258]
push eax
push esi
call dword [0x4414b8]
test eax, eax
jne 0x41eb82
mov cx, word [0x4432d0]
mov edx, dword [0x43e084]
movsx eax, cx
imul eax, eax, 0x79429872
not edx
add eax, edx
xor dword [0x43d3ac], eax
push esi
call dword [0x446bf0]
mov ax, word [0x445868]
inc word [0x445868]
movsx ecx, ax
add ecx, 0x14f6a716
cmp ecx, 0xc3ebf671
jne 0x41ec4c
or dword [0x439fd4], 0xb1061526
mov dx, word [0x444b22]
movsx eax, dx
not eax
sub eax, 0x260d93d6
or eax, 0xa8df217a
add dword [0x43d468], eax
push 0x118
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.0040b950
mov ecx, dword [0x43b338]
add esp, 0xc
imul ecx, ecx, 0x3b7db0b
pop edi
mov dword [0x43b338], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret