Function at 0x420b14
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 - 4], ecx
xor ebx, ebx
push ecx
lea ecx, [ebp - 8]
mov dword [eax], ebx
mov eax, esp
mov dword [eax], ebx
call fcn.0042619b
pop ecx
pop ecx
lea edx, [ebp - 0x28]
mov dword [ebp - 0xc], ebx
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x28], 0xb7d36cbf
mov dword [ebp - 0x23], 0xfdfd65d4
mov byte [ebp - 0x24], 0x5d
call fcn.004243da
push eax
lea ecx, [ebp - 0xc]
call fcn.00401929
lea ecx, [ebp - 0x18]
call fcn.00401871
lea eax, [ebp - 0x14]
mov dword [ebp - 0x10], ebx
push eax
mov dword [ebp - 0x21], 0x51b5049d
lea esi, [ebp - 0x28]
mov dword [ebp - 0x25], 0xef41800c
mov word [ebp - 0x27], 0x87e2
mov byte [ebp - 0x1d], 0xa1
mov byte [ebp - 0x28], 3
call dword [sym.imp.system.dll_public:_static_class_Ref_class_String____cdecl_String::create_void_]
mov bl, 0x44
mov bh, 0x47
pop ecx
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.00401929
lea ecx, [ebp - 0x1c]
call fcn.00401871
add bh, bl
inc esi
mov bl, byte [esi]
xor bl, bh
mov byte [ebp - 0x18], bl
jne 0x420b9b
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
call fcn.00401929
lea ecx, [ebp - 0x14]
call fcn.00401871
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.00417407
pop ecx
test al, al
je 0x420d72
mov esi, dword [ebp - 0xc]
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]
add ebx, 0x90
call dword [eax]
push eax
mov ecx, edi
call dword [ebx]
test al, al
je 0x420c4c
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.00417509
pop ecx
mov edx, 0x155
mov ecx, eax
call fcn.004202a7
test al, al
je 0x420c4c
mov bl, 1
jmp 0x420c4e
xor bl, bl
lea ecx, [ebp - 0x18]
call fcn.00401871
lea ecx, [ebp - 0x14]
call fcn.00401871
test bl, bl
je 0x420c97
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
and dword [ebx], 0
test eax, eax
je 0x420c7f
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 0x4211a9
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
add ecx, 4
add ecx, esi
jmp 0x4211a4
mov edi, dword [ebp - 0x10]
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 0x420cf4
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.00417509
pop ecx
mov edx, 0x155
mov ecx, eax
call fcn.004202a7
test al, al
je 0x420cf4
xor ebx, ebx
inc ebx
jmp 0x420cf6
xor bl, bl
lea ecx, [ebp - 0x14]
call fcn.00401871
lea ecx, [ebp - 0x10]
call fcn.00401871
test bl, bl
je 0x420d28
mov ebx, dword [ebp - 4]
and dword [ebx], 0
test edi, edi
je 0x420c7f
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
add ecx, 4
add ecx, edi
jmp 0x420c7a
push 0x2c
call fcn.00416d59
mov ebx, eax
pop ecx
test ebx, ebx
je 0x420d0a
push ecx
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
mov ecx, ebx
call fcn.004223ca
test eax, eax
je 0x420d0a
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 4]
mov ecx, dword [ecx + 8]
add ecx, 4
add ecx, eax
mov dword [ebx], ecx
je 0x420d10
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 0x420d10
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.00418513
pop ecx
test al, al
je 0x420e05
mov esi, dword [ebp - 0x10]
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.00401871
lea ecx, [ebp - 0x14]
call fcn.00401871
test bl, bl
jne 0x421178
push 0x3c
call fcn.00416d59
mov edi, eax
pop ecx
test edi, edi
je 0x421178
push 1
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.0040203d
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
mov ecx, edi
call fcn.00423224
jmp 0x421150
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.004189d2
pop ecx
test al, al
je 0x420e8b
mov esi, dword [ebp - 0x10]
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.00401871
lea ecx, [ebp - 0x14]
call fcn.00401871
test bl, bl
jne 0x421178
push 0x20
call fcn.00416d59
mov edi, eax
pop ecx
test edi, edi
je 0x421178
push ecx
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
mov ecx, edi
call fcn.004242c1
jmp 0x421150
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.00419086
pop ecx
test al, al
je 0x420f0c
push 0x2c
call fcn.00416d59
mov esi, eax
pop ecx
test esi, esi
je 0x420eeb
push ecx
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
mov ecx, esi
call fcn.00421694
test eax, eax
je 0x420eeb
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 4]
mov ecx, dword [ecx + 8]
add ecx, 4
add ecx, eax
mov dword [ebx], ecx
je 0x420ef1
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 0x420ef1
mov ebx, dword [ebp - 4]
and dword [ebx], 0
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x421192
mov ecx, dword [eax + 4]
add eax, 4
mov ecx, dword [ecx + 4]
add ecx, eax
jmp 0x42118d
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.00418c21
pop ecx
test al, al
jne 0x4210ed
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.00418f84
pop ecx
test al, al
jne 0x4210ed
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.00418e82
pop ecx
test al, al
jne 0x4210ed
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.004204d6
pop ecx
test al, al
je 0x420fe0
mov esi, dword [ebp - 0x10]
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.00401871
lea ecx, [ebp - 0x14]
call fcn.00401871
test bl, bl
jne 0x421178
push 0x20
call fcn.00416d59
mov edi, eax
pop ecx
test edi, edi
je 0x421178
push ecx
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
mov ecx, edi
call fcn.00424144
jmp 0x421150
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.0042085e
pop ecx
test al, al
je 0x421066
mov esi, dword [ebp - 0x10]
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.00401871
lea ecx, [ebp - 0x14]
call fcn.00401871
test bl, bl
jne 0x421178
push 0x20
call fcn.00416d59
mov edi, eax
pop ecx
test edi, edi
je 0x421178
push ecx
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
mov ecx, edi
call fcn.00424242
jmp 0x421150
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
call fcn.004209d5
pop ecx
test al, al
je 0x420eeb
mov esi, dword [ebp - 0x10]
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.00401871
lea ecx, [ebp - 0x14]
call fcn.00401871
test bl, bl
jne 0x421178
push 0x20
call fcn.00416d59
mov edi, eax
pop ecx
test edi, edi
je 0x421178
push ecx
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
mov ecx, edi
call fcn.004241c3
jmp 0x421150
mov esi, dword [ebp - 0x10]
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.00401871
lea ecx, [ebp - 0x14]
call fcn.00401871
test bl, bl
jne 0x421178
push 0x20
call fcn.00416d59
mov edi, eax
pop ecx
test edi, edi
je 0x421178
push ecx
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
call fcn.0040203d
mov ecx, edi
call fcn.00423f52
test eax, eax
je 0x421178
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 4]
mov ecx, dword [ecx + 8]
add ecx, 4
add ecx, eax
mov dword [ebx], ecx
je 0x42117e
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 0x42117e
mov ebx, dword [ebp - 4]
and dword [ebx], 0
test esi, esi
je 0x421192
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 - 0xc]
test eax, eax
je 0x4211a9
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 - 8]
call fcn.00401871
lea ecx, [ebp + 8]
call fcn.00401871
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret