Function at 0x40b656
Capabilities:
Encode data using base64

Disassembly:
mov eax, 0x453679
call fcn.004534f4
sub esp, 0xc8
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
movaps xmm0, xmmword [0x407cb0]
movups xmmword [ebp - 0xd2], xmm0
movaps xmm0, xmmword [0x408140]
movups xmmword [ebp - 0xc2], xmm0
movaps xmm0, xmmword [0x408700]
movups xmmword [ebp - 0xb2], xmm0
movaps xmm0, xmmword [0x4078b0]
movups xmmword [ebp - 0xa2], xmm0
mov word [ebp - 0x92], 0x3c
mov edx, ebx
mov dword [ebp - 0x5c], edx
cmp edx, 0x40
jae 0x40b6e9
movsx ecx, byte [ebp - 0xd2]
and ecx, 0x8000000f
jns 0x40b6d6
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0xd1]
sub al, cl
mov byte [ebp + edx - 0xd1], al
inc edx
jmp 0x40b6ba
mov byte [ebp - 0x91], bl
lea eax, [ebp - 0xd1]
push eax
lea ecx, [ebp - 0x88]
call fcn.0040bc98
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov esi, ebx
mov dword [ebp - 0x34], esi
push 0xf
pop edi
mov dword [ebp - 0x30], edi
mov byte [ebp - 0x44], bl
mov ecx, ebx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x54], ebx
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x60], edx
mov eax, edx
dec edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x60], edx
test eax, eax
je 0x40b8e4
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x1c], eax
inc eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x4c]
mov ecx, eax
cmp dword [ecx + 0x14], 0x10
jb 0x40b754
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1c]
mov al, byte [ecx + eax]
mov ecx, dword [ebp - 0x24]
mov byte [ebp + ecx - 0x28], al
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 3
jne 0x40b72c
movzx ecx, byte [ebp - 0x28]
mov eax, ecx
shr eax, 2
mov byte [ebp - 0x2c], al
movzx edx, byte [ebp - 0x27]
mov eax, edx
shr eax, 4
and cl, 3
shl cl, 4
add al, cl
mov byte [ebp - 0x2b], al
movzx ecx, byte [ebp - 0x26]
mov eax, ecx
shr eax, 6
and dl, 0xf
shl dl, 2
add al, dl
mov byte [ebp - 0x2a], al
and cl, 0x3f
mov byte [ebp - 0x29], cl
mov edx, ebx
mov dword [ebp - 0x24], edx
cmp edx, 4
jge 0x40b8d7
lea ecx, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
cmovae ecx, dword [ebp - 0x88]
movzx eax, byte [ebp + edx - 0x2c]
mov cl, byte [eax + ecx]
mov byte [ebp - 0x15], cl
cmp esi, edi
jae 0x40b7ee
lea eax, [esi + 1]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x44]
cmp edi, 0x10
cmovae eax, dword [ebp - 0x44]
mov byte [eax + esi], cl
mov byte [eax + esi + 1], bl
jmp 0x40b8c8
mov eax, 0x7fffffff
sub eax, esi
cmp eax, 1
jb 0x40bc18
lea ecx, [esi + 1]
or ecx, 0xf
mov dword [ebp - 0x1c], ecx
mov eax, 0x7fffffff
cmp ecx, eax
jbe 0x40b814
mov ecx, eax
jmp 0x40b830
mov edx, edi
shr edx, 1
sub eax, edx
cmp edi, eax
jbe 0x40b825
mov ecx, 0x7fffffff
jmp 0x40b830
lea eax, [edi + edx]
mov dword [ebp - 0x20], eax
cmp ecx, eax
cmovb ecx, eax
mov dword [ebp - 0x20], ecx
inc ecx
call fcn.0040b096
mov ecx, eax
mov dword [ebp - 0x1c], ecx
lea eax, [esi + 1]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x30], eax
push esi
cmp edi, 0x10
jb 0x40b8a8
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x20], eax
push eax
push ecx
call fcn.004454d0
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov cl, byte [ebp - 0x15]
mov byte [eax + esi], cl
mov byte [esi + eax + 1], bl
inc edi
mov dword [ebp - 0x64], edi
cmp edi, 0x1000
jb 0x40b897
add edi, 0x23
mov dword [ebp - 0x64], edi
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bc1d
mov eax, ecx
jmp 0x40b89a
mov eax, dword [ebp - 0x20]
push edi
push eax
call fcn.0044488d
pop ecx
pop ecx
mov eax, dword [ebp - 0x1c]
jmp 0x40b8c2
lea eax, [ebp - 0x44]
push eax
push ecx
call fcn.004454d0
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov cl, byte [ebp - 0x15]
mov byte [eax + esi], cl
mov byte [esi + eax + 1], bl
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x24]
inc edx
mov dword [ebp - 0x24], edx
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
jmp 0x40b7a9
mov ecx, ebx
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x58]
jmp 0x40b72c
test ecx, ecx
je 0x40bb82
mov dword [ebp - 0x48], ecx
cmp ecx, 3
jge 0x40b8fb
mov byte [ebp + ecx - 0x28], bl
inc ecx
jmp 0x40b8ec
movzx ecx, byte [ebp - 0x28]
mov eax, ecx
shr eax, 2
mov byte [ebp - 0x2c], al
movzx edx, byte [ebp - 0x27]
mov eax, edx
shr eax, 4
and cl, 3
shl cl, 4
add al, cl
mov byte [ebp - 0x2b], al
movzx ecx, byte [ebp - 0x26]
mov eax, ecx
shr eax, 6
and dl, 0xf
shl dl, 2
add al, dl
mov byte [ebp - 0x2a], al
and cl, 0x3f
mov byte [ebp - 0x29], cl
mov edx, ebx
mov dword [ebp - 0x48], edx
mov ecx, dword [ebp - 0x24]
lea eax, [ecx + 1]
cmp edx, eax
jge 0x40ba6d
lea ecx, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
cmovae ecx, dword [ebp - 0x88]
movzx eax, byte [ebp + edx - 0x2c]
mov cl, byte [eax + ecx]
mov byte [ebp - 0x15], cl
cmp esi, edi
jae 0x40b984
lea eax, [esi + 1]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x44]
cmp edi, 0x10
cmovae eax, dword [ebp - 0x44]
mov byte [eax + esi], cl
mov byte [eax + esi + 1], bl
jmp 0x40ba5e
mov eax, 0x7fffffff
sub eax, esi
cmp eax, 1
jb 0x40bc18
lea ecx, [esi + 1]
or ecx, 0xf
mov dword [ebp - 0x58], ecx
mov eax, 0x7fffffff
cmp ecx, eax
jbe 0x40b9aa
mov ecx, eax
jmp 0x40b9c6
mov edx, edi
shr edx, 1
sub eax, edx
cmp edi, eax
jbe 0x40b9bb
mov ecx, 0x7fffffff
jmp 0x40b9c6
lea eax, [edi + edx]
mov dword [ebp - 0x4c], eax
cmp ecx, eax
cmovb ecx, eax
mov dword [ebp - 0x1c], ecx
inc ecx
call fcn.0040b096
mov edx, eax
mov dword [ebp - 0x20], edx
lea eax, [esi + 1]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], ecx
push esi
cmp edi, 0x10
jb 0x40ba3e
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
push eax
push edx
call fcn.004454d0
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp - 0x15]
mov byte [eax + esi], cl
mov byte [eax + esi + 1], bl
inc edi
mov dword [ebp - 0x68], edi
cmp edi, 0x1000
jb 0x40ba2d
add edi, 0x23
mov dword [ebp - 0x68], edi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bc1d
mov eax, ecx
jmp 0x40ba30
mov eax, dword [ebp - 0x1c]
push edi
push eax
call fcn.0044488d
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
jmp 0x40ba58
lea eax, [ebp - 0x44]
push eax
push edx
call fcn.004454d0
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp - 0x15]
mov byte [eax + esi], cl
mov byte [eax + esi + 1], bl
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x48]
inc edx
mov dword [ebp - 0x48], edx
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
jmp 0x40b93a
mov eax, ecx
inc ecx
mov dword [ebp - 0x24], ecx
cmp eax, 3
jge 0x40bb82
cmp esi, edi
jae 0x40ba9d
lea eax, [esi + 1]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x44]
cmp edi, 0x10
cmovae eax, dword [ebp - 0x44]
mov byte [eax + esi], 0x3d
mov byte [eax + esi + 1], bl
jmp 0x40bb77
mov eax, 0x7fffffff
sub eax, esi
cmp eax, 1
jb 0x40bc18
lea ecx, [esi + 1]
or ecx, 0xf
mov dword [ebp - 0x8c], ecx
mov eax, 0x7fffffff
cmp ecx, eax
jbe 0x40bac6
mov ecx, eax
jmp 0x40bae5
mov edx, edi
shr edx, 1
sub eax, edx
cmp edi, eax
jbe 0x40bad7
mov ecx, 0x7fffffff
jmp 0x40bae5
lea eax, [edi + edx]
mov dword [ebp - 0x90], eax
cmp ecx, eax
cmovb ecx, eax
mov dword [ebp - 0x1c], ecx
inc ecx
call fcn.0040b096
mov dword [ebp - 0x20], eax
lea ecx, [esi + 1]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], ecx
push esi
cmp edi, 0x10
jb 0x40bb59
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], ecx
push ecx
push eax
call fcn.004454d0
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov byte [eax + esi], 0x3d
mov byte [eax + esi + 1], bl
inc edi
mov dword [ebp - 0x6c], edi
cmp edi, 0x1000
jb 0x40bb48
add edi, 0x23
mov dword [ebp - 0x6c], edi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bc1d
mov eax, ecx
jmp 0x40bb4b
mov eax, dword [ebp - 0x1c]
push edi
push eax
call fcn.0044488d
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
jmp 0x40bb71
lea ecx, [ebp - 0x44]
push ecx
push eax
call fcn.004454d0
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov byte [eax + esi], 0x3d
mov byte [eax + esi + 1], bl
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
jmp 0x40ba6d
mov esi, dword [ebp - 0x50]
mov dword [esi], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
lea eax, [ebp - 0x44]
push eax
mov ecx, esi
call fcn.0040bd60
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x40bbcd
inc ecx
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x44]
mov eax, edx
cmp ecx, 0x1000
jb 0x40bbc4
add ecx, 0x23
mov dword [ebp - 0x70], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bc1d
push ecx
push edx
call fcn.0044488d
pop ecx
pop ecx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], bl
lea ecx, [ebp - 0x88]
call fcn.0040bc59
mov eax, esi
jmp 0x40bc09
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret
call fcn.0040b0d4
call fcn.00448974
int3