Function at 0x10036450
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100931d0
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x100bb084]
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 - 0x68], ebx
mov eax, dword [ebx + 0x28]
test eax, eax
js 0x1003697b
push 0
lea eax, [ebp - 0x43]
mov word [ebp - 0x44], 0x67
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x43], 0
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.10004a40
mov dword [ebp - 4], 0
mov eax, 0xc22e4507
mov edi, dword [ebx + 0x28]
imul edi
add edx, edi
sar edx, 0x10
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
call fcn.1002bd60
call fcn.1005cbb1
mov esi, eax
mov edx, edi
imul ecx, esi, 0x15180
mov eax, 0x91a2b3c5
mov dword [ebp - 0x30], 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.10025280
call fcn.1005cbb1
mov ebx, eax
lea ecx, [esi + esi*2]
mov edx, edi
mov dword [ebp - 0x4c], 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.10025280
call fcn.1005cbb1
mov ecx, esi
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.10025280
call fcn.1005cbb1
mov edx, dword [ebp - 0x30]
mov edi, eax
test edx, edx
je 0x10036622
cmp edx, 0xa
jae 0x1003659c
mov al, 0x53
mov byte [ebp - 0x2a], 0
mov cl, 0x63
mov byte [ebp - 0x2c], al
xor cl, al
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], cl
lea eax, [ebp - 0x2b]
jmp 0x100365a9
mov word [ebp - 0x30], 0x12
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push edx
push eax
mov ch, 0x28
mov byte [ebp - 0x3a], 0
mov al, 0xd
mov byte [ebp - 0x40], ch
mov dl, al
mov byte [ebp - 0x3a], 0
mov ah, 0x12
xor al, ch
xor ah, ch
mov byte [ebp - 0x3f], al
mov cl, 0x5b
mov byte [ebp - 0x3b], ah
sub esp, 0x18
lea eax, [ebp - 0x3f]
xor cl, ch
mov bl, 0x5d
xor dl, ch
mov byte [ebp - 0x3e], cl
xor bl, ch
mov byte [ebp - 0x3d], dl
mov ecx, esp
mov byte [ebp - 0x3c], bl
push eax
call fcn.10004b40
lea eax, [ebp - 0x64]
push eax
call fcn.100043b0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.10008e20
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x50]
cmp eax, 0x10
jb 0x1003661f
inc eax
lea ecx, [ebp - 0x64]
push eax
push dword [ebp - 0x64]
call fcn.100048f0
mov ebx, dword [ebp - 0x4c]
test ebx, ebx
je 0x100366cd
cmp ebx, 0xa
jae 0x10036648
mov cl, 0xf
mov byte [ebp - 0x2a], 0
mov al, 0x3f
mov byte [ebp - 0x2c], cl
xor al, cl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10036655
mov word [ebp - 0x30], 0x1b
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push ebx
push eax
mov ch, 0x53
mov byte [ebp - 0x3a], 0
mov al, 0x76
mov byte [ebp - 0x40], ch
mov dl, al
mov byte [ebp - 0x3a], 0
mov ah, 0x69
xor al, ch
xor ah, ch
mov byte [ebp - 0x3f], al
mov cl, 0x20
mov byte [ebp - 0x3b], ah
sub esp, 0x18
lea eax, [ebp - 0x3f]
xor cl, ch
mov bl, 0x26
xor dl, ch
mov byte [ebp - 0x3e], cl
xor bl, ch
mov byte [ebp - 0x3d], dl
mov ecx, esp
mov byte [ebp - 0x3c], bl
push eax
call fcn.10004b40
lea eax, [ebp - 0x64]
push eax
call fcn.100043b0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.10008e20
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x50]
cmp eax, 0x10
jb 0x10036716
inc eax
lea ecx, [ebp - 0x64]
push eax
push dword [ebp - 0x64]
call fcn.100048f0
jmp 0x10036716
mov bl, 0x4d
mov byte [ebp - 0x34], 0
mov dl, 0x7d
mov byte [ebp - 0x38], bl
mov al, dl
mov byte [ebp - 0x34], 0
mov cl, 0x77
xor dl, bl
xor al, bl
mov byte [ebp - 0x37], dl
xor cl, bl
mov byte [ebp - 0x36], al
mov byte [ebp - 0x35], cl
test dl, dl
jne 0x100366f7
xor ecx, ecx
jmp 0x10036709
lea ecx, [ebp - 0x37]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10036700
sub ecx, edx
push ecx
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.10008cf0
test esi, esi
je 0x100367c1
cmp esi, 0xa
jae 0x1003673c
mov cl, 0x3c
mov byte [ebp - 0x2a], 0
mov al, 0xc
mov byte [ebp - 0x2c], cl
xor al, cl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x10036749
mov word [ebp - 0x30], 0x63
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push esi
push eax
mov ch, 0x18
mov byte [ebp - 0x3a], 0
mov al, 0x3d
mov byte [ebp - 0x40], ch
mov dl, al
mov byte [ebp - 0x3a], 0
mov ah, 0x22
xor al, ch
xor ah, ch
mov byte [ebp - 0x3f], al
mov cl, 0x6b
mov byte [ebp - 0x3b], ah
sub esp, 0x18
lea eax, [ebp - 0x3f]
xor cl, ch
mov bl, 0x6d
xor dl, ch
mov byte [ebp - 0x3e], cl
xor bl, ch
mov byte [ebp - 0x3d], dl
mov ecx, esp
mov byte [ebp - 0x3c], bl
push eax
call fcn.10004b40
lea eax, [ebp - 0x64]
push eax
call fcn.100043b0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.10008e20
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x50]
cmp eax, 0x10
jb 0x10036807
inc eax
lea ecx, [ebp - 0x64]
push eax
push dword [ebp - 0x64]
call fcn.100048f0
jmp 0x10036807
mov bl, 0x29
mov byte [ebp - 0x34], 0
mov dl, 0x19
mov byte [ebp - 0x38], bl
mov al, dl
mov byte [ebp - 0x34], 0
mov cl, 0x13
xor dl, bl
xor al, bl
mov byte [ebp - 0x37], dl
xor cl, bl
mov byte [ebp - 0x36], al
mov byte [ebp - 0x35], cl
test dl, dl
jne 0x100367eb
xor ecx, ecx
jmp 0x100367fa
lea ecx, [ebp - 0x37]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100367f1
sub ecx, edx
push ecx
lea eax, [ebp - 0x37]
push eax
lea ecx, [ebp - 0x28]
call fcn.10008cf0
test edi, edi
je 0x100368ab
cmp edi, 0xa
jae 0x1003682d
mov cl, 1
mov byte [ebp - 0x2a], 0
mov al, 0x31
mov byte [ebp - 0x2c], cl
xor al, cl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], al
lea eax, [ebp - 0x2b]
jmp 0x1003683a
mov word [ebp - 0x30], 0x4c
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x2f], 0
push edi
push eax
mov ah, 0x31
mov byte [ebp - 0x47], 0
mov al, 0x14
mov byte [ebp - 0x4c], ah
mov dl, al
mov byte [ebp - 0x47], 0
mov cl, 0x42
xor al, ah
xor cl, ah
mov byte [ebp - 0x4b], al
sub esp, 0x18
mov byte [ebp - 0x4a], cl
mov bl, 0x44
xor dl, ah
xor bl, ah
mov byte [ebp - 0x49], dl
lea eax, [ebp - 0x4b]
mov byte [ebp - 0x48], bl
mov ecx, esp
push eax
call fcn.10004b40
lea eax, [ebp - 0x64]
push eax
call fcn.100043b0
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.10008e20
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x50]
cmp eax, 0x10
jb 0x100368ea
inc eax
lea ecx, [ebp - 0x64]
push eax
push dword [ebp - 0x64]
call fcn.100048f0
jmp 0x100368ea
mov dl, 0x6e
mov byte [ebp - 0x29], 0
mov cl, 0x5e
mov byte [ebp - 0x2c], dl
mov al, cl
mov byte [ebp - 0x29], 0
xor cl, dl
xor al, dl
mov byte [ebp - 0x2b], cl
mov byte [ebp - 0x2a], al
test cl, cl
jne 0x100368ce
xor ecx, ecx
jmp 0x100368dd
lea ecx, [ebp - 0x2b]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100368d4
sub ecx, edx
push ecx
lea eax, [ebp - 0x2b]
push eax
lea ecx, [ebp - 0x28]
call fcn.10008cf0
cmp dword [ebp - 0x14], 0x10
lea edx, [ebp - 0x28]
mov dword [ebp - 0x50], 0xf
cmovae edx, dword [ebp - 0x28]
mov dword [ebp - 0x54], 0
mov byte [ebp - 0x64], 0
cmp byte [edx], 0
jne 0x10036910
xor ecx, ecx
jmp 0x1003691e
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10036915
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x64]
call fcn.10004a40
mov eax, dword [ebp - 0x68]
mov byte [ebp - 4], 5
mov esi, dword [eax + 0x18]
test esi, esi
je 0x1003694f
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1003694f
lea eax, [ebp - 0x64]
mov ecx, esi
push eax
call dword [0x100ad8f4]
mov eax, dword [ebp - 0x50]
cmp eax, 0x10
jb 0x10036964
inc eax
lea ecx, [ebp - 0x64]
push eax
push dword [ebp - 0x64]
call fcn.100048f0
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x100369a4
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.100048f0
jmp 0x100369a4
jg 0x100369a4
mov esi, dword [ebx]
mov byte [ebx + 0x2c], 0
mov dword [ebx + 0x28], 0
test esi, esi
je 0x100369a4
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100369a4
push eax
mov ecx, esi
call dword [0x100ad890]
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.1005baa0
mov esp, ebp
pop ebp
ret