Function at 0x411510
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
inc dword [0x43e9b4]
mov ecx, dword [0x43e9b4]
movzx eax, word [0x43a3d4]
add ecx, 0x187bb97
or ecx, eax
mov word [0x43a3d4], cx
mov eax, dword [0x44efe4]
add eax, 0xf0db6da
and eax, 0x37ab73af
sub dword [0x441834], eax
dec dword [0x44efe4]
inc dword [0x444e0c]
mov ecx, dword [0x444e0c]
mov eax, dword [0x43ffc8]
add eax, 0x774f327e
add eax, ecx
mov dword [0x43ffc8], eax
mov eax, dword [0x441880]
push ebx
mov ebx, dword [ebp + 0xc]
or eax, 0x74109ceb
add dword [0x443560], eax
push esi
push edi
lea eax, [ebx + 4]
push eax
call fcn.00405d00
and dword [0x44c828], 0x41234016
mov esi, eax
inc dword [0x43e850]
add esp, 4
mov eax, dword [0x43e850]
and eax, 0x43fb77bc
mov dword [ebp - 4], esi
cmp eax, 0xd7737f93
jge 0x4115c0
xor dword [0x4460d4], 0x17d2c8b4
mov edi, dword [ebp + 8]
jmp 0x4115d0
mov eax, dword [0x44ee34]
or eax, 0xa0a12404
sub dword [0x444358], eax
dec dword [0x44ee34]
movzx eax, byte [edi + 0x430198]
mov byte [esi], al
mov ax, word [0x43e6fc]
movsx ecx, ax
mov eax, dword [0x440b18]
add eax, 0x27840100
add eax, ecx
mov word [0x43e6fc], ax
inc dword [0x440b18]
mov eax, dword [0x4517f4]
movzx eax, byte [eax + edi]
xor byte [esi], al
add dword [0x43f46c], 0xdd3fae81
mov eax, dword [0x4507dc]
dec dword [0x4507dc]
cmp eax, 0xd410580
je 0x411641
xor dword [0x444b60], 0x253f5335
add dword [0x43f0b4], 0x7bf7befc
mov al, byte [edi + 0x430199]
mov byte [esi + 1], al
movsx eax, word [0x43ad30]
inc word [0x43ad30]
cmp eax, 0xe7ff53ff
jg 0x411684
inc dword [0x4452e0]
mov eax, dword [0x4452e0]
or eax, 0x8000d319
and eax, dword [0x448bd8]
mov dword [0x448bd8], eax
mov eax, dword [0x4517f4]
mov al, byte [eax + edi + 1]
add edi, 2
xor byte [esi + 1], al
mov ax, word [0x436f7a]
movsx ecx, word [0x43db18]
cwde
imul ecx, eax
xor dword [0x440c84], ecx
dec word [0x436f7a]
mov eax, dword [0x4414a0]
add eax, 0x11f08026
mov dword [0x441be4], eax
or dword [0x44cfe8], 0xf797c8f7
mov eax, dword [0x445028]
imul eax, dword [0x43f7e8]
movzx ecx, word [esi]
mov dword [0x43f7e8], eax
mov eax, ecx
mov dword [ebp + 0xc], eax
add eax, 3
push eax
lea eax, [edi + 0x430198]
push eax
push esi
call fcn.004114b0
mov edx, dword [ebp + 0xc]
mov eax, 0xffffde9c
mov word [0x43509a], ax
add edx, 3
or dword [0x44fdf0], 0xc090a9a7
add esp, 0xc
dec dword [0x4455ec]
add edx, esi
mov eax, dword [0x4455ec]
add eax, 0xec898463
cmp eax, 0x1e3b23a9
jg 0x41173a
imul eax, dword [0x450024], 0xca58d97f
mov dword [0x450024], eax
mov ax, word [0x43dcb6]
add edi, dword [0x4517f4]
cwde
xor dword [0x450ff8], eax
cmp esi, edx
je 0x4117a7
sub edi, esi
jmp 0x411760
mov eax, dword [0x445de4]
mov ecx, dword [0x44b260]
add eax, 0xcca584b1
xor ecx, eax
mov eax, dword [0x4410e8]
imul eax, ecx
mov dword [0x4410e8], eax
inc dword [0x445de4]
dec dword [0x44b260]
mov al, byte [edi + esi]
xor byte [esi], al
inc esi
movzx eax, word [0x43711c]
sub eax, 0x57d15f6d
mov word [0x43711c], ax
cmp esi, edx
jne 0x411760
movzx eax, word [0x4367fa]
or eax, 0x94c3b105
mov word [0x4367fa], ax
cmp ebx, dword [ebp + 0xc]
je 0x41187b
mov eax, dword [0x448a88]
lea esi, [edx - 3]
sub eax, 0x67790909
or eax, 0x70a90947
add dword [0x44d3c0], eax
dec dword [0x448a88]
mov byte [edx], 0
mov eax, dword [0x44ec20]
sar eax, 1
add dword [0x44b9ec], eax
inc word [0x43c582]
mov ax, word [0x43c582]
cwde
mov dword [0x446964], eax
mov edi, dword [edx - 3]
xor dword [0x449d90], 0xf7fffff7
cmp dword [0x43fc8c], 0x57f0a43a
jne 0x411869
inc dword [0x44f2c0]
mov eax, dword [0x44f2c0]
mov ecx, dword [0x44b4ec]
dec dword [0x44b4ec]
and ecx, eax
and ecx, 0x5e14e8ad
cmp ecx, 0x41822220
jl 0x41185f
add dword [0x449c7c], 0x424620ce
sub ebx, dword [ebp + 0xc]
mov dword [0x43eca8], 0xe6d242db
jmp 0x4115d0
add dword [0x441fac], 0xff7dfff7
sub ebx, dword [ebp + 0xc]
mov dword [0x43eca8], 0xe6d242db
jmp 0x4115d0
movzx ecx, word [0x43d522]
mov eax, dword [ebp - 4]
or ecx, 0xd1b38cd0
pop edi
pop esi
mov word [0x43d522], cx
pop ebx
mov esp, ebp
pop ebp
ret