Function at 0x4022d0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42ea2d
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x43e01c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 4], 0
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x58], esi
test esi, esi
jne 0x402364
mov ecx, dword [ebp + 0x1c]
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], esi
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
cmp ecx, 0x10
jb 0x4027e6
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40235d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402808
push ecx
push edx
jmp 0x4027de
test dl, dl
je 0x4024a4
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x40]
call fcn.004021a0
mov byte [ebp - 4], 1
lea eax, [ebp - 0x40]
mov esi, dword [ebp - 0x2c]
cmp esi, 0x10
mov edx, dword [ebp - 0x40]
cmovae eax, edx
add eax, dword [ebp - 0x30]
cmp esi, 0x10
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x40]
cmovae eax, edx
add eax, dword [ebp - 0x30]
cmp esi, 0x10
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x40]
mov esi, dword [ebp - 0x58]
cmovae eax, edx
push 0xa
push esi
push eax
call fcn.00412310
mov edi, eax
cmp eax, esi
je 0x4023cf
inc eax
cmp eax, esi
je 0x4023cf
mov cl, byte [eax]
cmp cl, 0xa
je 0x4023ca
mov byte [edi], cl
inc edi
inc eax
cmp eax, esi
jne 0x4023c0
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
mov esi, edi
lea ecx, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
sub dword [ebp - 0x50], edi
sub esi, eax
mov edi, dword [ebp - 0x30]
mov eax, edi
mov edx, dword [ebp - 0x50]
sub eax, esi
cmp eax, edx
cmovb edx, eax
cmp dword [ebp - 0x2c], 0x10
mov dword [ebp - 0x50], edx
cmovae ecx, dword [ebp - 0x40]
sub edi, edx
add ecx, esi
mov eax, edi
sub eax, esi
inc eax
push eax
lea eax, [ecx + edx]
push eax
push ecx
call fcn.00414ee0
mov dword [ebp - 0x30], edi
lea edx, [ebp - 0x40]
mov edi, dword [ebp - 0x60]
mov ecx, edi
push 0
call fcn.00401ed0
mov ecx, dword [ebp - 0x2c]
add esp, 0x10
cmp ecx, 0x10
jb 0x40245b
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x402451
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402803
push ecx
push edx
call fcn.004136b6
add esp, 8
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp ecx, 0x10
jb 0x4027e6
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40235d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402803
jmp 0x40235d
mov eax, esi
mov dword [ebp - 0x14], 0xf
shr eax, 2
xorps xmm0, xmm0
xor edi, edi
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], edi
lea eax, [eax + eax*2]
mov byte [ebp - 0x28], 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.00401f70
mov ecx, dword [ebp + 8]
test esi, esi
mov esi, dword [ebp + 0x1c]
je 0x402794
nop
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
mov dl, byte [eax + edi + 1]
lea eax, [edx - 0x41]
cmp al, 0x19
ja 0x4024fc
movzx edx, dl
sub edx, 0x41
jmp 0x40253e
lea eax, [edx - 0x61]
cmp al, 0x19
ja 0x40250b
movzx edx, dl
sub edx, 0x47
jmp 0x40253e
lea eax, [edx - 0x30]
cmp al, 9
ja 0x40251a
movzx edx, dl
add edx, 4
jmp 0x40253e
cmp dl, 0x2b
je 0x402539
cmp dl, 0x2d
je 0x402539
cmp dl, 0x2f
je 0x402532
cmp dl, 0x5f
jne 0x40280d
mov edx, 0x3f
jmp 0x40253e
mov edx, 0x3e
cmp esi, 0x10
mov dword [ebp - 0x50], edx
lea eax, [ebp + 8]
cmovae eax, ecx
mov al, byte [eax + edi]
lea ecx, [eax - 0x41]
cmp cl, 0x19
ja 0x402559
sub al, 0x41
jmp 0x40258b
lea ecx, [eax - 0x61]
cmp cl, 0x19
ja 0x402565
sub al, 0x47
jmp 0x40258b
lea ecx, [eax - 0x30]
cmp cl, 9
ja 0x402571
add al, 4
jmp 0x40258b
cmp al, 0x2b
je 0x402589
cmp al, 0x2d
je 0x402589
cmp al, 0x2f
je 0x402585
cmp al, 0x5f
jne 0x40280d
mov al, 0x3f
jmp 0x40258b
mov al, 0x3e
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
shr edx, 4
and dl, 3
shl al, 2
add dl, al
mov byte [ebp - 0x44], dl
cmp ecx, esi
jae 0x4025bd
lea eax, [ecx + 1]
cmp esi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x4025d1
push dword [ebp - 0x44]
mov byte [ebp - 0x64], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x64]
push 1
call fcn.00402970
lea eax, [edi + 2]
cmp eax, dword [ebp - 0x58]
jae 0x402782
mov esi, dword [ebp + 0x1c]
lea eax, [ebp + 8]
mov ecx, dword [ebp + 8]
cmp esi, 0x10
cmovae eax, ecx
cmp byte [eax + edi + 2], 0x3d
je 0x402788
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
cmp byte [eax + edi + 2], 0x2e
je 0x402788
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
mov cl, byte [eax + edi + 2]
lea eax, [ecx - 0x41]
cmp al, 0x19
ja 0x402627
movzx edx, cl
sub edx, 0x41
jmp 0x402669
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x402636
movzx edx, cl
sub edx, 0x47
jmp 0x402669
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x402645
movzx edx, cl
add edx, 4
jmp 0x402669
cmp cl, 0x2b
je 0x402664
cmp cl, 0x2d
je 0x402664
cmp cl, 0x2f
je 0x40265d
cmp cl, 0x5f
jne 0x40280d
mov edx, 0x3f
jmp 0x402669
mov edx, 0x3e
mov eax, dword [ebp - 0x50]
mov ecx, edx
mov esi, dword [ebp - 0x18]
shr ecx, 2
and cl, 0xf
shl al, 4
add cl, al
mov dword [ebp - 0x54], edx
mov byte [ebp - 0x48], cl
cmp esi, dword [ebp - 0x14]
jae 0x4026a2
cmp dword [ebp - 0x14], 0x10
lea eax, [esi + 1]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov byte [eax + esi], cl
mov byte [eax + esi + 1], 0
jmp 0x4026b9
push dword [ebp - 0x48]
mov byte [ebp - 0x68], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x68]
push 1
call fcn.00402970
mov edx, dword [ebp - 0x54]
lea eax, [edi + 3]
cmp eax, dword [ebp - 0x58]
jae 0x402782
mov esi, dword [ebp + 0x1c]
lea eax, [ebp + 8]
mov ecx, dword [ebp + 8]
cmp esi, 0x10
cmovae eax, ecx
cmp byte [eax + edi + 3], 0x3d
je 0x402788
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
cmp byte [eax + edi + 3], 0x2e
je 0x402788
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
mov cl, byte [eax + edi + 3]
lea eax, [ecx - 0x41]
cmp al, 0x19
ja 0x40270c
sub cl, 0x41
jmp 0x402742
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x402718
sub cl, 0x47
jmp 0x402742
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x402724
add cl, 4
jmp 0x402742
cmp cl, 0x2b
je 0x402740
cmp cl, 0x2d
je 0x402740
cmp cl, 0x2f
je 0x40273c
cmp cl, 0x5f
jne 0x402828
mov cl, 0x3f
jmp 0x402742
mov cl, 0x3e
mov esi, dword [ebp - 0x14]
shl dl, 6
add dl, cl
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0x4c], dl
cmp ecx, esi
jae 0x40276e
lea eax, [ecx + 1]
cmp esi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x402782
push dword [ebp - 0x4c]
mov byte [ebp - 0x5c], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x5c]
push 1
call fcn.00402970
mov esi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
add edi, 4
cmp edi, dword [ebp - 0x58]
jb 0x4024e0
mov edi, dword [ebp - 0x60]
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [edi + 0x10], xmm0
cmp esi, 0x10
jb 0x4027e6
inc esi
mov eax, ecx
cmp esi, 0x1000
jb 0x4027dc
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402808
push esi
push ecx
call fcn.004136b6
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00413678
mov esp, ebp
pop ebp
ret
call fcn.004184ff
call fcn.004184ff
push 0x438bd0
lea ecx, [ebp - 0x74]
call fcn.00401e30
push 0x43c7fc
lea eax, [ebp - 0x74]
push eax
call fcn.00414dc0
push 0x438bd0
lea ecx, [ebp - 0x84]
call fcn.00401e30
push 0x43c7fc
lea eax, [ebp - 0x84]
push eax
call fcn.00414dc0
int3