Function at 0x406d20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [0x44abb0]
add eax, dword [0x439ba0]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
mov dword [0x44abb0], eax
mov dword [0x439f18], 0xf9ebe093
mov dword [0x437618], 0x6088
cmp ebx, esi
jne 0x406dfe
imul eax, dword [0x43f5c4], 0x23fa7108
mov edx, ebx
mov esi, dword [ebp + 0xc]
mov dword [0x43f5c4], eax
inc dword [0x44c220]
mov eax, dword [0x44c220]
movsx ecx, word [0x450bbc]
shl ecx, 5
imul ecx, eax
movzx eax, word [0x44fd92]
xor ecx, 0x7bab2ada
and eax, ecx
mov word [0x44fd92], ax
movsx eax, word [0x455dfc]
movsx ecx, word [0x454c6c]
sar eax, 4
sub ecx, eax
mov eax, dword [0x43f854]
inc dword [0x43f854]
add eax, ecx
cmp eax, 0xaf95f18b
jg 0x406dd9
mov eax, dword [0x4499e8]
not eax
and dword [0x43f57c], eax
or dword [0x436114], 0xdf84081e
jmp 0x406e01
mov eax, dword [0x449b60]
mov ecx, 0xbe6ae3a6
sub ecx, eax
mov eax, dword [0x44a14c]
imul eax, ecx
mov dword [0x44a14c], eax
or dword [0x436114], 0xdf84081e
jmp 0x406e01
mov edx, dword [ebp + 0xc]
mov dword [0x443a60], 0xaa7d1898
cmp ebx, edx
je 0x406e21
push edx
push ebx
call fcn.00412580
add esp, 8
test eax, eax
jne 0x407055
add dword [0x43de9c], 0x8b960c2a
push edi
mov edi, dword [esi + 4]
dec edi
js 0x406e43
mov eax, dword [esi + 8]
lea eax, [eax + edi*4]
cmp dword [eax], 0
jne 0x406e43
sub eax, 4
dec edi
jns 0x406e38
add dword [0x44d2dc], 0x46056181
lea eax, [edi + 1]
push eax
push ebx
call fcn.0042e250
add esp, 8
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x407054
and dword [0x44ad74], 0xc79c3f70
imul ecx, dword [0x43e718], 0x20ac3d20
mov eax, dword [esi + 8]
xor esi, esi
mov dword [ebp + 0xc], eax
mov dword [0x43e718], ecx
mov edx, dword [ebx + 8]
mov dword [0x447328], 0xdc49bd12
movsx eax, word [0x44ff78]
imul eax, eax, 0x413f76b3
add eax, 0x28824910
cmp eax, 0xf45a38fc
jle 0x406eb7
or dword [0x436094], 0x171aba78
test edi, edi
js 0x407041
sub dword [ebp + 0xc], edx
lea ebx, [edi + 1]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
jmp 0x406ed0
mov eax, dword [0x43c094]
xor eax, 0x28d67d27
sub dword [0x438b20], eax
add dword [edx], esi
movzx eax, word [0x45758c]
xor eax, 0x282c00c7
mov word [0x45758c], ax
cmp dword [edx], esi
sbb esi, esi
xor dword [0x446348], 0xf6bb97ab
mov eax, dword [edi + edx]
neg esi
add dword [edx], eax
mov eax, dword [0x43f244]
mov ecx, dword [0x43c2dc]
add eax, 0x3d119b4e
xor ecx, eax
mov dword [0x446500], ecx
mov eax, dword [edx]
cmp eax, dword [edi + edx]
sbb eax, eax
add edx, 4
neg eax
add esi, eax
movzx eax, word [0x44fafa]
imul eax, eax, 0xad7af638
mov word [0x44fafa], ax
dec ebx
jne 0x406ed0
mov edi, dword [ebp - 4]
mov ebx, dword [ebp + 8]
test esi, esi
je 0x407041
movzx eax, word [0x4569e8]
and eax, 0x765aef53
mov word [0x4569e8], ax
cmp edi, dword [ebx + 4]
jl 0x406fdb
movzx eax, word [0x44efe2]
or eax, 0x4384d7bc
mov word [0x44efe2], ax
lea eax, [edi + 1]
push eax
push ebx
call fcn.0042e250
add esp, 8
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x407054
inc dword [0x446a9c]
mov eax, dword [0x446a9c]
movsx ecx, word [0x44dbe8]
dec word [0x44dbe8]
xor ecx, eax
cmp ecx, 0x4ee7e364
jge 0x406fc1
and dword [0x4415ac], 0x92a155c7
mov eax, dword [ebx + 8]
lea edx, [eax + edi*4]
imul eax, dword [0x442ac0], 0x3260172c
add eax, 0x6fff376b
mov dword [0x446144], eax
movsx eax, word [0x45909a]
cmp eax, 0x38b45800
jne 0x406ffb
movzx eax, word [0x44e3c6]
sub eax, 0x277e3070
mov word [0x44e3c6], ax
add dword [edx], esi
mov ecx, 0x544f7cc1
imul eax, dword [0x442810], 0xb6af6e73
mov dword [0x442810], eax
cmp dword [edx], esi
sbb esi, esi
add dword [0x445434], 0x971af7c6
dec dword [0x439918]
inc edi
mov eax, dword [0x439918]
sub ecx, eax
add ecx, dword [0x44053c]
neg esi
mov dword [0x44053c], ecx
jne 0x406f53
movsx eax, word [0x4535b4]
shl eax, 5
mov word [0x458cc0], ax
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret