Function at 0x41bc00
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x4dc
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov dword [esp + 0x20], 0x18101cf4
mov edi, ecx
mov byte [esp + 0x24], 0x1b
mov esi, edx
mov ecx, ebx
mov ebp, 0xff
movzx eax, byte [esp + ecx + 0x20]
add ax, 0x51
and ax, bp
mov word [esp + ecx*2 + 0x60], ax
inc ecx
cmp ecx, 5
jl 0x41bc24
xor eax, eax
mov edx, 0x21d4
mov word [esp + 0x6a], ax
mov al, byte [0x42ba6f]
movzx ecx, al
xor al, 0x24
mov byte [0x42ba79], al
add cx, dx
mov al, byte [0x42ba80]
lea edx, [esp + 0x60]
or al, 0x90
mov word [0x42ba70], cx
mov byte [0x42ba97], al
or cl, 0xbc
imul eax, dword [str.3Fu], 0x3528f188
push ebx
push ecx
mov byte [0x42ba6f], cl
mov ecx, edi
mov dword [str.3Fu], eax
lea eax, [esp + 0xf4]
push eax
call fcn.0041c33b
add esp, 0xc
test al, al
je 0x41c330
mov dword [esp + 0x20], 0xc6cec2ea
mov ecx, ebx
mov word [esp + 0x24], 0x95c3
mov byte [esp + 0x26], 0x8f
mov al, byte [esp + ecx + 0x20]
xor al, 0xaf
mov byte [esp + ecx + 0x58], al
inc ecx
cmp ecx, 7
jl 0x41bcba
mov byte [esp + 0x5f], bl
mov ecx, ebx
mov dword [esp + 0x10], 0x1e221b21
mov dword [esp + 0x14], 0x403321ee
mov word [esp + 0x18], 0x3344
mov byte [esp + 0x1a], 0x40
movzx eax, byte [esp + ecx + 0x10]
add ax, 0x32
and ax, bp
mov word [esp + ecx*2 + 0x80], ax
inc ecx
cmp ecx, 0xb
jl 0x41bcec
xor eax, eax
mov dword [esp + 0x10], 0x8ca9a8a9
push 0x79
mov word [esp + 0x9a], ax
mov ecx, ebx
pop eax
mov byte [esp + 0x14], al
mov dword [esp + 0x15], 0xccccbaa9
mov dword [esp + 0x19], 0xbdcbc8d0
movzx eax, byte [esp + ecx + 0x10]
sub ax, 0x59
and ax, bp
mov word [esp + ecx*2 + 0x98], ax
inc ecx
cmp ecx, 0xd
jl 0x41bd31
xor eax, eax
mov dword [esp + 0x30], 0x1313e0e3
mov word [esp + 0xb2], ax
mov ecx, ebx
mov dword [esp + 0x34], 0x13131313
mov dword [esp + 0x38], 0x13131313
mov dword [esp + 0x3c], 0x13131313
mov word [esp + 0x40], 0xe313
mov byte [esp + 0x42], 0xe0
mov al, byte [esp + ecx + 0x30]
add al, 0x2a
mov byte [esp + ecx + 0x6c], al
inc ecx
cmp ecx, 0x13
jl 0x41bd83
movzx ecx, byte [0x42ba97]
lea edx, [esp + 0x58]
mov al, byte [str.3Fu]
or ecx, 0xf39eb953
mov dword [0x42ba80], ecx
or al, 0xbb
or ecx, 0x1822
mov byte [0x42ba77], al
mov word [0x42ba70], cx
mov eax, 0x37a
movzx ecx, byte [0x42ba6f]
imul ecx, eax
push 0xffffffffffffffff
mov byte [esp + 0x83], bl
mov word [0x42ba74], cx
mov ecx, esi
call fcn.004236a5
mov al, byte [0x42ba77]
lea edx, [esp + 0xf0]
and byte [0x42ba97], 0xe4
xor al, 0xc7
pop ecx
mov ecx, esi
mov byte [0x42ba6f], al
call fcn.00422d16
movzx eax, byte [0x42ba97]
lea edx, [esp + 0x80]
imul eax, eax, 0x86
push ebx
push ecx
mov ecx, edi
mov byte [0x42ba77], al
lea eax, [esp + 0xf4]
push eax
call fcn.0041c33b
add esp, 0xc
test al, al
je 0x41beac
mov dword [esp + 0x20], 0x2b0c4e49
mov ecx, ebx
mov dword [esp + 0x24], 0x647e3037
mov al, byte [esp + ecx + 0x20]
xor al, 0x44
mov byte [esp + ecx + 0x4c], al
inc ecx
cmp ecx, 8
jl 0x41be4e
mov cx, word [0x42ba70]
lea edx, [esp + 0x4c]
movzx eax, cx
and cl, 0x88
xor eax, 0x4240364d
mov byte [0x42ba77], cl
push 0xffffffffffffffff
mov ecx, esi
mov byte [esp + 0x58], bl
mov dword [0x42ba80], eax
call fcn.004236a5
movzx eax, word [0x42ba74]
lea edx, [esp + 0xf0]
pop ecx
or eax, 0x71cf127d
mov ecx, esi
mov dword [0x42ba80], eax
call fcn.00422d16
mov dl, byte [0x42ba79]
mov bh, bl
imul ecx, dword [0x42ba80], 0x833e
movzx eax, dl
add dl, 0x1e
imul eax, eax, 0xe6
mov byte [0x42ba79], dl
lea edx, [esp + 0x98]
mov word [0x42ba74], cx
mov byte [0x42ba97], al
movzx eax, al
sub eax, 0x881fd0a
mov dword [0x42ba80], eax
lea eax, [ecx + 0x71b5]
mov word [0x42ba70], ax
mov al, byte [str.3Fu]
xor al, 0x9b
mov byte [0x42ba77], al
lea eax, [esp + 0x28]
push eax
push ecx
lea eax, [esp + 0xf4]
mov ecx, edi
push eax
call fcn.0041c33b
add esp, 0xc
test al, al
jne 0x41c16c
mov dword [esp + 0x10], 0xb6a7abaf
xor ecx, ecx
mov dword [esp + 0x14], 0x9587b6c6
mov dword [esp + 0x18], 0x94899195
mov byte [esp + 0x1c], 0x82
mov al, byte [esp + ecx + 0x10]
xor al, 0xe6
movzx eax, al
mov word [esp + ecx*2 + 0x30], ax
inc ecx
cmp ecx, 0xd
jl 0x41bf47
xor eax, eax
lea edx, [esp + 0x30]
mov word [esp + 0x4a], ax
movzx eax, byte [0x42ba80]
imul eax, eax, 0xb6
mov byte [0x42ba79], al
mov eax, 0xf0ab
xor ax, word [0x42ba74]
mov word [0x42ba70], ax
movzx eax, byte [0x42ba77]
imul eax, eax, 0xce
mov byte [0x42ba77], al
lea eax, [esp + 0x28]
push eax
push ecx
lea eax, [esp + 0xf4]
mov ecx, edi
push eax
call fcn.0041c33b
add esp, 0xc
test al, al
jne 0x41c13b
push 0x79
mov dword [esp + 0x14], 0xc9cdcdc1
xor ecx, ecx
mov dword [esp + 0x18], 0xecdac999
mov dword [esp + 0x1c], 0xebe8f0ec
mov byte [esp + 0x20], 0xdd
pop edx
movzx eax, byte [esp + ecx + 0x10]
sub ax, dx
and ax, bp
mov word [esp + ecx*2 + 0xb4], ax
inc ecx
cmp ecx, 0xd
jl 0x41bfde
xor eax, eax
lea edx, [esp + 0xb4]
mov word [esp + 0xce], ax
mov al, byte [0x42ba97]
xor al, 0x62
mov byte [0x42ba6f], al
mov al, byte [0x42ba74]
or al, 0xc9
mov byte [0x42ba79], al
mov eax, dword [0x42ba80]
add eax, 0xb4bd9452
mov dword [str.3Fu], eax
lea eax, [esp + 0x28]
push eax
push ecx
lea eax, [esp + 0xf4]
mov ecx, edi
push eax
call fcn.0041c33b
add esp, 0xc
test al, al
jne 0x41c113
mov dword [esp + 0x10], 0xc3c7dec0
xor ecx, ecx
mov dword [esp + 0x14], 0xe0f2c3b3
mov dword [esp + 0x18], 0xe1fce4e0
mov byte [esp + 0x1c], 0xf7
mov al, byte [esp + ecx + 0x10]
xor al, 0x93
movzx eax, al
mov word [esp + ecx*2 + 0xd0], ax
inc ecx
cmp ecx, 0xd
jl 0x41c06e
xor byte [0x42ba77], 0xef
lea edx, [esp + 0xd0]
xor eax, eax
mov word [esp + 0xea], ax
movzx eax, byte [0x42ba6f]
add eax, 0x763fa852
mov dword [0x42ba80], eax
lea eax, [esp + 0x28]
push eax
push ecx
lea eax, [esp + 0xf4]
mov ecx, edi
push eax
call fcn.0041c33b
mov bl, byte [0x42ba79]
add esp, 0xc
test al, al
jne 0x41c0db
mov cl, byte [0x42ba70]
or cl, 0x6f
jmp 0x41c108
mov cl, byte [0x42ba74]
mov edx, 0x116c
movzx eax, bl
sub cl, 0x4f
sub ax, dx
mov byte [0x42ba77], cl
mov edx, 0xf937
mov bh, 1
and ax, dx
sub cl, 5
mov word [0x42ba70], ax
mov dl, byte [0x42ba97]
jmp 0x41c1a2
mov bl, byte [0x42ba79]
mov ecx, 0x9ea8
mov dl, byte [0x42ba97]
movzx eax, bl
add dl, 0x60
xor ax, cx
mov cl, byte [0x42ba6f]
mov word [0x42ba70], ax
jmp 0x41c19a
mov bl, byte [0x42ba80]
mov dl, 0x16
mov cl, byte [0x42ba97]
or bl, 0x66
mov al, bl
mov byte [0x42ba79], bl
xor al, 0x16
or ecx, 0x36
mov byte [0x42ba77], al
mov eax, 0xad2f
add word [0x42ba74], ax
jmp 0x41c19a
movzx ecx, byte [0x42ba6f]
mov dl, byte [0x42ba6f]
and ecx, 0x73fd9404
mov bl, byte [0x42ba79]
or ecx, 0x10
xor ecx, 0x333d0404
and dl, 0xc2
mov dword [0x42ba80], ecx
add cl, 8
mov byte [0x42ba97], dl
mov bh, 1
movzx eax, dl
or eax, 0xd56303bd
mov dword [esp + 0x20], eax
mov dword [str.3Fu], eax
test bh, bh
je 0x41c2f4
lea ecx, [eax - 0x4ac0]
mov dl, al
movzx eax, bl
mov edi, 0x6444
xor ax, di
mov word [0x42ba70], cx
mov edi, 0xed74
xor dl, 0x87
and ax, di
mov byte [0x42ba77], dl
mov word [0x42ba74], ax
xor ebx, ebx
lea eax, [esp + 0xed]
add cl, 0x72
mov dword [esp + 0x50], eax
xor cl, 0x4c
mov eax, dword [esp + 0x20]
or al, 0xe7
mov byte [0x42ba6f], cl
mov byte [0x42ba97], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
movzx eax, dl
mov edx, 0xbedfd981
sub eax, 0x7b86c64f
mov dword [0x42ba80], eax
lea eax, [esp + 0x28]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x64]
push eax
push 3
pop ecx
call fcn.00415084
call eax
test eax, eax
je 0x41c2ee
mov dword [esp + 0x20], 0x95b2f0f7
mov ecx, ebx
mov dword [esp + 0x24], 0xdac08e89
mov al, byte [esp + ecx + 0x20]
xor al, 0xfa
mov byte [esp + ecx + 0x10], al
inc ecx
cmp ecx, 8
jl 0x41c25d
mov dl, byte [0x42ba80]
mov eax, 0xfc3
movzx ecx, word [0x42ba74]
add dl, 0xd
imul ecx, eax
mov al, byte [0x42ba79]
mov byte [0x42ba97], dl
xor al, 0x3d
and dl, 0x3c
mov byte [esp + 0x18], bl
mov byte [0x42ba77], dl
lea edx, [esp + 0x10]
mov word [0x42ba70], cx
mov ecx, esi
push 0xffffffffffffffff
mov byte [0x42ba6f], al
call fcn.004236a5
movzx eax, byte [0x42ba77]
mov ecx, 0x1a4f
push dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
add ax, cx
mov word [0x42ba74], ax
mov ecx, esi
imul eax, dword [0x42ba80], 0xd5a9
mov word [0x42ba70], ax
call fcn.004236a5
pop ecx
pop ecx
mov cl, byte [0x42ba6f]
movzx eax, byte [0x42ba77]
lea edx, [esp + 0x6c]
xor eax, 0x43512ad
mov dword [str.3Fu], eax
imul eax, dword [0x42ba80], 0xd6c9c168
push 0xffffffffffffffff
mov dword [0x42ba80], eax
movzx eax, cl
mov ecx, esi
imul eax, eax, 0xb3
mov byte [0x42ba6f], al
call fcn.004236a5
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4dc
ret