Function at 0x41c640
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
or edx, 0xffffffff
add word [0x44897e], dx
mov ecx, dword [0x43aae4]
mov ax, word [0x44897e]
sar ecx, 4
cwde
imul eax, ecx
or dword [0x44369c], eax
or dword [0x4462b0], 0xe169e54b
mov eax, dword [0x441e54]
mov ecx, dword [0x443048]
and eax, 0x750e177e
xor ecx, eax
push ebx
mov ebx, dword [ebp + 0x10]
xor ecx, 0x3f3c63f0
push esi
mov esi, dword [ebp + 8]
mov dword [0x443048], ecx
add dword [0x441e54], edx
cmp esi, ebx
jne 0x41c708
movzx edx, word [0x44dede]
mov ebx, dword [ebp + 0xc]
or edx, 0xc8d8bba0
mov word [0x44dede], dx
inc dword [0x43a264]
mov eax, dword [0x43a264]
xor eax, 0xfd2b274c
cmp eax, 0x9eef4118
jg 0x41c6d8
or dword [0x43ca60], 0xc50f8b02
mov cx, word [0x447676]
movsx edx, cx
sub edx, 0x320ca5e3
cmp edx, 0x9ab9b58a
mov eax, esi
jg 0x41c6fc
add dword [0x43dab0], 0x27ae4ccf
and dword [0x43d57c], 0xbb458ad9
jmp 0x41c70b
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x43a32c]
mov edx, dword [0x43e6a4]
and ecx, 0xc0680dde
xor edx, 0x5ca3709e
cmp ecx, edx
jle 0x41c74b
mov ecx, dword [0x43def0]
imul ecx, ecx, 0x87958580
or ecx, 0x458b97ad
cmp ecx, 0xd9b67ffd
jge 0x41c74b
add dword [0x43f018], 0x54a4926a
cmp esi, eax
je 0x41c761
push eax
push esi
call fcn.00416dc0
add esp, 8
test eax, eax
jne 0x41ca26
xor dword [0x43b240], 0x37e5c064
push edi
mov edi, dword [ebx + 4]
sub edi, 1
js 0x41c78d
mov edx, dword [ebx + 8]
lea eax, [edx + edi*4]
lea ebx, [ebx]
cmp dword [eax], 0
jne 0x41c78d
dec edi
sub eax, 4
test edi, edi
jge 0x41c780
mov eax, dword [0x43fc1c]
add eax, dword [0x43f6c4]
movzx ecx, word [0x44c320]
or eax, 0x3c201fd6
xor ecx, eax
lea eax, [edi + 1]
push eax
push esi
mov word [0x44c320], cx
mov dword [ebp + 0xc], eax
call fcn.004070e0
add esp, 8
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x41ca25
xor dword [0x440d10], 0x9403092f
mov edx, dword [0x43a8b0]
mov eax, dword [ebx + 8]
sub edx, 0x754ee15
cmp edx, 0x2a1039c1
jl 0x41c7fd
movzx ecx, word [0x449020]
sub ecx, 0x5eb3be12
mov word [0x449020], cx
mov edx, dword [0x43e738]
mov ecx, dword [esi + 8]
movzx esi, word [0x44c1a8]
xor edx, 0x4cda07f0
add esi, edx
mov word [0x44c1a8], si
inc dword [0x43e738]
mov edx, dword [0x438324]
mov ebx, 0x28313f80
sub ebx, edx
mov edx, dword [0x437b88]
sar edx, 7
xor edx, ebx
xor dword [0x43fe8c], edx
xor esi, esi
test edi, edi
jl 0x41ca18
mov ebx, dword [ebp + 0xc]
mov dword [ebp + 0xc], ebx
movzx edx, word [0x44d298]
add edx, 0x550da3bf
mov word [0x44d298], dx
add dword [ecx], esi
or dword [0x437224], 0x738f034a
cmp dword [ecx], esi
movzx edx, word [0x448f4e]
sbb esi, esi
or edx, 0x30060265
mov word [0x448f4e], dx
mov edx, dword [eax]
add dword [ecx], edx
xor dword [0x445094], 0x18061571
mov edx, dword [ecx]
neg esi
cmp edx, dword [eax]
sbb edx, edx
dec dword [0x4424a4]
neg edx
add esi, edx
movzx edx, word [0x44d3fa]
mov edi, dword [0x4424a4]
movsx edx, dx
sar edx, 2
and edx, 0xb79312aa
or edi, edx
xor dword [0x43c2d0], edi
add eax, 4
add ecx, 4
sub ebx, 1
jne 0x41c850
test esi, esi
je 0x41ca18
mov ebx, dword [ebp + 8]
jmp 0x41c8f0
mov edi, dword [ebp + 0xc]
and dword [0x4417d0], 0x7e5d57d7
cmp edi, dword [ebx + 4]
jl 0x41c97d
mov ax, word [0x44ce7a]
mov ecx, dword [0x446280]
inc dword [0x446280]
cwde
not eax
sub eax, ecx
cmp eax, 0x220803
jne 0x41c930
mov eax, dword [0x444660]
add eax, 0x6397bc78
and dword [0x43c0fc], eax
lea edx, [edi + 1]
push edx
push ebx
call fcn.004070e0
add esp, 8
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x41ca25
mov ecx, dword [0x4440a8]
mov eax, dword [0x438c1c]
imul ecx, ecx, 0x1ac4d192
not eax
sub eax, ecx
and dword [0x43dec0], eax
mov edx, dword [0x43ae9c]
mov eax, dword [ebx + 8]
not edx
sub edx, 0x1fdee5ef
lea ecx, [eax + edi*4]
mov dword [0x4380cc], edx
movzx eax, word [0x449df6]
movzx edx, word [0x446f40]
cwde
and eax, 0xff6a2d61
add eax, eax
movsx edx, dx
or edx, eax
movzx eax, word [0x446fba]
shl edx, 6
and eax, edx
mov word [0x446fba], ax
add dword [ecx], esi
inc word [0x449caa]
movzx edx, word [0x449caa]
movsx eax, dx
mov edx, dword [0x444ef0]
sub eax, edx
cmp eax, 0x612d71d9
jge 0x41c9f2
mov eax, dword [0x439ac0]
mov edx, dword [0x43a334]
or eax, edx
cmp eax, 0xffe9a0c9
jge 0x41c9f2
movzx eax, word [0x44712a]
xor eax, 0xf29fed03
mov word [0x44712a], ax
cmp dword [ecx], esi
sbb esi, esi
add dword [0x44511c], 0x525f9576
xor dword [0x43df90], 0x109c6594
neg esi
inc edi
mov dword [ebp + 0xc], edi
test esi, esi
jne 0x41c8f0
and dword [0x43f6e8], 0x2ce844ab
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
pop ebp
ret