Function at 0x40dcb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
movzx eax, word [0x435cac]
sub eax, 0x4527cdba
mov word [0x435cac], ax
or dword [0x44fcd8], 0xd7cd37d3
movsx eax, word [0x4393ce]
not eax
cmp eax, 0xa5e45e82
jg 0x40dd08
mov eax, dword [0x4432a8]
mov ecx, dword [0x441754]
imul eax, eax, 0x1494dbf3
xor ecx, eax
mov eax, dword [0x44a160]
xor eax, ecx
mov dword [0x441754], eax
dec dword [0x4432a8]
jmp 0x40dd22
movsx ecx, word [0x434b86]
mov eax, dword [0x43f2a4]
not ecx
and eax, ecx
and eax, 0x4780d10
mov dword [0x43f2a4], eax
push esi
mov esi, dword [ebp + 0x10]
test esi, esi
jle 0x40df4f
mov dword [0x44dcdc], 0x4c7a3eb9
mov ecx, dword [0x43d8dc]
movzx eax, word [0x4340a8]
xor ecx, 0xa1622400
push ebx
push edi
mov edi, dword [ebp + 8]
and eax, ecx
push 0x40
pop ecx
mov edx, dword [edi]
mov word [0x4340a8], ax
and edx, 0x3f
dec dword [0x43d8dc]
sub ecx, edx
or dword [0x44e050], 0x87e677ee
add dword [edi], esi
or dword [0x43ef98], 0xae31aa00
xor dword [0x44e6c8], 0xfa67df57
mov dword [ebp - 4], edx
mov dword [ebp + 0x10], ecx
cmp dword [edi], esi
jae 0x40dd95
inc dword [edi + 4]
movzx eax, word [0x434746]
or eax, 0xa4818586
mov word [0x434746], ax
test edx, edx
je 0x40de98
cmp esi, ecx
jl 0x40de98
imul eax, dword [0x449f2c], 0x21e9964b
mov ebx, dword [ebp + 0xc]
push ecx
push ebx
add eax, 0xf20dff5a
and dword [0x445240], eax
lea eax, [edi + 0x28]
add eax, edx
push eax
call fcn.00408825
mov eax, dword [0x446158]
add eax, 0xd7a668ba
or dword [0x447cf8], eax
lea eax, [edi + 0x28]
push eax
push edi
call fcn.0040d609
add esp, 0x14
cmp dword [0x449ce4], 0x316463fe
jne 0x40de16
imul eax, dword [0x447fc4], 0x49c179a0
mov dword [0x447fc4], eax
jmp 0x40de27
dec dword [0x44dbb0]
mov eax, dword [0x44dbb0]
and dword [0x44fff4], eax
and dword [0x4488a4], 0xb39c36ca
mov eax, dword [0x451138]
movsx ecx, word [0x43839e]
add eax, 0xa6c5ca03
add ebx, dword [ebp + 0x10]
and ecx, eax
movzx eax, word [0x439c22]
sub esi, dword [ebp + 0x10]
or eax, ecx
and dword [ebp - 4], 0
mov word [0x439c22], ax
dec dword [0x44d880]
mov eax, dword [0x44d880]
add eax, 0x85b17ac2
cmp eax, 0x8f4b2ac6
jge 0x40de9b
inc dword [0x442df8]
mov ecx, dword [0x442df8]
movzx eax, word [0x436116]
add ecx, 0x20d6a020
and ecx, eax
mov word [0x436116], cx
jmp 0x40de9b
mov ebx, dword [ebp + 0xc]
cmp esi, 0x40
jl 0x40df09
mov eax, esi
shr eax, 6
mov dword [ebp - 8], eax
imul eax, eax, 0xffffffc0
add esi, eax
mov dword [ebp + 0x10], esi
mov esi, dword [ebp - 8]
movsx eax, word [0x43792e]
and eax, 0x1bf3ac
shl eax, 9
xor dword [0x443b10], eax
push ebx
push edi
call fcn.0040d609
mov ax, word [0x433330]
add ebx, 0x40
pop ecx
pop ecx
mov ecx, dword [0x43df34]
cwde
xor ecx, eax
xor ecx, 0x35d0b032
mov dword [0x43df34], ecx
or dword [0x44cbd4], 0x4c47da67
mov dword [0x4406f4], 0x517adb6f
dec esi
jne 0x40deb3
mov esi, dword [ebp + 0x10]
imul eax, dword [0x43fe38], 0x6fabd140
mov dword [0x43fe38], eax
test esi, esi
jle 0x40df43
mov eax, dword [ebp - 4]
or dword [0x44072c], 0x80461b1b
add eax, 0x28
push esi
add eax, edi
push ebx
push eax
call fcn.00408825
add esp, 0xc
add dword [0x44e21c], 0xab77bce6
or dword [0x44470c], 0x2cc4c78a
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret