Function at 0x41fca7
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov eax, dword [0x44e91c]
mov ecx, dword [0x454810]
lea edx, [ecx - 1]
mov dword [0x454810], edx
add ecx, 0xb9ef427
and ecx, eax
cmp ecx, 0x480102
jl 0x41fceb
imul eax, dword [0x45425c], 0xeebfebee
mov dword [0x45425c], eax
jmp 0x41fcfa
imul eax, dword [0x45555c], 0x63c6964c
mov dword [0x45555c], eax
mov eax, dword [esp + 0x20]
imul ecx, dword [0x453a30], 0x4b3cc2b
mov dword [0x453a30], ecx
imul ecx, dword [0x4509c0], 0x6a98e634
mov dword [0x4509c0], ecx
cmp esi, edi
je 0x41fd4a
imul cx, word [0x44659e], 0xad89
mov word [0x44659e], cx
cmp eax, esi
je 0x41fdb3
push eax
push esi
call fcn.0040a8e2
add esp, 8
test eax, eax
jne 0x42007f
jmp 0x41fdb3
movzx ecx, word [0x4403ee]
dec ecx
mov word [0x4403ee], cx
movsx ecx, cx
add dword [0x4524d0], ecx
movsx ecx, word [0x443408]
and ecx, dword [0x451694]
and ecx, 0xd0f2b9bc
mov dword [0x451694], ecx
mov ecx, dword [0x451da8]
imul ecx, ecx, 0xa9735aef
movzx edx, word [0x440a28]
and edx, ecx
mov word [0x440a28], dx
and dword [0x44d848], 0xa6512f82
imul cx, word [0x44659e], 0xad89
mov word [0x44659e], cx
mov edi, eax
mov edx, esi
or dword [0x452a40], 0xb8f0ade0
mov eax, dword [edi + 4]
mov esi, eax
test esi, esi
jle 0x41fdd5
lea eax, [esi - 1]
mov ecx, dword [edi + 8]
cmp dword [ecx + esi*4 - 4], 0
je 0x41fdc2
add dword [0x452320], 0xb1b1d4f
push esi
push edx
call fcn.00416a9a
add esp, 8
test eax, eax
jne 0x42007f
mov eax, dword [0x448094]
lea ecx, [eax - 1]
mov dword [0x448094], ecx
mov ecx, dword [0x44e644]
sar ecx, 4
lea eax, [ecx + eax - 1]
cmp eax, 0xaf9025f0
jne 0x41fe26
movzx eax, word [0x444ddc]
and eax, 0x210
sub word [0x44272c], ax
mov ecx, dword [edi + 8]
mov eax, dword [0x44d6e8]
movzx edx, word [0x442452]
or edx, eax
mov word [0x442452], dx
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 8]
and dword [0x452e54], 0xa7c082bb
mov edx, 0x28ef72a4
xor edx, dword [0x44ba90]
mov edi, 0xcfd17d34
or edi, dword [0x44975c]
cmp edx, edi
jle 0x41fe73
or dword [0x4521f0], 0xebe9b4b0
test esi, esi
jle 0x420063
dec esi
xor edi, edi
mov eax, 0xffffffff
xor ebp, ebp
mov dword [esp], ebx
mov ebx, ecx
mov dword [esp + 4], eax
mov edx, dword [0x44a31c]
or edx, 0x1e9a
movzx ecx, word [0x442196]
xor ecx, edx
mov word [0x442196], cx
mov eax, dword [esp]
add dword [eax + edi], ebp
imul cx, word [0x44092a], 0x7bb7
mov word [0x44092a], cx
mov ecx, dword [eax + edi]
imul dx, word [0x441f7c], 0x4cd4
mov word [0x441f7c], dx
mov edx, dword [ebx + edi]
add dword [eax + edi], edx
imul edx, dword [0x454454], 0xb3a7c149
mov dword [0x454454], edx
mov edx, dword [eax + edi]
mov eax, dword [esp + 4]
cmp edx, dword [ebx + edi]
sbb edx, edx
and edx, 1
cmp ecx, ebp
mov ebp, edx
adc ebp, 0
mov ecx, dword [0x44ce34]
mov edx, 0x8c2d2f4d
xor ecx, edx
imul ecx, dword [0x4481d0]
mov dword [0x4481d0], ecx
add edi, 4
inc eax
cmp eax, esi
jl 0x41fe8a
test ebp, ebp
mov ebx, eax
mov eax, dword [esp]
je 0x420063
add eax, edi
inc ebx
imul ecx, dword [0x4471e4], 0x7fe177bb
mov dword [0x4471e4], ecx
mov esi, dword [esp + 0x1c]
cmp ebx, dword [esi + 4]
jl 0x41ffd5
inc dword [0x44ce3c]
mov eax, dword [0x44de44]
or dword [0x448c50], 0x275b9e05
lea eax, [ebx + 1]
push eax
push esi
call fcn.00416a9a
add esp, 8
test eax, eax
jne 0x42007f
or dword [0x45009c], 0x16040e94
mov eax, dword [esi + 8]
add eax, edi
mov ecx, dword [0x44f440]
mov edx, 0x39c1e703
xor ecx, edx
cmp ecx, 0x25c6ed18
jl 0x41ffcb
mov ecx, dword [0x450514]
movsx edx, word [0x4408ec]
sub ecx, edx
cmp ecx, 0x77f86658
jne 0x41ffd5
inc dword [0x454ad4]
mov ecx, dword [0x4496c4]
mov ecx, dword [0x454fb4]
jmp 0x41ffd5
and dword [0x4497fc], 0xaff6724e
mov ecx, dword [0x452c4c]
movsx edx, word [0x440eba]
lea esi, [edx + 1]
mov word [0x440eba], si
add ecx, edx
movsx edx, word [0x445d6a]
or edx, ecx
cmp edx, 0x39130a69
jg 0x420009
xor dword [0x4494c8], 0xb170241
add dword [eax], ebp
movzx ecx, word [0x441fe2]
inc ecx
mov word [0x441fe2], cx
movsx ecx, cx
add ecx, 0x3088ac79
and dword [0x4553ac], ecx
mov ecx, dword [eax]
cmp ecx, ebp
sbb edx, edx
and edx, 1
mov esi, dword [0x4477ac]
dec esi
mov dword [0x4477ac], esi
imul esi, dword [0x44afb4]
mov dword [0x44afb4], esi
inc ebx
and word [0x43f506], 0x9521
add edi, 4
cmp ecx, ebp
mov ebp, edx
jb 0x41ff35
mov eax, dword [0x44f68c]
mov ecx, 0x99dfd5b9
sub ecx, dword [0x448370]
xor ecx, eax
not ecx
and dword [0x44e350], ecx
xor eax, eax
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret