Function at 0x40d680
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [0x438d70]
dec dword [0x438d70]
or eax, 0xea9970c0
cmp eax, 0x6f0cab6f
je 0x40d6a5
mov dword [0x436fd4], 0x7fff76db
movzx ecx, word [0x446186]
and ecx, 0x81b1818a
mov word [0x446186], cx
push ebx
mov ebx, 1
add word [0x441eda], bx
mov dx, word [0x441eda]
mov ax, word [0x443a74]
movsx ecx, dx
mov edx, dword [ebp + 0xc]
imul ecx, ecx, 0x80f9d3ac
cwde
sar eax, 0xa
and eax, ecx
sub dword [0x43c1b8], eax
movzx ecx, word [0x443c12]
push esi
add edx, 4
push edi
add ecx, 0x4090a44
mov word [0x443c12], cx
push edx
call fcn.00431200
mov edi, dword [ebp + 8]
mov esi, eax
mov eax, dword [0x4395a0]
shl eax, 9
add esp, 4
xor eax, 0x456a893e
mov dword [0x43f158], eax
mov dword [ebp - 4], esi
mov dword [0x43c3e8], 0xaa4b3dc2
movzx ecx, word [0x442f24]
mov dl, byte [edi + section..data]
xor ecx, 0xacd95a22
mov word [0x442f24], cx
mov byte [esi], dl
mov eax, dword [0x4408b0]
lea ecx, [eax + 0x68bc87da]
mov eax, dword [0x43a8ac]
sar eax, 5
or eax, ecx
xor dword [0x439214], eax
mov eax, dword [0x446bc8]
mov cl, byte [eax + edi]
xor byte [esi], cl
and dword [0x43dcac], 0x3475c26f
mov dx, word [0x4426ce]
mov ecx, dword [0x43be44]
movsx eax, dx
add eax, 0xeeff4d0c
sar ecx, 9
and ecx, eax
add esi, ebx
cmp ecx, 0x11310e0b
jle 0x40d7ac
mov edx, 0xffff9dac
mov word [0x443ae4], dx
movzx eax, word [0x444412]
mov cl, byte [edi + ebx + section..data]
or eax, 0xa6886cd8
mov word [0x444412], ax
add edi, ebx
mov byte [esi], cl
mov edx, dword [0x43c5d4]
mov ecx, dword [0x439e20]
not edx
imul edx, edx, 0x65ba63f4
mov eax, 0xb0f41883
sub eax, edx
mov edx, 0x1688b7ff
sub edx, ecx
or ecx, 0xffffffff
add dword [0x439e20], ecx
cmp edx, eax
jle 0x40d81c
mov eax, dword [0x43d06c]
mov edx, dword [0x441008]
and eax, 0xf66feeef
xor edx, eax
xor edx, 0xbeed7399
mov dword [0x441008], edx
add dword [0x43d06c], ebx
mov eax, dword [0x446bc8]
mov dl, byte [eax + edi]
xor byte [esi], dl
mov eax, dword [0x4381d8]
add dword [0x4381d8], ebx
cmp eax, 0x4d7c114c
jl 0x40d84c
mov ecx, dword [0x4391a8]
add ecx, dword [0x43fd10]
mov dword [0x4391a8], ecx
jmp 0x40d895
mov edx, dword [0x439188]
shl edx, 9
mov eax, 0x6a041fe1
sub eax, edx
mov dx, word [0x4439b0]
movsx edx, dx
cmp eax, edx
jne 0x40d895
add dword [0x43fdd8], ecx
mov eax, dword [0x43af38]
mov ecx, dword [0x43fdd8]
add ecx, eax
mov eax, dword [0x437f58]
movzx edx, word [0x444a60]
and eax, ecx
imul edx, eax
mov word [0x444a60], dx
movzx eax, word [0x442b96]
xor eax, 0x34c0890
mov word [0x442b96], ax
add dword [0x43ea78], 0xcf5693cb
sub esi, ebx
movzx eax, word [esi]
add dword [0x441098], 0x5dc12c66
add edi, ebx
movzx ebx, ax
lea ecx, [ebx + 3]
push ecx
lea edx, [edi + section..data]
push edx
push esi
mov dword [ebp + 8], ebx
call fcn.00429980
add dword [0x43f0b8], 0x99511247
mov eax, dword [0x4396ec]
imul eax, eax, 0xfe11251e
add esp, 0xc
mov ecx, esi
cmp eax, 0x21cba5e7
jne 0x40d937
mov eax, dword [0x43a7c4]
lea edx, [eax*8]
mov eax, dword [0x43de24]
not eax
xor eax, edx
mov edx, dword [0x43f0d8]
dec dword [0x43f0d8]
imul edx, edx, 0x7390d095
cmp edx, eax
jge 0x40d96d
mov eax, dword [0x43f6f0]
imul eax, eax, 0xda9e56ae
mov dword [0x43f6f0], eax
jmp 0x40d96d
mov edx, dword [0x43b638]
cmp edx, 0x9461caa5
je 0x40d962
mov ax, word [0x444c5e]
mov edx, dword [0x43e960]
cwde
or edx, eax
or edx, 0x389a835c
mov dword [0x43e960], edx
jmp 0x40d96d
inc dword [0x4371b8]
mov eax, dword [0x4371b8]
mov edx, dword [0x439084]
and edx, 0xf60eeae7
add edx, edx
add edx, edx
lea eax, [ebx + esi + 3]
mov ebx, dword [0x43e3ec]
add edx, edx
xor ebx, edx
mov edx, dword [0x446bc8]
xor ebx, 0xea499f45
add edi, edx
mov dword [0x43e3ec], ebx
movzx edx, word [0x444770]
sub edx, 0x18d12feb
mov word [0x444770], dx
cmp esi, eax
je 0x40d9fb
jmp 0x40d9c0
movzx edx, word [0x444226]
movsx edx, dx
add edx, 0xec3f6a42
add dword [0x43d1f4], edx
inc word [0x444226]
mov dl, byte [edi]
xor byte [ecx], dl
movzx edx, word [0x444432]
xor edx, 0x66f3949
inc ecx
inc edi
mov word [0x444432], dx
cmp ecx, eax
jne 0x40d9c0
mov ecx, dword [ebp + 8]
add dword [0x43aa48], 0x994f89e6
cmp dword [ebp + 0xc], ecx
je 0x40da73
movzx edx, word [0x443c3a]
imul edx, edx, 0xa9e2128
sub dword [ebp + 0xc], ecx
mov word [0x443c3a], dx
mov byte [eax], 0
add dword [0x43b624], 0x8f3eee7c
mov edx, dword [0x43e0b4]
imul edx, edx, 0xb2f888b1
sub eax, 3
mov dword [0x43e0b4], edx
mov edi, dword [eax]
add dword [0x437ce0], 0x3e764181
mov esi, eax
mov eax, 0x3a4c
mov word [0x4448d8], ax
add dword [0x43b130], 0x30a2aa2
mov ebx, 1
jmp 0x40d731
and dword [0x43ce54], 0x820029b0
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret