Function at 0x100d5bc2
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
cmp dword [ebp + 8], 0
mov eax, ecx
push ebx
push esi
push edi
mov dword [esp + 0x38], eax
je 0x100d6161
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x100d6161
mov edi, dword [ebp + 0x10]
xor ebx, ebx
test edi, edi
jne 0x100d5bf4
mov dword [ecx], ebx
mov esi, dword [ecx]
mov ecx, eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], esi
call fcn.100d0638
mov edx, dword [ebp + 8]
test eax, eax
je 0x100d5c94
cmp edx, edi
jne 0x100d5c6f
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.100d12ed
test eax, eax
js 0x100d6166
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.100d132c
test eax, eax
js 0x100d6166
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x40]
sub eax, ebx
cmp dword [ebp + 0xc], eax
jl 0x100d5c65
mov ecx, eax
sub ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
cmp eax, ecx
jl 0x100d5c65
mov edx, dword [ebp + 8]
lea edx, [edx + ebx*2]
mov dword [ebp + 8], edx
jmp 0x100d5c9b
mov eax, 0x80004005
jmp 0x100d6166
push 6
pop ebx
test edi, edi
je 0x100d5c94
cmp esi, ebx
jae 0x100d5c89
xor eax, eax
mov word [edi], ax
mov eax, 0x8007007a
jmp 0x100d6166
mov esi, str.mhtml:
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
mov eax, dword [ebp + 0x18]
xor esi, esi
or dword [esp + 0x2c], 0xffffffff
and eax, 0x20
or dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x40], eax
mov byte [esp + 0x12], 0
test ecx, ecx
jle 0x100d60fb
mov dword [esp + 0x44], 0x25
movzx eax, word [edx + esi*2]
mov dword [esp + 0x20], eax
cmp eax, 0x3f
je 0x100d60c5
cmp ax, word [esp + 0x44]
jne 0x100d60e3
lea eax, [ecx - 2]
cmp esi, eax
jge 0x100d60df
movzx ecx, word [edx + esi*2 + 2]
call fcn.10080865
test eax, eax
je 0x100d60db
movzx ecx, word [edx + esi*2 + 4]
call fcn.10080865
test eax, eax
je 0x100d60db
movzx ecx, word [edx + esi*2 + 2]
call fcn.1008088d
movzx ecx, word [edx + esi*2 + 4]
shl al, 4
mov dword [esp + 0x1c], eax
call fcn.1008088d
mov ecx, dword [esp + 0x1c]
add cl, al
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x13], cl
je 0x100d60db
cmp cl, 0x7f
jbe 0x100d608c
cmp dword [esp + 0x40], 0
je 0x100d5ffa
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
cmove eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
cmove eax, ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffffa
cmp esi, eax
jg 0x100d5ffa
push 0x25
pop eax
cmp word [edx + esi*2 + 6], ax
jne 0x100d5ffa
movzx ecx, word [edx + esi*2 + 8]
call fcn.10080865
test eax, eax
je 0x100d5ff6
lea eax, [esi + 5]
movzx ecx, word [edx + eax*2]
mov dword [esp + 0x3c], eax
call fcn.10080865
test eax, eax
je 0x100d5ff6
movzx ecx, word [edx + esi*2 + 8]
call fcn.1008088d
shl al, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
movzx ecx, word [edx + eax*2]
call fcn.1008088d
mov ecx, dword [esp + 0x24]
add cl, al
mov dword [esp + 0x24], ecx
and cl, 0xc0
cmp cl, 0x80
mov ecx, dword [esp + 0x1c]
jne 0x100d5ffa
mov al, cl
and al, 0xe0
cmp al, 0xc0
je 0x100d5fd4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff7
cmp esi, eax
jg 0x100d5ffa
push 0x25
pop eax
cmp word [edx + esi*2 + 0xc], ax
jne 0x100d5ffa
movzx ecx, word [edx + esi*2 + 0xe]
call fcn.10080865
test eax, eax
je 0x100d5ff6
lea eax, [esi + 8]
movzx ecx, word [edx + eax*2]
mov dword [esp + 0x3c], eax
call fcn.10080865
test eax, eax
je 0x100d5ff6
movzx ecx, word [edx + esi*2 + 0xe]
call fcn.1008088d
shl al, 4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
movzx ecx, word [edx + eax*2]
call fcn.1008088d
mov ecx, dword [esp + 0x28]
add cl, al
mov dword [esp + 0x28], ecx
and cl, 0xc0
cmp cl, 0x80
mov ecx, dword [esp + 0x1c]
jne 0x100d5ffa
mov al, cl
and al, 0xf0
cmp al, 0xe0
je 0x100d5fa1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff4
cmp esi, eax
jg 0x100d5ffa
push 0x25
pop eax
cmp word [edx + esi*2 + 0x12], ax
jne 0x100d5ffa
movzx ecx, word [edx + esi*2 + 0x14]
call fcn.10080865
test eax, eax
je 0x100d5ff6
movzx ecx, word [edx + esi*2 + 0x16]
call fcn.10080865
test eax, eax
je 0x100d5ff6
movzx ecx, word [edx + esi*2 + 0x14]
call fcn.1008088d
movzx ecx, word [edx + esi*2 + 0x16]
shl al, 4
mov dword [esp + 0x3c], eax
call fcn.1008088d
mov ecx, dword [esp + 0x3c]
add cl, al
mov dword [esp + 0x3c], ecx
and cl, 0xc0
cmp cl, 0x80
mov ecx, dword [esp + 0x1c]
jne 0x100d5ffa
mov al, cl
and al, 0xf8
cmp al, 0xf0
jne 0x100d5ffa
lea eax, [ebx + 2]
cmp eax, dword [esp + 0x34]
jg 0x100d5ffa
mov eax, dword [esp + 0x24]
movzx ecx, al
mov eax, dword [esp + 0x1c]
shr ecx, 4
movzx eax, al
and ecx, 3
and eax, 7
shl eax, 2
or ecx, eax
dec ecx
cmp ecx, 0x10000
jge 0x100d5ff6
test edi, edi
je 0x100d5f74
cmp ebx, dword [esp + 0x34]
jge 0x100d5f74
mov eax, dword [esp + 0x24]
or ecx, 0xff60
and al, 0xf
shl ecx, 4
movzx eax, al
or cx, ax
mov al, byte [esp + 0x28]
shr al, 4
and al, 3
shl cx, 2
movzx eax, al
or cx, ax
mov word [edi + ebx*2], cx
mov eax, dword [esp + 0x28]
inc ebx
and al, 0xf
movzx ecx, al
mov eax, 0xff70
or cx, ax
mov eax, dword [esp + 0x3c]
and al, 0x3f
shl cx, 6
movzx eax, al
or cx, ax
add esi, 0xb
movzx eax, cx
jmp 0x100d60bf
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
and al, 0x3f
movzx ecx, al
mov eax, dword [esp + 0x1c]
movzx eax, al
shl ax, 6
or cx, ax
mov eax, dword [esp + 0x28]
and al, 0x3f
shl cx, 6
movzx eax, al
or cx, ax
movzx eax, cx
jmp 0x100d60bf
mov eax, dword [esp + 0x24]
and cl, 0x1f
mov esi, dword [esp + 0x3c]
and al, 0x3f
movzx ecx, cl
movzx eax, al
shl cx, 6
or cx, ax
movzx eax, cx
jmp 0x100d60bf
mov ecx, dword [esp + 0x1c]
and dword [esp + 0x40], 0
test byte [ebp + 0x18], 1
je 0x100d6063
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x1c], 0x4b0
je 0x100d60b9
cmp dword [eax + 0x1c], 0x4b1
je 0x100d60b9
push dword [eax + 4]
lea ecx, [esp + 0x18]
push 1
push ecx
mov ecx, dword [eax + 0x1c]
lea edx, [esp + 0x1f]
push 1
call fcn.10075b99
mov edx, dword [ebp + 8]
test eax, eax
je 0x100d60db
mov ax, word [esp + 0x14]
mov ecx, dword [esp + 0x18]
test ax, ax
je 0x100d60df
movzx eax, ax
add esi, 2
jmp 0x100d60e3
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
je 0x100d60db
mov ecx, dword [esp + 0x30]
cmp ecx, 0xffffffff
je 0x100d60db
or dword [esp + 0x2c], 0xffffffff
mov ebx, ecx
or dword [esp + 0x30], 0xffffffff
mov esi, eax
mov ecx, dword [esp + 0x18]
jmp 0x100d5cc6
test byte [ebp + 0x18], 8
jne 0x100d60db
cmp byte [esp + 0x12], 0
je 0x100d60ae
cmp cl, 0x3d
je 0x100d60a8
cmp cl, 0x26
je 0x100d60a8
cmp cl, 0x2b
jne 0x100d60ae
test byte [ebp + 0x18], 0x40
jne 0x100d60db
cmp cl, 0x23
jne 0x100d60b9
test byte [ebp + 0x18], 4
jne 0x100d60db
movzx eax, cl
add esi, 2
mov ecx, dword [esp + 0x18]
jmp 0x100d60e3
and dword [esp + 0x40], 0
or dword [esp + 0x2c], 0xffffffff
or dword [esp + 0x30], 0xffffffff
mov byte [esp + 0x12], 1
jmp 0x100d60e3
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
test edi, edi
je 0x100d60f1
cmp ebx, dword [esp + 0x34]
jge 0x100d60f1
mov word [edi + ebx*2], ax
inc esi
inc ebx
cmp esi, ecx
jl 0x100d5cc6
mov esi, dword [esp + 0x34]
mov eax, esi
mov ecx, dword [esp + 0x38]
sub eax, ebx
mov dword [esp + 0x40], eax
call fcn.100d0638
test eax, eax
je 0x100d6138
test edi, edi
je 0x100d611d
lea eax, [edi + ebx*2]
jmp 0x100d611f
xor eax, eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x3c]
push eax
call fcn.100d132c
test eax, eax
js 0x100d6166
mov eax, dword [esp + 0x40]
jmp 0x100d613a
xor eax, eax
add ebx, eax
test edi, edi
je 0x100d614a
cmp ebx, esi
jg 0x100d614a
xor ecx, ecx
mov word [edi + ebx*2], cx
mov ecx, dword [ebp + 0x14]
xor eax, eax
mov dword [ecx], ebx
test edi, edi
jne 0x100d6158
inc eax
jmp 0x100d6166
cmp ebx, esi
jle 0x100d6166
jmp 0x100d5c7c
mov eax, 0x80004003
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14