Function at 0x1003d500
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10066f0a
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x10078014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x98], ebx
mov eax, dword [ebx]
mov dword [0x1007a4f4], eax
mov eax, dword [ebx + 0x150]
cmp eax, dword [ebx + 0x154]
je 0x1003dc5d
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
call esi
sub eax, dword [ebx + 0x168]
mov ecx, eax
sbb edx, dword [ebx + 0x16c]
call fcn.100643e0
cvtsd2ss xmm0, xmm0
divss xmm0, dword [0x1006f0d4]
comiss xmm0, dword [0x1006f088]
jb 0x1003dc5d
call esi
mov dword [ebx + 0x168], eax
xor edi, edi
mov dword [ebx + 0x16c], edx
mov eax, 0x4ec4ec4f
mov ecx, dword [ebx + 0x154]
sub ecx, dword [ebx + 0x150]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1003d5ec
xor esi, esi
mov ecx, dword [ebx + 0x150]
mov eax, dword [esi + ecx + 0x1c]
test eax, eax
jle 0x1003d5c7
dec eax
mov dword [esi + ecx + 0x1c], eax
mov ecx, dword [ebx + 0x154]
mov eax, 0x4ec4ec4f
sub ecx, dword [ebx + 0x150]
inc edi
imul ecx
add esi, 0x68
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1003d5b4
mov eax, dword [ebx + 0x148]
cmp eax, dword [ebx + 0x14c]
jbe 0x1003d604
mov dword [ebx + 0x148], 1
mov eax, dword [ebx + 0x15c]
cmp eax, dword [ebx + 0x160]
je 0x1003dc5d
mov eax, dword [ebx + 0x148]
shl eax, 2
mov dword [ebp - 0xc4], eax
lea edi, [eax - 4]
mov dword [ebp - 0x9c], edi
cmp edi, eax
jge 0x1003dc5d
imul esi, edi, 0x68
lea eax, [ebx + 0x10]
mov dword [ebp - 0xa0], esi
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [ebx + 0x160]
add eax, 0x18
sub ecx, dword [ebx + 0x15c]
mov dword [ebp - 0xa4], eax
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
dec eax
add eax, edx
cmp edi, eax
jg 0x1003dc5d
mov ecx, dword [ebx + 0x15c]
cmp byte [esi + ecx + 0x60], 2
jne 0x1003dc3b
mov eax, dword [esi + ecx + 0x1c]
test eax, eax
jle 0x1003dc3b
dec eax
mov dword [esi + ecx + 0x1c], eax
mov eax, dword [ebx + 0x15c]
cmp dword [esi + eax + 0x1c], 0
jl 0x1003db5e
lea eax, [ebp - 0x2f]
mov word [ebp - 0x30], 0x7a
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x2f], 0
call fcn.100029c0
mov dword [ebp - 4], 0
mov eax, dword [ebx + 0x15c]
mov edi, dword [esi + eax + 0x1c]
mov eax, 0xc22e4507
imul edi
add edx, edi
sar edx, 0x10
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
call fcn.10039f70
call fcn.100642b1
mov esi, eax
mov edx, edi
imul ecx, esi, 0x15180
mov eax, 0x91a2b3c5
mov dword [ebp - 0xc0], esi
sub edx, ecx
mov ecx, 0x18
mul edx
shr edx, 0xb
mov eax, edx
xor edx, edx
div ecx
mov ecx, edx
call fcn.10039fb0
call fcn.100642b1
mov ebx, eax
lea ecx, [esi + esi*2]
mov edx, edi
mov dword [ebp - 0x94], ebx
mov eax, 0x88888889
lea esi, [ebx + ecx*8]
imul ecx, esi, 0xe10
sub edx, ecx
mov ecx, 0x3c
mul edx
shr edx, 5
mov eax, edx
xor edx, edx
div ecx
mov ecx, edx
call fcn.10039fb0
call fcn.100642b1
mov ecx, esi
mov dword [ebp - 0xc8], eax
shl ecx, 4
sub ecx, esi
mov esi, eax
lea ecx, [esi + ecx*4]
mov edx, ecx
shl edx, 4
sub edx, ecx
mov ecx, 0x3c
shl edx, 2
sub edi, edx
xor edx, edx
mov eax, edi
div ecx
mov ecx, edx
call fcn.10039fb0
call fcn.100642b1
mov ecx, dword [ebp - 0xc0]
mov edi, eax
test ecx, ecx
je 0x1003d847
cmp ecx, 0xa
jae 0x1003d7c5
mov dl, 0x49
mov byte [ebp - 0x42], 0
mov al, 0x79
mov byte [ebp - 0x44], dl
xor al, dl
mov byte [ebp - 0x42], 0
mov byte [ebp - 0x43], al
lea eax, [ebp - 0x43]
jmp 0x1003d7d2
mov word [ebp - 0x34], 0x40
lea eax, [ebp - 0x33]
mov byte [ebp - 0x33], 0
push ecx
push eax
mov ch, 0x2f
mov byte [ebp - 0x7a], 0
mov al, 0xa
mov byte [ebp - 0x80], ch
mov dl, al
mov byte [ebp - 0x7a], 0
mov ah, 0x15
xor al, ch
xor ah, ch
mov byte [ebp - 0x7f], al
mov cl, 0x5c
mov byte [ebp - 0x7b], ah
sub esp, 0x18
lea eax, [ebp - 0x7f]
xor cl, ch
mov bl, 0x5a
xor dl, ch
mov byte [ebp - 0x7e], cl
xor bl, ch
mov byte [ebp - 0x7d], dl
mov ecx, esp
mov byte [ebp - 0x7c], bl
push eax
call fcn.100029c0
lea eax, [ebp - 0xbc]
push eax
call fcn.100061b0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.1000b610
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0
call fcn.10002380
mov ebx, dword [ebp - 0x94]
test ebx, ebx
je 0x1003d906
cmp ebx, 0xa
jae 0x1003d86d
mov cl, 0x4b
mov byte [ebp - 0x46], 0
mov al, 0x7b
mov byte [ebp - 0x48], cl
xor al, cl
mov byte [ebp - 0x46], 0
mov byte [ebp - 0x47], al
lea eax, [ebp - 0x47]
jmp 0x1003d87a
mov word [ebp - 0x38], 0x71
lea eax, [ebp - 0x37]
mov byte [ebp - 0x37], 0
push ebx
push eax
mov ch, 0x77
mov byte [ebp - 0x82], 0
mov al, 0x52
mov byte [ebp - 0x88], ch
mov dl, al
mov byte [ebp - 0x82], 0
mov ah, 0x4d
xor al, ch
xor ah, ch
mov byte [ebp - 0x87], al
mov cl, 4
mov byte [ebp - 0x83], ah
sub esp, 0x18
lea eax, [ebp - 0x87]
xor cl, ch
mov bl, 2
xor dl, ch
mov byte [ebp - 0x86], cl
xor bl, ch
mov byte [ebp - 0x85], dl
mov ecx, esp
mov byte [ebp - 0x84], bl
push eax
call fcn.100029c0
lea eax, [ebp - 0xbc]
push eax
call fcn.100061b0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.1000b610
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0
call fcn.10002380
jmp 0x1003d934
mov bl, 0x5d
mov byte [ebp - 0x64], 0
mov al, 0x6d
mov byte [ebp - 0x68], bl
mov cl, al
mov byte [ebp - 0x64], 0
xor al, bl
xor cl, bl
mov dl, 0x67
mov byte [ebp - 0x67], al
lea eax, [ebp - 0x67]
mov byte [ebp - 0x66], cl
xor dl, bl
lea ecx, [ebp - 0x28]
push eax
mov byte [ebp - 0x65], dl
call fcn.1000b5d0
test esi, esi
je 0x1003d9f3
cmp esi, 0xa
jae 0x1003d95a
mov cl, 0x57
mov byte [ebp - 0x4a], 0
mov al, 0x67
mov byte [ebp - 0x4c], cl
xor al, cl
mov byte [ebp - 0x4a], 0
mov byte [ebp - 0x4b], al
lea eax, [ebp - 0x4b]
jmp 0x1003d967
mov word [ebp - 0x3c], 0x6d
lea eax, [ebp - 0x3b]
mov byte [ebp - 0x3b], 0
push esi
push eax
mov ch, 0x11
mov byte [ebp - 0x8a], 0
mov al, 0x34
mov byte [ebp - 0x90], ch
mov dl, al
mov byte [ebp - 0x8a], 0
mov ah, 0x2b
xor al, ch
xor ah, ch
mov byte [ebp - 0x8f], al
mov cl, 0x62
mov byte [ebp - 0x8b], ah
sub esp, 0x18
lea eax, [ebp - 0x8f]
xor cl, ch
mov bl, 0x64
xor dl, ch
mov byte [ebp - 0x8e], cl
xor bl, ch
mov byte [ebp - 0x8d], dl
mov ecx, esp
mov byte [ebp - 0x8c], bl
push eax
call fcn.100029c0
lea eax, [ebp - 0xbc]
push eax
call fcn.100061b0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.1000b610
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0
call fcn.10002380
jmp 0x1003da21
mov bl, 0x23
mov byte [ebp - 0x6c], 0
mov al, 0x13
mov byte [ebp - 0x70], bl
mov cl, al
mov byte [ebp - 0x6c], 0
xor al, bl
xor cl, bl
mov dl, 0x19
mov byte [ebp - 0x6f], al
lea eax, [ebp - 0x6f]
mov byte [ebp - 0x6e], cl
xor dl, bl
lea ecx, [ebp - 0x28]
push eax
mov byte [ebp - 0x6d], dl
call fcn.1000b5d0
test edi, edi
je 0x1003dabe
cmp edi, 0xa
jae 0x1003da47
mov cl, 0x44
mov byte [ebp - 0x4e], 0
mov al, 0x74
mov byte [ebp - 0x50], cl
xor al, cl
mov byte [ebp - 0x4e], 0
mov byte [ebp - 0x4f], al
lea eax, [ebp - 0x4f]
jmp 0x1003da54
mov word [ebp - 0x40], 0x3d
lea eax, [ebp - 0x3f]
mov byte [ebp - 0x3f], 0
push edi
push eax
mov ah, 0x29
mov byte [ebp - 0x73], 0
mov al, 0xc
mov byte [ebp - 0x78], ah
mov dl, al
mov byte [ebp - 0x73], 0
mov cl, 0x5a
xor al, ah
xor cl, ah
mov byte [ebp - 0x77], al
sub esp, 0x18
mov byte [ebp - 0x76], cl
mov bl, 0x5c
xor dl, ah
xor bl, ah
mov byte [ebp - 0x75], dl
lea eax, [ebp - 0x77]
mov byte [ebp - 0x74], bl
mov ecx, esp
push eax
call fcn.100029c0
lea eax, [ebp - 0xbc]
push eax
call fcn.100061b0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.1000b610
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0
call fcn.10002380
jmp 0x1003dae5
mov dl, 0x6f
mov byte [ebp - 0x51], 0
mov al, 0x5f
mov byte [ebp - 0x54], dl
mov cl, al
mov byte [ebp - 0x51], 0
xor al, dl
xor cl, dl
mov byte [ebp - 0x53], al
lea eax, [ebp - 0x53]
mov byte [ebp - 0x52], cl
lea ecx, [ebp - 0x28]
push eax
call fcn.1000b5d0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0xbc]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.100029c0
mov ecx, dword [ebp - 0xa4]
lea edx, [ebp - 0xbc]
mov byte [ebp - 4], 5
mov ecx, dword [ecx]
call fcn.10014f70
mov edx, dword [ebp - 0xa8]
cmp edx, 0x10
jb 0x1003db2f
mov ecx, dword [ebp - 0xbc]
inc edx
push 1
call fcn.10002790
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x1003db4c
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.10002790
add esp, 4
mov edi, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0x98]
mov eax, dword [ebx + 0x15c]
cmp dword [esi + eax + 0x1c], 0
jne 0x1003dc3b
mov byte [ebp - 0x60], 0x3f
mov al, 0x68
xor al, byte [ebp - 0x60]
mov cl, 0x5e
xor cl, byte [ebp - 0x60]
mov bh, 0x11
mov byte [ebp - 0x5f], al
mov dl, 0x56
mov byte [ebp - 0x5e], cl
mov ah, dl
mov cl, byte [ebp - 0x60]
mov ch, 0x51
mov byte [ebp - 0x29], bh
xor ah, cl
mov al, byte [ebp - 0x29]
xor ch, cl
xor al, cl
mov byte [ebp - 0x2a], bh
mov byte [ebp - 0x57], al
mov dh, 0x58
mov al, byte [ebp - 0x2a]
mov bl, 0x4b
xor al, cl
mov byte [ebp - 0x5b], ah
mov byte [ebp - 0x56], al
xor dl, cl
xor bl, cl
mov byte [ebp - 0x5a], ch
xor dh, cl
mov byte [ebp - 0x55], 0
xor bh, cl
mov byte [ebp - 0x5d], dl
lea eax, [ebp - 0x5f]
mov byte [ebp - 0x5c], bl
push eax
lea ecx, [ebp - 0xbc]
mov byte [ebp - 0x59], dh
mov byte [ebp - 0x58], bh
mov byte [ebp - 0x55], 0
call fcn.100029c0
mov eax, dword [ebp - 0xa4]
lea edx, [ebp - 0xbc]
mov dword [ebp - 4], 6
mov ecx, dword [eax]
call fcn.10014f70
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xa8]
cmp edx, 0x10
jb 0x1003dc1a
mov ecx, dword [ebp - 0xbc]
inc edx
push 1
call fcn.10002790
add esp, 4
mov ebx, dword [ebp - 0x98]
mov dword [ebp - 0xa8], 0xf
mov dword [ebp - 0xac], 0
mov byte [ebp - 0xbc], 0
mov eax, dword [ebp - 0xa4]
inc edi
add esi, 0x68
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xa0], esi
cmp edi, dword [ebp - 0xc4]
jl 0x1003d650
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10063065
mov esp, ebp
pop ebp
ret