Function at 0x402739
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov ecx, dword [ebp + 8]
push ebx
push esi
lea eax, [ecx + 0x10]
mov edx, dword [eax]
mov esi, edx
xor esi, dword [ebp + 0xc]
cmp dword [ecx + 0x14], 0x10
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], esi
jb 0x40275f
mov ecx, dword [ecx]
mov dword [ebp + 8], ecx
shr edx, 2
xor ebx, ebx
mov dword [ebp - 0x10], edx
test edx, edx
je 0x402a36
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], edx
push edi
or eax, 0x140
shl ecx, 0xef
rcl eax, 0xce
imul dx
movzx eax, al
sub ax, 0x2a3
imul cx
shl ebx, 0x20
ror eax, 0x94
rcl di, 0x31
dec cx
dec dx
shl ax, 0x3f
dec edx
shr esi, 0xa0
sub edx, 0x2be
movzx ebx, dh
rcl di, 0xb9
shr ebx, 0x6e
shl si, 0x80
xor ecx, 0xf6
mul edx
jb 0x4027d9
or edx, ecx
or dx, 0x301
xor ebx, edx
xor dx, 0x359
shr edi, 0x68
shl cx, 0x18
jmp 0x4027f9
mov bx, dx
rcl esi, 0xf6
dec ebx
mov dx, 0xe
imul cx
dec bx
xor ax, bx
rol dx, 0x3a
add si, 0x31a
or ax, 0x9d
inc dx
sub esi, esi
jne 0x402825
test ecx, 3
ja 0x402872
mov ebx, ecx
ror ecx, 0x32
shr bx, 0x4f
dec ebx
mul edi
mul si
rcr edx, 0xe4
movsx esi, dh
ror di, 0x85
mul ax
jmp 0x402843
movzx edx, dh
mul edi
shl edi, 0xff
dec cx
shr esi, 0x82
mul eax
sub dx, 0x3d
add esi, 0x329
inc bx
rcl ebx, 0x82
mov eax, esi
xor edx, 0x85
or ecx, 0xfd
jb 0x402872
cmp ebx, 0x4e
je 0x402894
shl si, 0x67
and ebx, 0x196
xor edi, esi
rcr ebx, 0x37
and eax, 0x118
shl cx, 0x9a
jmp 0x402878
rcl si, 0x9e
mov edx, eax
mov di, bx
rol dx, 0xb0
movsx edx, di
mul si
shl ax, 0xb9
inc dx
jb 0x402894
inc ebx
rol ax, 0x61
jmp 0x4028a9
imul bx
inc cx
shl esi, 0x8a
sub dx, 0x343
dec edi
rcl dx, 3
movsx eax, bl
mul ebx
rcr ecx, 0xea
jb 0x4028be
or ax, 0x3a3
inc edi
inc esi
mul esi
mul edx
imul ecx
jmp 0x4028c6
xor bx, cx
sub eax, 0x31c
and ecx, esi
or eax, 0x3a7
shl dx, 0x55
shr esi, 0xb9
add ax, 0x288
mul di
and ecx, 0x165
jae 0x402900
test edx, 0x27
ja 0x40292e
shr cx, 0xef
movsx eax, dh
movzx eax, bl
mul di
rcr ecx, 0x7e
shl ebx, 0x94
jmp 0x402919
rcr esi, 0x49
and edi, ecx
inc cx
imul edi
add edx, esi
shr esi, 0x38
shl ebx, 0xf1
and di, 0xbe
imul cx
rcl esi, 8
dec edx
jb 0x40292e
xor ax, bx
dec di
dec di
rol edx, 0x64
imul cx
jmp 0x40292f
inc edi
add eax, 0x274
or ecx, 0x108
mul di
mul ecx
rcl di, 0x7d
shr dx, 0x25
and eax, 0x334
dec ecx
shr cx, 0xf0
inc esi
ja 0x402959
add si, cx
jmp 0x402970
imul di
and cx, si
inc si
imul si
rcl bx, 0x35
mul edx
and edx, 0x15b
inc cx
rol ecx, 0xa4
movsx edx, bh
rcr ecx, 0xe0
jb 0x4029a0
rcr cx, 0xd3
dec esi
rol ax, 0xbe
mul cx
rol cx, 0x5e
or ebx, esi
sub dx, 0x75
shr esi, 0xa
sub esi, 0x1b0
add ecx, esi
jmp 0x4029b1
mul ecx
rol esi, 0x92
shl cx, 5
dec bx
dec esi
ror ecx, 0xe5
add ebx, edi
rol edi, 0x63
inc si
inc si
add eax, edx
dec cx
and bx, 0x2e7
push str.Z81xbyuAua
push 0x429f98
call fcn.00401100
push eax
call fcn.00401539
add esp, 0xc
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
mov edi, dword [ebp - 8]
lea eax, [ebp + 0xc]
push 4
push edi
push eax
call fcn.00405a00
imul ecx, dword [ebp + 0xc], 0x5bd1e991
add edi, 4
imul esi, dword [ebp - 4], 0x5bd1e991
add esp, 0xc
mov dword [ebp - 8], edi
mov eax, ecx
shr eax, 0x18
xor eax, ecx
imul eax, eax, 0x5bd1e991
xor esi, eax
mov dword [ebp + 0xc], eax
sub dword [ebp - 0xc], 1
mov dword [ebp - 4], esi
jne 0x402776
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
pop edi
mov eax, dword [eax]
and eax, 3
sub eax, 1
je 0x402a5c
sub eax, 1
je 0x402a52
sub eax, 1
jne 0x402a6a
movsx ebx, byte [ecx + edx*4 + 2]
shl ebx, 0x10
movsx eax, byte [ecx + edx*4 + 1]
shl eax, 8
xor ebx, eax
movsx eax, byte [ecx + edx*4]
xor eax, ebx
imul eax, eax, 0x5bd1e991
xor esi, eax
mov eax, esi
shr eax, 0xd
xor eax, esi
imul ecx, eax, 0x5bd1e991
pop esi
pop ebx
mov eax, ecx
shr eax, 0xf
xor eax, ecx
leave
ret