Function at 0x41a394
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
push ecx
mov eax, esp
mov dword [ebp - 8], ecx
xor ebx, ebx
push ecx
lea ecx, [ebp - 0xc]
mov dword [eax], ebx
mov eax, esp
mov dword [eax], ebx
call fcn.00420da5
push 0x4f
mov dword [ebp - 0x10], ebx
lea eax, [ebp - 0x14]
pop ebx
push eax
mov byte [ebp - 0x27], bl
lea esi, [ebp - 0x28]
mov word [ebp - 0x21], 0xda12
mov dword [ebp - 0x26], 0xb7ed42e
mov byte [ebp - 0x22], 0x80
mov byte [ebp - 0x28], 0x82
call dword [sym.imp.system.dll_public:_static_class_Ref_class_String____cdecl_String::create_void_]
add esp, 0xc
mov byte [ebp - 1], 0xcd
mov byte [ebp - 0x18], bl
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x1c]
push dword [ebp - 0x18]
push edx
mov eax, dword [ecx]
call dword [eax + 0x2c]
push eax
lea ecx, [ebp - 0x14]
call fcn.004131e1
lea ecx, [ebp - 0x1c]
call fcn.00401d8a
mov cl, byte [ebp - 1]
add cl, bl
inc esi
mov byte [ebp - 1], cl
mov bl, byte [esi]
xor bl, cl
mov byte [ebp - 0x18], bl
jne 0x41a3e9
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
call fcn.004131e1
lea ecx, [ebp - 0x14]
call fcn.00401d8a
and dword [ebp - 0x14], 0
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x1c]
mov word [ebp - 0x27], 0x53de
mov word [ebp - 0x21], 0xe869
mov byte [ebp - 0x28], 0x37
mov word [ebp - 0x24], 0x35ac
mov word [ebp - 0x1f], 0xd81
mov byte [ebp - 0x22], 0xd3
mov byte [ebp - 0x25], 0xf8
mov byte [ebp - 0x1d], 0xcd
call fcn.0041def1
push eax
lea ecx, [ebp - 0x14]
call fcn.004131e1
lea ecx, [ebp - 0x1c]
call fcn.00401d8a
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.00418313
pop ecx
test al, al
je 0x41a60e
mov esi, dword [ebp - 0x10]
lea ecx, [ebp - 0x10]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
push edx
mov edi, dword [eax]
mov eax, dword [ecx]
mov ebx, dword [edi]
add ebx, 0x90
call dword [eax]
push eax
mov ecx, edi
call dword [ebx]
test al, al
je 0x41a4e8
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.0041841c
pop ecx
mov edx, 0x155
mov ecx, eax
call fcn.00418d73
test al, al
je 0x41a4e8
mov bl, 1
jmp 0x41a4ea
xor bl, bl
lea ecx, [ebp - 0x18]
call fcn.00401d8a
lea ecx, [ebp - 0x10]
call fcn.00401d8a
test bl, bl
je 0x41a533
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
and dword [ebx], 0
test eax, eax
je 0x41a51b
mov ecx, dword [eax + 4]
add eax, 4
mov ecx, dword [ecx + 4]
add ecx, eax
mov eax, dword [ecx]
call dword [eax + 8]
test esi, esi
je 0x41aa45
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
add ecx, 4
add ecx, esi
jmp 0x41aa40
mov edi, dword [ebp - 0x14]
lea ecx, [ebp - 0x10]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push ecx
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x14]
push edx
mov ebx, dword [eax]
mov eax, dword [ebx]
add eax, 0x90
mov dword [ebp - 0x18], eax
mov eax, dword [ecx]
call dword [eax]
push eax
mov eax, dword [ebp - 0x18]
mov ecx, ebx
call dword [eax]
test al, al
je 0x41a590
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.0041841c
pop ecx
mov edx, 0x155
mov ecx, eax
call fcn.00418d73
test al, al
je 0x41a590
xor ebx, ebx
inc ebx
jmp 0x41a592
xor bl, bl
lea ecx, [ebp - 0x14]
call fcn.00401d8a
lea ecx, [ebp - 0x10]
call fcn.00401d8a
test bl, bl
je 0x41a5c4
mov ebx, dword [ebp - 8]
and dword [ebx], 0
test edi, edi
je 0x41a51b
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
add ecx, 4
add ecx, edi
jmp 0x41a516
push 0x2c
call fcn.00417c2e
mov ebx, eax
pop ecx
test ebx, ebx
je 0x41a5a6
push ecx
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
mov ecx, ebx
call fcn.0041bc92
test eax, eax
je 0x41a5a6
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
add ecx, 4
add ecx, eax
mov dword [ebx], ecx
je 0x41a5ac
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
add eax, 4
add ecx, eax
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41a5ac
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.0041901c
pop ecx
test al, al
je 0x41a6a1
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
push edx
mov edi, dword [eax]
mov eax, dword [ecx]
mov ebx, dword [edi]
call dword [eax]
push eax
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x18]
mov bl, al
call fcn.00401d8a
lea ecx, [ebp - 0x14]
call fcn.00401d8a
test bl, bl
jne 0x41aa14
push 0x3c
call fcn.00417c2e
mov edi, eax
pop ecx
test edi, edi
je 0x41aa14
push 1
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00401da2
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
mov ecx, edi
call fcn.0041caf0
jmp 0x41a9ec
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.00419133
pop ecx
test al, al
je 0x41a727
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
push edx
mov edi, dword [eax]
mov eax, dword [ecx]
mov ebx, dword [edi]
call dword [eax]
push eax
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x18]
mov bl, al
call fcn.00401d8a
lea ecx, [ebp - 0x14]
call fcn.00401d8a
test bl, bl
jne 0x41aa14
push 0x20
call fcn.00417c2e
mov edi, eax
pop ecx
test edi, edi
je 0x41aa14
push ecx
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
mov ecx, edi
call fcn.0041db47
jmp 0x41a9ec
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.00419688
pop ecx
test al, al
je 0x41a7a8
push 0x2c
call fcn.00417c2e
mov esi, eax
pop ecx
test esi, esi
je 0x41a787
push ecx
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
mov ecx, esi
call fcn.0041af30
test eax, eax
je 0x41a787
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
add ecx, 4
add ecx, eax
mov dword [ebx], ecx
je 0x41a78d
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
add eax, 4
add ecx, eax
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41a78d
mov ebx, dword [ebp - 8]
and dword [ebx], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x41aa2e
mov ecx, dword [eax + 4]
add eax, 4
mov ecx, dword [ecx + 4]
add ecx, eax
jmp 0x41aa29
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.0041924a
pop ecx
test al, al
jne 0x41a989
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.00419489
pop ecx
test al, al
jne 0x41a989
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.00419586
pop ecx
test al, al
jne 0x41a989
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.00419347
pop ecx
test al, al
je 0x41a87c
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
push edx
mov edi, dword [eax]
mov eax, dword [ecx]
mov ebx, dword [edi]
call dword [eax]
push eax
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x18]
mov bl, al
call fcn.00401d8a
lea ecx, [ebp - 0x14]
call fcn.00401d8a
test bl, bl
jne 0x41aa14
push 0x20
call fcn.00417c2e
mov edi, eax
pop ecx
test edi, edi
je 0x41aa14
push ecx
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
mov ecx, edi
call fcn.0041d9ca
jmp 0x41a9ec
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.0041a178
pop ecx
test al, al
je 0x41a902
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
push edx
mov edi, dword [eax]
mov eax, dword [ecx]
mov ebx, dword [edi]
call dword [eax]
push eax
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x18]
mov bl, al
call fcn.00401d8a
lea ecx, [ebp - 0x14]
call fcn.00401d8a
test bl, bl
jne 0x41aa14
push 0x20
call fcn.00417c2e
mov edi, eax
pop ecx
test edi, edi
je 0x41aa14
push ecx
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
mov ecx, edi
call fcn.0041dac8
jmp 0x41a9ec
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
call fcn.0041a284
pop ecx
test al, al
je 0x41a787
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
push edx
mov edi, dword [eax]
mov eax, dword [ecx]
mov ebx, dword [edi]
call dword [eax]
push eax
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x18]
mov bl, al
call fcn.00401d8a
lea ecx, [ebp - 0x14]
call fcn.00401d8a
test bl, bl
jne 0x41aa14
push 0x20
call fcn.00417c2e
mov edi, eax
pop ecx
test edi, edi
je 0x41aa14
push ecx
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
mov ecx, edi
call fcn.0041da49
jmp 0x41a9ec
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
push edx
mov edi, dword [eax]
mov eax, dword [ecx]
mov ebx, dword [edi]
call dword [eax]
push eax
mov ecx, edi
call dword [ebx + 0x90]
lea ecx, [ebp - 0x18]
mov bl, al
call fcn.00401d8a
lea ecx, [ebp - 0x14]
call fcn.00401d8a
test bl, bl
jne 0x41aa14
push 0x20
call fcn.00417c2e
mov edi, eax
pop ecx
test edi, edi
je 0x41aa14
push ecx
push ecx
lea eax, [ebp - 0xc]
mov ecx, esp
push eax
call fcn.00401da2
mov ecx, edi
call fcn.0041d7b5
test eax, eax
je 0x41aa14
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
add ecx, 4
add ecx, eax
mov dword [ebx], ecx
je 0x41aa1a
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
add eax, 4
add ecx, eax
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41aa1a
mov ebx, dword [ebp - 8]
and dword [ebx], 0
test esi, esi
je 0x41aa2e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
add ecx, 4
add ecx, esi
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x41aa45
mov ecx, dword [eax + 4]
add eax, 4
mov ecx, dword [ecx + 4]
add ecx, eax
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0xc]
call fcn.00401d8a
lea ecx, [ebp + 8]
call fcn.00401d8a
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret