Function at 0x40d260
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x20]
push esi
push edi
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 1
push eax
mov esi, ecx
mov dword [ebp - 0x20], 0
push ebx
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 1
call fcn.0040ec40
test eax, eax
js 0x4517b3
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 8], edx
cmp ecx, 9
jne 0x40d314
test dl, dl
jne 0x40d327
xor al, al
mov byte [ebp - 1], al
mov byte [ebp - 3], al
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x451939
cmp ecx, 9
jne 0x40d6c9
mov edx, dword [ebx + 4]
mov edi, dword [ebp - 0x10]
mov eax, dword [edx + edi*4]
cmp word [eax + 8], 0
jne 0x451bd0
cmp dword [eax], 5
jne 0x451bd0
mov eax, dword [edx + edi*4 + 4]
inc edi
movzx eax, word [eax + 8]
mov ebx, eax
cmp ax, 0x7f
je 0x40d547
cmp byte [ebp - 1], 0
jne 0x40d32b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ecx - 1]
cmp eax, 0xa
ja case.0x40d31c.5
jmp dword [eax*4 + 0x40d730]
test edx, edx
je case.0x40d31c.5
mov al, 1
jmp 0x40d2b9
xor ecx, ecx
mov dword [ebp - 0x20], 0x49cc4c
xor esi, esi
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], esi
cmp bx, 0x7f
je 0x40d3c3
lea esp, [esp]
mov ebx, dword [edx + edi*4]
lea eax, [edi]
lea edi, [eax + 1]
cmp ecx, esi
je 0x40d4b8
push 0xc
call fcn.0041fddb
movzx ecx, word [ebx + 8]
mov esi, eax
mov eax, ecx
add esp, 4
mov word [esi + 8], cx
mov cx, word [ebx + 0xa]
mov word [esi + 0xa], cx
cmp ax, 0x3f
jle 0x40d485
cmp ax, 0x10
je 0x4519f7
cmp ax, 0x20
je 0x451a06
mov eax, dword [ebx]
mov dword [esi], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [eax + ecx*4], esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x18], ecx
mov edx, dword [eax + 4]
mov eax, dword [edx + edi*4]
cmp word [eax + 8], 0x7f
jne 0x40d350
mov edi, dword [edx + edi*4]
cmp ecx, esi
je 0x451a0f
push 0xc
call fcn.0041fddb
movzx ecx, word [edi + 8]
mov esi, eax
mov edx, ecx
add esp, 4
mov word [esi + 8], cx
mov cx, word [edi + 0xa]
mov word [esi + 0xa], cx
cmp dx, 0x3f
jle 0x451a69
cmp dx, 0x10
je 0x451a9c
cmp dx, 0x20
je 0x451aab
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
push dword [ebp + 0xc]
mov dword [eax + ecx*4], esi
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
inc dword [ebp - 0x18]
push eax
call fcn.0040bec0
xor esi, esi
mov dword [ebp - 0x20], 0x49cc4c
cmp dword [ebp - 0x18], esi
jbe 0x40d46a
dec ebp
hlt
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x40d45d
movzx eax, word [edi + 8]
cmp ax, 0x3f
jle 0x40d512
push 0xc
push edi
call fcn.0041fdcd
mov eax, dword [ebp - 0x1c]
add esp, 8
mov dword [eax + esi*4], 0
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x40d437
push dword [ebp - 0x1c]
mov dword [ebp - 0x18], 0
call fcn.0041fe14
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp ax, 0x30
jl 0x40d388
push 0x10
call fcn.0041fddb
mov edx, dword [ebx]
add esp, 4
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
jmp 0x40d39e
lea eax, [esi + esi]
cmp eax, 8
jae 0x40d4c5
mov eax, 8
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041fe0b
mov esi, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x40d50a
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x40d50a
shl ecx, 2
push ecx
push eax
push esi
call fcn.00420e20
add esp, 0xc
push dword [ebp - 0x1c]
call fcn.0041fe14
add esp, 4
mov dword [ebp - 0x1c], esi
jmp 0x40d360
cmp ax, 0x30
jl 0x40d44f
mov ebx, dword [edi]
test ebx, ebx
je 0x40d44f
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov eax, dword [ebx + 0xc]
cmp dword [eax], 0
je 0x451ab4
push 0x10
push ebx
call fcn.0041fdcd
add esp, 8
jmp 0x40d44f
mov edi, dword [ebp + 0xc]
xor ebx, ebx
mov cl, byte [ebp - 1]
xor ch, ch
xor dl, dl
mov dword [ebp - 8], ebx
mov dword [ebp - 0x50], ebx
mov eax, dword [edi]
mov byte [ebp - 2], ch
mov byte [ebp + 0xb], dl
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x38], 0
lea ebx, [eax - 1]
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x4c], ebx
test cl, cl
jne 0x40d6c1
xor eax, eax
mov dword [ebp + 0xc], eax
mov esi, dword [edi]
lea ebx, [esi + 1]
mov dword [edi], ebx
cmp esi, dword [0x4d23a0]
jg 0x40d5ff
test esi, esi
jle 0x40d5ff
shl esi, 4
add esi, dword [0x4d23dc]
je 0x40d5ff
test dl, dl
jne 0x40d5ff
mov edx, dword [esi + 4]
mov eax, dword [edx]
cmp word [eax + 8], 0
je 0x40d5d1
mov dl, byte [ebp + 0xb]
jmp 0x40d59e
mov eax, dword [eax]
cmp eax, 8
jne 0x40d68c
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x451b54
lea eax, [ebx - 1]
mov dl, 1
mov byte [ebp + 0xb], dl
mov dword [ebp - 0x48], eax
test cl, cl
jne 0x40d59e
test ch, ch
jne 0x40d59e
mov dword [ebp - 8], eax
jmp 0x40d59e
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov dword [edi], eax
cmp byte [ebx + 0x16d], 0
jne 0x451bb5
push 0x38
call fcn.0041fddb
mov ecx, dword [ebp - 0x44]
mov esi, eax
mov eax, dword [ebp - 0x4c]
add esp, 4
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [esi + 8], eax
lea eax, [ebp - 0x40]
mov dword [esi + 0xc], ecx
lea ecx, [esi + 0x10]
mov dword [esi], 0
push eax
mov dword [ecx + 8], 0
call fcn.004100e0
lea eax, [ebp - 0x30]
mov dword [esi + 0x28], 0
lea ecx, [esi + 0x20]
push eax
call fcn.004100e0
sub eax, 4
je 0x40d6e8
mov dl, byte [ebp + 0xb]
sub eax, 2
jne 0x40d6da
cmp dword [ebp + 0xc], 0
jne 0x40d59e
cmp ch, 1
je 0x451ba4
mov ch, 1
mov byte [ebp - 2], ch
test cl, cl
jne 0x40d59e
mov dword [ebp - 8], ebx
jmp 0x40d59e
mov dword [ebp - 8], eax
jmp 0x40d599
add ecx, 0xfffffffb
cmp ecx, 0xa
ja 0x40d2d3
jmp 0x451956
sub eax, 1
jne 0x40d59e
jmp 0x451ad0
mov esi, dword [esi + 8]
mov ebx, 1
cmp esi, ebx
jbe 0x40d5cc
jmp 0x40d700
mov eax, dword [edx + ebx*4]
cmp word [eax + 8], 0
je 0x40d717
inc ebx
cmp ebx, esi
jb 0x40d700
mov dl, byte [ebp + 0xb]
jmp 0x40d59e
cmp dword [eax], 5
jne 0x40d70a
mov eax, dword [edx + ebx*4 + 4]
cmp word [eax + 8], 0x7f
jne 0x40d70a
inc dword [ebp + 0xc]
jmp 0x40d5cc
adc eax, dword [ebp]
push 0xa30040d1
adc al, 0x45
add byte [ebx + 0x14], ah
inc ebp
rol dword [eax], 1
mov dword [0x63004514], eax
adc al, 0x45
add cl, ch
adc al, 0x45
add cl, ch
adc al, 0x45
add byte [eax - 0x2f], ch
inc eax
add cl, ch
adc al, 0x45
add byte [eax - 0x42ffbaec], dh
adc al, 0x45
add al, cl
adc al, 0x45
add byte [edx - 0x2f], bh
inc eax
add byte [edx], bh
adc eax, 0x15040045
cmp dl, byte [0x15040045]
inc ebp
add byte [ebp + edx + 0x45], bh
add byte [ebp + edx + 0x45], bh
add byte [edx - 0x2f], bh
inc eax
add byte [ebp + edx + 0x45], bh
add byte [esi + 0x15], al
inc ebp
add byte [edx + 0x15], dl
inc esi
adc eax, 0x15520045
inc ebp
add byte [ebp + edx + 0x45], bl
add byte [eax], ah
mov edx, dword [eax]
call 0xe885e980
mov eax, dword [0xede840d1]
adc eax, 0xd1a1e810
inc eax
call 0xe855a2f8
mov edx, dword ss:[eax]
call 0xe855a342
jnp 0x451784
adc al, ch
jnp 0x451788
adc al, ch
arpl word [ebp + 0x75e80102], ax
call 0x36ba0e8f
mov eax, dword [esi + 0xc]
push dword [ebp - 0x3174fcf2]
cmp byte [eax], al
jne 0x45182e
push dword [esi]
call 0x3353fe64
push dword [ebp - 0x24]
add dword [edi + edi*8], 0x76
or al, 0xe8
in eax, 0xc0
jecxz 0x451836
lea eax, [ebp + 0x6a]
adc byte [esi - 0x18], dl
out 0xe5, eax
shl bl, 0xa
lea eax, [ebp - 0x39]
inc ebp
call 0x5dce24c6
push 0x10
push esi
call 0xe405fe1d
or cl, byte [ebp - 0x17ba38bb]
xchg byte [ecx + ecx*4], cl
pop ebp
loopne 0x4517cb
in al, dx
test al, 0x18
mov cx, word [edi + ecx + 0x4539000b]
sar bl, 0
invalid
sbb byte [ebp - 0x20], dh
call 0xe405fe1d
or cl, byte [ebp + 0x5bd8e945]
lea eax, [ebp - 0x10]
mov ecx, 0xff685e0
test ch, cl
mov edx, 0x4e0c4f2c
or al, ch
dec ecx
sub byte [edi + edi*8 - 0x17a91731], 0x7f
in eax, 0xc0
jecxz 0x4518a9
lea eax, [ebp - 0x17]
mov ch, 0x5b
lea eax, [ebp - 0x10]
mov ecx, 0xff685e0
test byte [edx - 0x2117a846], ch
test esi, esi
je 0xe89cd35b
fdivp st(7)
cld
scasd eax, dword es:[edi]
mov ch, 0xff
push 8
call dword [esi - 0x18]
pop ebp
in eax, 0xc0
jecxz 0x4518cb
invalid
lea eax, [ebp - 0x17]
xchg ebx, eax
jge 0xe1412422
add dword [ecx - 0x1a6efb90], ecx
push cs
xor edi, edi
jne 0x4518b2
cmp dword [esi - 0x171f8a05], 0x3d
in eax, 0xc0
jecxz 0x4518eb
lea eax, [ebp - 0x17]
jae 0x451921
jle 0x451873
inc ebp
clc
loopne 0x451929
cmp eax, 0x68030ec0
mov edx, 0xfbbee6e9
ror byte [esi], 3
push 0xbee6e9ba
sti
mov al, 0xe4
jns 0x45187b
in al, 0x79
sub cl, 0x5d
cmp edi, dword [esi - 0x75]
inc ebp
clc
loopne 0x45193f
jmp 0x8bc3545b
ror byte [esi], 3
push edx
mov edx, 0x2f2ae8e8
xor eax, eax
sti
lodsb al, byte [esi]
inc dword [edi + 0x5b]
lea eax, [ebp - 0x10]
inc ebp
invalid
mov ecx, 0xff685e0
test byte [edx + edi*4], bh
push edi
call 0xba421901
inc ebp
invalid
cld
mov ecx, 0xcfffac7f
jg 0x4518d1
dec edi
adc al, 0x56
call 0xe405fe1d
or cl, byte [ebp - 0x45da16bb]
push edi
call 0x4550dc18
in al, 0xc0
jecxz 0x451939
lea eax, [ebp - 0x17]
and eax, 0xdee857ba
ret 0x450b
inc ebp
in al, 0xf
test dh, al
mov ecx, 0x318d8be8
mov edx, 0x6dbd7ce9
loopne 0x451923
call 0xba76a6cf
jmp 0xe0b2d6c5
out dx, al
fucompp
fnstsw ax
test ah, 0x44
jnp 0xba1d307
pop esp
or ebx, dword [edx]
ret
sbb al, bl
add byte [ecx + 0x14e9f855], cl
jge 0xe94124bd
cmp dword [eax + 4], 0xc
cld
inc dword [ecx + 0x1a0b5cb9]
ret
push cs
inc esp
mov ecx, 0xa083e80a
cmp dword [ecx + 0x86affb4], eax
push dword [esi]
dec ebp
push dword [edx + 4]
call 0x3353fe64
push dword [ebp - 0x24]
cmp dword [esi - 0x141f8a05], 0x3e
rol byte [edx], 0xe8
push cs
pop ds
mov ecx, 0xdebee6e9
sti
jne 0x4519da
jmp 0x451a3a
retf 0x9de8
scasd eax, dword es:[edi]
sti
rol byte [edx], 0xe8
push cs
or bh, byte [ecx + 0x283e80a]
mov ecx, edx
xor eax, eax
sti
lodsb al, byte [esi]
invalid
call 0xe405fe1d
or cl, byte [ebp - 0x472316bb]
sbb byte [esi - 0x77], ah
inc ebp
or byte [esi], al
inc ebp
or byte [ebp + 0x1a], dh
inc esi
add al, 0xe9
lcall 0xdd03, 0xdde80ab9
push ds
jmp 0xfcd3f0
fdivr qword [edx + 0xbd9f708]
enter 0xffffffffffffbaec, 4
cmc
cld
inc edi
mov dword [ebp + 4], edi
mov dword [ebx], eax
xor ecx, ecx
mov word [eax + esi*2], cx
salc
jecxz 0x451af5
add al, 0x56
call 0x48421760
mov esp, esp
inc esi
xor al, 0xeb
and byte [ebx + 0xde84d], cl
jmp 0x326dbb4
shl ecx, 2
push ecx
push eax
push esi
call 0x3353a670
push dword [ebp + 0xc]
push dword [ebp - 0x1c]
call 0xe949fe64
mov esi, 0x75acfbbc
in al, 0xe9
mov ecx, 0x536afffb
cli
xor byte [edi], cl
mov word [ebx + 0x6a8be8b9], es
adc al, ch
popal
jecxz 0x451ac5
jecxz 0x451ab1
jmp 0xad40d770
lodsb al, byte [esi]
jne 0x451a98
jmp 0x40d41e
call 0x541fe2b
lea ecx, [esp]
add al, 0x8d
or al, 0x24
jne 0x451aeb
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
or cl, byte [ecx + 0x44a8b08]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
jmp 0xe84fd45c
call 0x64d2273
inc ebp
inc edi
jne 0x451b0e
inc esi
add al, 0xe9
arpl word [ecx + 0x7dde80a], di
fstp qword [esi]
jmp 0xfcd45e
add dword [edi + edi*8], 0x73
or al, 0xe8
add eax, 0xae3c0e3
lea eax, [ebp - 0x17]
sti
call 0xcc227ab
add byte [edx - 0x7d4f0ab], cl
sar ebx, 0xe8
mov byte [eax - 0x7bf0fe03], al
mov esi, 0x8447fcf5
leave
jne 0x4f71d5ee
or al, 0x43
jne 0x451b93
invalid
call 0xe3fb6c56
or cl, byte [ebp + 0x45ee856]
dec ebp
shr al, 0x14
mov al, byte [0x57bb5a0e]
call 0x8b49724b
dec ebp
invalid
leave
je 0x57d22aee
or ebx, dword [edi]
mov dword [ebp - 8], ebx
push cs
jne 0x451bfd
lea eax, [ebp + 0x48]
dec eax
call 0x70407936
jge 0x484c2707
mov dword [ebx + 0x4d8901f8], eax
dec ebp
invd
jmp 0xc8cd1ff2
pop es
dec eax
mov dword [ebx + 0x4d8901f8], eax
invd
jmp 0xc8cd2014
sbb ebx, edi
call dword [eax - 0x42]
cmp edi, dword [esi - 0x75]
inc ebp
mov edi, edi
add eax, dword [eax]
add byte [ebp - 0x17af4fbb], cl
inc ecx
or dword [ebx - 0x177c3932], 0xfffba7b9
test byte [ebp + 0x5fe90002], bl
mov edx, 0xce8bfffb
add ebp, dword [eax - 0x5f]
push 0
push 0xffffffffffffffbb
sbb ebx, edi
call dword [eax + 0x25]
mov bh, 0xfb
call dword [eax + 0x451856]
or edx, ebx
inc eax
add byte [ebx], cl
rol dword [eax], cl
prefetchnta byte [ebp]