Function at 0x540ebc
Capabilities:
Encode data using base64
Execute anti-debugging instructions

Disassembly:
xor dword [ebp - 8], ecx
mov ecx, dword [esp]
lea esp, [esp + 8]
popfd
pushfd
add ebp, 0x10
popfd
lea ebp, [ebp - 0x10]
jmp 0x56280c
mov ebp, 0x8b569d45
je 0x4c72c5
add al, 0x8d
jbe 0x4c72b5
test dl, ah
or al, byte [bx + si]
movsd dword es:[edi], dword [esi]
jne 0x4c72c8
call fcn.004d08a8
jg 0x4c7311
dec esi
imul ebp, dword [ebx], 0xbe5e480a
and al, 0x46
jl 0x4c7267
inc esp
dec ecx
push cs
call 0x9d3d75f4
xor edx, edi
or byte [edi], ah
xor eax, 0xfe327ce8
jmp dword [edi + 0x21]
inc edi
push es
dec ecx
les esp, [edx - 0x18]
int 0x26
add byte [eax], al
jmp 0xe8c27d56
xchg dword [ebp - 4], esi
mov esi, eax
push dword [ebp - 4]
xchg dword [ebp - 4], esi
pop esi
add esi, edx
pushfd
add ebp, 0x6f
popfd
lea ebp, [ebp - 0x6f]
xchg esi, ebx
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, ebx
mov ebx, dword [esp]
jmp 0x5652ec
popfd
lea ebx, [ebx]
je 0x579430
jne 0x579430
jmp 0x57942e
add ah, dl
mov eax, 0x42421
call 0x4d92dc
call 0x56ede0
add bl, ch
mov bh, 0x4c
popal
jg 0x5403e9
jne 0x5403d9
add byte [eax], al
add byte [eax], al
add al, ch
jnp 0x5403b8
clc
push esp
int 0xe3
dec ebp
std
push edx
push esi
xor eax, dword [ecx - 0x73]
sub dword [ebx + 0x32a64e0c], esi
push es
jno 0x54041f
mov al, 0
add byte [edi + 0xc4d8bca], al
push edx
xchg edx, ecx
pop ecx
xchg edi, esi
mov esi, dword [edx + 0x3c]
push edi
xchg edi, esi
pop esi
xchg esi, eax
mov eax, dword [edi + edx + 0xa0]
push esi
xchg esi, eax
pop eax
test esi, esi
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x3a]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
je 0x4da8dc
xchg ecx, eax
mov ecx, edx
push eax
xchg ecx, eax
pop ecx
push dword [edi + edx + 0x34]
cmp eax, dword [esp]
pushfd
not dword [esp + 4]
inc dword [esp + 4]
add eax, dword [esp + 4]
popfd
lea esp, [esp + 4]
jmp 0x4c87d0
jmp 0x55ccac
call fcn.00562dfc
sbb eax, 0x7e75b4e3
add bl, byte [edi + 0x58]
lds esp, [ebp - 0x663b4db]
or cl, byte [esp + edi*8]
stc
xor ebx, dword [ebp - 0x7bf0ff73]
xchg dword [edx - 0x7af00009], eax
add dword [edx + 0x7ae9fff7], 0xe3fff782
or al, byte [eax]
add byte [edx - 0x3db9b73], dl
mov dword [esp], edx
mov edx, eax
mov eax, dword [esp]
xchg esi, ebx
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, ebx
mov ebx, dword [esp]
jmp 0x5403ba
pushfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x13]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ebx, eax
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, eax
mov eax, dword [esp]
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], eax
mov eax, edx
mov edx, dword [esp]
rdtsc
pushfd
add ebp, 0x52
popfd
lea ebp, [ebp - 0x52]
and eax, 1
lea ebx, [ebx]
xchg edi, edx
xchg dword [esp], edi
xchg edi, edx
lea esp, [esp + 4]
xchg esi, eax
xchg dword [esp], esi
xchg esi, eax
lea esp, [esp + 4]
je 0x5640a0
jne 0x576dc4
jmp 0x56409e
add byte [eax], al
popfd
mov ecx, ecx
je 0x56d51c
jne 0x56d51c
jmp 0x56d51a
pushfd
pushfd
add ebp, 0x59
popfd
lea ebp, [ebp - 0x59]
xchg ebx, eax
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, eax
mov eax, dword [esp]
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], eax
mov eax, edx
mov edx, dword [esp]
rdtsc
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 9]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
and eax, 1
lea edx, [edx]
xchg ecx, edx
xchg dword [esp], ecx
xchg ecx, edx
lea esp, [esp + 4]
xchg ebx, eax
xchg dword [esp], ebx
xchg ebx, eax
lea esp, [esp + 4]
je 0x4c729c
jne 0x4d2c8c
jmp 0x4c729a
add byte [eax], al
xchg esi, eax
mov esi, dword [ebp - 8]
push eax
xchg esi, eax
pop esi
mov esp, ebp
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x2a]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ecx, ebp
xchg dword [esp], ecx
xchg ecx, ebp
lea esp, [esp + 4]
ret
add byte [eax], al
xchg ecx, eax
mov ecx, dword [ebp - 8]
push eax
xchg ecx, eax
pop ecx
mov esp, ebp
pushfd
add ebp, 0x3c
popfd
lea ebp, [ebp - 0x3c]
xchg edi, ebp
xchg dword [esp], edi
xchg edi, ebp
lea esp, [esp + 4]
ret
popfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x1b]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
je 0x56bdf4
jne 0x56bdf4
jmp 0x56bdf2
xor eax, dword [eax]
lea ebx, [esi + 4]
pushfd
add ebp, 0x3f
popfd
lea ebp, [ebp - 0x3f]
xchg dword [ebp - 0xc], edx
mov edx, esi
push dword [ebp - 0xc]
xchg dword [ebp - 0xc], edx
pop edx
xchg edi, esi
mov esi, dword [ebx]
push edi
xchg edi, esi
pop esi
xchg dword [ebp - 0x10], eax
mov eax, ebx
push dword [ebp - 0x10]
xchg dword [ebp - 0x10], eax
pop eax
test edi, edi
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x4e]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
jne 0x5635b8
cmp dword [ecx], 8
lea eax, [eax]
xchg ecx, ebx
xchg dword [esp], ecx
xchg ecx, ebx
lea esp, [esp + 4]
jle 0x4da8dc
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, dword [ecx + 0x5a]
xchg dword [esp], edx
xchg edx, eax
mov edx, dword [ecx + 0x56]
push eax
xchg edx, eax
pop edx
add eax, edx
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x1c]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
lea eax, [ecx + 0x72]
push ebp
mov ebp, esp
leave
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
pushfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x5d]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
call 0x579508
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x32]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
add dword [esp], 0xfffd9835
xchg dword [esp], ebx
push ebp
mov ebp, esp
leave
xchg dword [esp + 4], ebx
pushfd
add ebp, 0x30
popfd
lea ebp, [ebp - 0x30]
xchg dword [esp], ebx
pushfd
add ebp, 0x75
popfd
lea ebp, [ebp - 0x75]
popfd
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x59]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
jmp fcn.004da7fc