Function at 0x10051d20
Capabilities:
Decode data using base64 via winapi

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100636c0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ecx, dword [0x10283e4c]
or ecx, dword [str.kA_aU]
add ecx, 0x7f159aab
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
and eax, 0x6543cdaa
xor eax, 0xffffffff
imul eax, eax, 0x1c9ad6aa
cmp eax, 0x16eb63e8
jb 0x10052076
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
push eax
mov esi, esp
push eax
mov eax, esp
mov dword [ebp - 0x40], eax
push eax
mov ecx, esp
mov dword [ebp - 0x2c], ecx
sub esp, 0xc
mov ebx, esp
mov dword [ebp - 0x3c], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x38], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x34], ebx
sub esp, 0xc
mov ebx, esp
mov dword [ebp - 0x30], ebx
mov dword [esi], edi
mov dword [eax], edx
mov dword [ecx], 0
mov ecx, dword [eax]
call fcn.10008160
mov ecx, eax
mov eax, dword [ebp - 0x2c]
xor edx, edx
sub esp, 0x1c
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
cmp eax, 0
jne 0x10051e49
mov ecx, dword [ebp - 0x3c]
lea eax, str.Failed_to_calculate_base64_decoded_size.
sub esp, 4
mov dword [esp], eax
call fcn.10052110
mov ecx, dword [ebp - 0x3c]
lea eax, [0x1026f93c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.101f26d1
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov byte [eax], 0
call fcn.10005430
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
mov edx, dword [edx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.100522e0
mov ecx, dword [ebp - 0x28]
call fcn.10052340
mov ecx, eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x44], ecx
mov ecx, dword [eax]
call fcn.10008160
mov ecx, dword [ebp - 0x44]
mov edx, eax
mov eax, dword [ebp - 0x2c]
xor esi, esi
sub esp, 0x1c
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 1
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
cmp eax, 0
jne 0x10051fc6
mov ecx, dword [ebp - 0x30]
lea eax, str.Failed_to_decode_base64_string.
sub esp, 4
mov dword [esp], eax
call fcn.10052110
mov ebx, dword [0x10283e5c]
mov edi, dword [0x10283e60]
mov ecx, ebx
xor ecx, 0xffffffff
mov edx, edi
xor edx, 0xffffffff
mov eax, ecx
and eax, 0xc97b5d59
and ebx, 0x3684a2a6
mov esi, edx
and esi, 0xc97b5d59
and edi, 0x3684a2a6
or eax, ebx
or esi, edi
xor eax, esi
or ecx, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x7b7602f2
xor edx, edx
div ecx
mov ecx, eax
and ecx, 0xf716a5fd
xor eax, 0xf716a5fd
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xe2f812e3
and ecx, 0x1d07ed1c
or eax, ecx
xor eax, 0x9ecac8ff
cmp eax, 0x8b568434
ja 0x100520dd
mov eax, dword [0x10283e64]
xor edx, edx
div dword [0x10283e68]
mov ecx, eax
mov eax, ecx
and eax, 0xabb31097
xor ecx, 0xffffffff
and ecx, 0x544cef68
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
sub eax, 0x4871a520
add eax, 0xbe04d23d
sub eax, 0x3af8c2f
sub eax, 0xbe04d23d
cmp eax, 0xddf7c0b5
jae 0x10051f5b
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x10], 0
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026f93c
call fcn.101f26d1
add esp, 8
jmp 0x10052076
mov ecx, dword [0x10283e6c]
mov esi, dword [0x10283e70]
mov eax, ecx
xor eax, 0xffffffff
mov edx, esi
and edx, eax
mov edi, esi
xor edi, 0xffffffff
mov eax, ecx
and eax, edi
imul eax, edx
mov edx, ecx
and edx, esi
or ecx, esi
imul ecx, edx
add ecx, eax
sub ecx, 0x769140bd
add ecx, 0x4ace3b2b
mov eax, ecx
and eax, 0x44d8c1fb
or ecx, 0x44d8c1fb
add eax, ecx
cmp eax, 0x246ba5a1
jbe 0x100520e2
mov ecx, dword [ebp - 0x38]
mov eax, dword [0x10283e74]
sub eax, dword [0x10283e78]
and eax, 0x6894f55d
imul eax, eax, 0x409c8880
add eax, 0x862623b6
mov byte [ecx], 1
mov cl, byte [ecx]
mov byte [ebp - 0x45], cl
cmp eax, 0x7d1e9557
jae 0x10052018
mov al, byte [ebp - 0x45]
test al, 1
jne 0x10052061
jmp 0x10052059
mov ecx, dword [ebp - 0x28]
call fcn.10052500
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
push eax
mov esi, esp
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x4c], ecx
mov dword [esi], edi
mov dword [eax], edx
mov dword [ecx], 0
mov ecx, dword [eax]
call fcn.10008160
mov ecx, eax
mov eax, dword [ebp - 0x4c]
xor edx, edx
sub esp, 0x1c
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
jmp 0x10051d93
jmp 0x10051f5b
mov eax, dword [ebp - 0x38]
mov byte [eax], 1
jmp 0x10052018