Function at 0x40a9de
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], ecx
mov eax, dword [esi]
mov edx, eax
mov dword [ebp - 8], eax
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4]
cmp word [eax + 8], 0x33
jne 0x442f0e
and dword [ebp + 8], 0
lea ecx, [ebp + 8]
push 0
push ecx
push dword [eax]
call fcn.00403938
mov ebx, eax
mov dword [ebp + 0xc], ebx
test ebx, ebx
je 0x442df6
mov eax, 0x100
test dword [ebp + 8], eax
jne 0x442e45
inc dword [esi]
cmp dword [ebx + 0xc], 5
mov edx, dword [esi]
push 0x4e
pop ecx
jne 0x40aa50
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4]
cmp word [eax + 8], cx
je 0x442e6f
cmp dword [ebx + 0xc], 0xf
je 0x442e8b
cmp dword [ebx + 0xc], 0xf
push 0x35
pop ecx
je 0x442ed1
mov ecx, ebx
call fcn.0040476d
test al, al
jne 0x442ee3
mov ecx, dword [esi]
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 8]
cmp ax, 0x48
jne 0x442ef7
mov esi, dword [ebp + 0x10]
mov ecx, esi
call fcn.00404dc0
mov dword [esi + 0xc], 6
xor eax, eax
mov dword [esi], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
add dword [eax], eax
push esi
lea edx, [eax + 2]
call fcn.0047f5cc
mov edx, dword [ebp + 0x28]
pop ecx
test eax, eax
je 0x442dfa
mov eax, dword [edx + 0x34]
inc edi
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
cmp edi, ebx
jl 0x442dd2
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x48]
cmp edi, ebx
jge 0x442e8e
movzx eax, word [eax]
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 0x68], edi
inc edi
mov dword [ebp - 0x80], eax
cmp eax, dword [edx + 0x4c]
jle 0x442e1d
mov dword [edx + 0x4c], eax
cmp edi, dword [edx + 0x30]
jge 0x442e82
mov esi, dword [edx + 0x34]
mov eax, dword [ebp - 0x18]
add esi, esi
mov ecx, dword [ebp - 0x48]
add ecx, esi
mov dword [ebp - 0x48], ecx
push eax
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0x14]
call fcn.0047f5cc
pop ecx
test eax, eax
jne 0x442e5c
mov eax, dword [ebp - 0x18]
xor edx, edx
mov ecx, dword [ebp - 0x48]
cmp word [ecx + eax*2 + 2], dx
jne 0x442e5c
call 0x4dd0007d
mov eax, 0x41543966
add dh, byte [ebp + 0xa]
mov edx, dword [ebp + 0x28]
inc ebx
inc edi
cmp edi, dword [edx + 0x30]
jl 0x442e2d
cmp ebx, dword [ebp - 0xc]
jle 0x442e7f
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x20], 3
inc word [edx + 4]
inc dword [edx + 4]
mov word [edx + 6], ax
mov word [edx + 8], bx
jmp 0x40e979
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 8]
mov word [edx + 6], ax
jmp 0x40e979
mov edx, 0x7d83fffc
lock add byte [edi], cl
test dword [ebp - 0x74fffff0], ecx
inc ebp
in al, dx
cmp dword [ebp - 0x10], 0
jne 0x443f25
mov eax, dword [ebp - 0x14]
push 0x52
pop edi
cmp word [eax], di
jne 0x442efb
mov ebx, dword [ebp - 0x18]
xor ecx, ecx
mov edx, dword [ebp - 0xc]
cmp ebx, 1
jle 0x442ee1
push 0x30
pop edi
movzx eax, word [eax + edx*2]
cmp ax, di
jb 0x443f25
cmp ax, word [ebp - 0x90]
ja 0x443f25
imul ecx, ecx, 0xa
add eax, 0xffffffd0
add ecx, eax
mov eax, dword [ebp - 0x14]
rcl al, 3
enter 0x458b, 0xffffffffffffffec
inc edx
cmp edx, ebx
jl 0x442eb3
test ecx, ecx
jne 0x442ee6
mov ecx, 0xffff
inc dword [eax]
add byte [ebx - 0x704707ab], cl
add byte [eax], al
add byte [esi - 0x77], ah
inc edx
add al, 0x66
mov dword [edx + 6], ecx
mov edx, dword [ebp - 8]
mov eax, 0x8f
mov word [edx + 4], ax
mov word [edx + 6], cx
jmp 0x40e979
jle 0x442eb3
cld
inc dword [ebx + 0xf06e87d]
test dword [eax], esp
adc byte [eax], al
add byte [edx + 6], ch
cmp dword [ebp - 0x18], 6
jne 0x443f25
push 6
mov edx, 0x4bc920
mov ecx, eax
call fcn.0040f3af
pop ecx
test eax, eax
jne 0x443f25
mov edx, dword [ebp - 8]
mov eax, 0x91
mov ebx, dword [ebp - 0x1c]
mov word [edx + 4], ax
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x20], eax
jmp 0x40e982