Function at 0x1007b420
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [ecx]
shr eax, 0xb
push edi
mov edi, edx
movzx edx, byte [esi + 1]
and eax, 1
add esi, 2
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
test eax, eax
je 0x1007b51f
cmp edx, 0xc0
jl 0x1007b51f
test dl, 0x20
jne 0x1007b472
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x1007b51f
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x1007b499
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x1007b51f
test dl, 8
jne 0x1007b4bc
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x1007b51f
test dl, 4
jne 0x1007b4eb
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x1007b51f
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
dec esi
test edx, edx
jne 0x1007b52f
mov dword [edi], 1
jmp 0x1007b92d
lea ecx, [edx - 0x30]
push ebx
cmp ecx, 0x4a
ja 0x1007b90f
movsx ebx, word [ecx*2 + 0x100e0578]
test ebx, ebx
je 0x1007b54f
mov edx, ebx
jmp 0x1007b90f
cmp ecx, 0x48
ja case.0x1007b55f.10
movzx eax, byte [ecx + 0x1007bb04]
jmp dword [eax*4 + 0x1007bae0]
test dword [ebp + 0xc], 0x2000000
je case.0x1007b55f.28
movzx ecx, byte [esi + 1]
mov eax, 0x400
mov dword [ebp - 4], ecx
test word [ecx*2 + 0x100a1bf0], ax
je 0x1007b90f
movzx ebx, byte [esi + 2]
test word [ebx*2 + 0x100a1bf0], ax
je 0x1007b90f
movzx ecx, byte [esi + 3]
mov dword [ebp - 0x10], ecx
test word [ecx*2 + 0x100a1bf0], ax
je 0x1007b90f
lea ecx, [esi + 4]
mov dword [ebp - 0x18], ecx
movzx ecx, byte [ecx]
mov dword [ebp - 0x14], ecx
test word [ecx*2 + 0x100a1bf0], ax
je 0x1007b90f
mov edx, dword [ebp - 4]
cmp edx, 0x61
jl 0x1007b5d9
sub edx, 0x20
mov ecx, 0x37
cmp edx, 0x41
mov eax, ecx
mov esi, 0x30
cmovl eax, esi
sub edx, eax
cmp ebx, 0x61
jl 0x1007b5f5
sub ebx, 0x20
cmp ebx, 0x41
mov eax, ecx
cmovl eax, esi
shl edx, 4
sub edx, eax
add edx, ebx
mov ebx, dword [ebp - 0x10]
cmp ebx, 0x61
jl 0x1007b60f
sub ebx, 0x20
cmp ebx, 0x41
mov eax, ecx
cmovl eax, esi
shl edx, 4
sub edx, eax
mov eax, dword [ebp - 0x14]
add edx, ebx
cmp eax, 0x61
jl 0x1007b629
sub eax, 0x20
cmp eax, 0x41
cmovl ecx, esi
mov esi, dword [ebp - 0x18]
shl edx, 4
sub edx, ecx
mov ecx, dword [ebp - 8]
add edx, eax
test ecx, ecx
mov eax, 0xff
mov ebx, 0x10ffff
cmovne eax, ebx
cmp edx, eax
jle 0x1007b65a
mov dword [edi], 0x4c
jmp 0x1007b90f
test ecx, ecx
je 0x1007b90f
lea eax, [edx - 0xd800]
cmp eax, 0x7ff
ja 0x1007b90f
mov dword [edi], 0x49
jmp 0x1007b90f
test dword [ebp + 0xc], 0x2000000
jne 0x1007b90f
mov dword [edi], 0x25
jmp 0x1007b90f
cmp dword [ebp + 0x10], 0
jne 0x1007b90f
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x1007b7d3
cmp al, 0x27
je 0x1007b7d3
cmp al, 0x7b
jne 0x1007b6f5
mov al, byte [esi + 2]
lea ecx, [esi + 2]
test al, al
je 0x1007b6d9
cmp al, 0x7d
je 0x1007b6e1
cmp al, 0x2d
je 0x1007b6d1
cmp al, 0x30
jb 0x1007b6e1
cmp al, 0x39
ja 0x1007b6e1
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x1007b6c1
mov ebx, 1
inc esi
jmp 0x1007b6f7
mov al, byte [ecx]
test al, al
je 0x1007b6d9
cmp al, 0x7d
je 0x1007b6d9
mov edx, 0xffffffe4
jmp 0x1007b92c
xor ebx, ebx
cmp byte [esi + 1], 0x2d
lea eax, [esi + 1]
jne 0x1007b70b
mov dword [ebp - 8], 1
mov esi, eax
jmp 0x1007b712
mov dword [ebp - 8], 0
mov al, byte [esi + 1]
lea ecx, [esi + 1]
xor edx, edx
cmp al, 0x30
jb 0x1007b784
mov edi, edi
cmp al, 0x39
ja 0x1007b744
cmp edx, 0xccccccc
ja 0x1007b77f
mov esi, ecx
lea ecx, [edx - 6]
movzx eax, byte [esi]
lea ecx, [edx + ecx*4]
lea edx, [eax + ecx*2]
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x1007b720
cmp edx, 0x7fffffff
jbe 0x1007b784
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jb 0x1007b838
lea ebx, [ebx]
cmp al, 0x39
ja 0x1007b838
mov esi, ecx
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x1007b760
mov dword [edi], 0x3d
jmp 0x1007b90f
or edx, 0xffffffff
jmp 0x1007b74c
test ebx, ebx
je 0x1007b799
inc esi
cmp byte [esi], 0x7d
je 0x1007b799
mov dword [edi], 0x39
jmp 0x1007b90f
test edx, edx
jne 0x1007b7a8
mov dword [edi], 0x3a
jmp 0x1007b92c
cmp dword [ebp - 8], 0
je 0x1007b7c5
mov eax, dword [ebp + 8]
cmp edx, eax
jle 0x1007b7c0
mov dword [edi], 0xf
jmp 0x1007b90f
sub eax, edx
lea edx, [eax + 1]
mov eax, 0xffffffdd
sub eax, edx
mov edx, eax
jmp 0x1007b90f
mov edx, 0xffffffe5
jmp 0x1007b92c
cmp dword [ebp + 0x10], 0
jne 0x1007b85d
mov al, byte [esi + 1]
mov edx, ecx
lea ecx, [esi + 1]
mov dword [ebp - 0x18], esi
cmp al, 0x30
jb 0x1007b816
cmp al, 0x39
ja 0x1007b816
cmp edx, 0xccccccc
ja 0x1007b843
mov esi, ecx
lea ecx, [edx - 6]
movzx eax, byte [esi]
lea ecx, [edx + ecx*4]
lea edx, [eax + ecx*2]
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x1007b7f2
cmp edx, 0x7fffffff
jbe 0x1007b848
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jb 0x1007b838
cmp al, 0x39
ja 0x1007b838
mov esi, ecx
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x1007b828
mov dword [edi], 0x3d
jmp 0x1007b90f
or edx, 0xffffffff
jmp 0x1007b81e
cmp edx, 0xa
jl 0x1007b7c5
cmp edx, dword [ebp + 8]
jle 0x1007b7c5
mov esi, dword [ebp - 0x18]
movzx edx, byte [esi]
cmp edx, 0x38
jl case.0x1007b55f.0
dec esi
xor edx, edx
jmp 0x1007b92c
sub edx, 0x30
mov al, byte [esi + 1]
inc ebx
cmp al, 0x30
jb 0x1007b88c
cmp al, 0x37
ja 0x1007b88c
movzx eax, byte [esi + 1]
inc esi
add edx, 0xfffffffa
lea edx, [eax + edx*8]
cmp ebx, 2
jl 0x1007b870
cmp dword [ebp - 8], 0
jne 0x1007b90f
cmp edx, 0xff
jle 0x1007b90f
mov dword [edi], 0x33
jmp 0x1007b90f
test dword [ebp + 0xc], 0x2000000
je 0x1007b954
movzx ecx, byte [esi + 1]
mov eax, 0x400
test word [ecx*2 + 0x100a1bf0], ax
je 0x1007b90f
movzx edi, byte [esi + 2]
lea ebx, [esi + 2]
mov dword [ebp - 0x18], ebx
test word [edi*2 + 0x100a1bf0], ax
je 0x1007b90c
mov edx, ecx
cmp edx, 0x61
jl 0x1007b8e0
sub edx, 0x20
mov ecx, 0x37
cmp edx, 0x41
mov eax, ecx
mov ebx, 0x30
cmovl eax, ebx
sub edx, eax
cmp edi, 0x61
jl 0x1007b8fc
sub edi, 0x20
mov esi, dword [ebp - 0x18]
cmp edi, 0x41
cmovl ecx, ebx
shl edx, 4
sub edx, ecx
add edx, edi
mov edi, dword [ebp - 4]
cmp edx, 0xfffffff4
jne 0x1007b92c
cmp byte [esi + 1], 0x7b
jne 0x1007b92c
lea ecx, [esi + 2]
call fcn.1007b3c0
test eax, eax
jne 0x1007b92c
mov dword [edi], 0x25
pop ebx
test dword [ebp + 0xc], 0x20000000
je 0x1007bad3
lea eax, [edx + 0xb]
cmp eax, 5
mov eax, dword [ebp - 0xc]
mov dword [eax], esi
ja 0x1007bad8
pop edi
lea eax, [edx - 0x17]
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [esi + 1], 0x7b
mov ecx, 0x400
mov dword [ebp - 0x18], 0x30
jne 0x1007ba3e
movzx ecx, byte [esi + 2]
lea edi, [esi + 2]
mov eax, 0x400
xor edx, edx
test word [ecx*2 + 0x100a1bf0], ax
je 0x1007ba3a
mov dword [ebp - 0x14], 0x10ffff
lea ecx, [ecx]
inc edi
test edx, edx
jne 0x1007b99a
cmp ecx, 0x30
je 0x1007b9cb
cmp ecx, 0x61
jl 0x1007b9a2
sub ecx, 0x20
cmp ecx, 0x41
mov eax, 0x37
cmovl eax, dword [ebp - 0x18]
shl edx, 4
sub edx, eax
add edx, ecx
cmp dword [ebp - 8], 0
mov eax, 0xff
cmovne eax, dword [ebp - 0x14]
cmp edx, eax
jg 0x1007ba09
mov eax, 0x400
movzx ecx, byte [edi]
test word [ecx*2 + 0x100a1bf0], ax
jne 0x1007b990
test edx, edx
js 0x1007ba0c
mov ecx, 0x400
cmp byte [edi], 0x7d
jne 0x1007ba3e
cmp dword [ebp - 8], 0
je 0x1007ba02
lea eax, [edx - 0xd800]
cmp eax, 0x7ff
ja 0x1007ba02
mov eax, dword [ebp - 4]
mov dword [eax], 0x49
mov esi, edi
jmp 0x1007b90c
or edx, 0xffffffff
movzx eax, byte [edi]
mov ecx, 0x400
test word [eax*2 + 0x100a1bf0], cx
je 0x1007ba2f
mov edi, edi
movzx eax, byte [edi + 1]
inc edi
test word [eax*2 + 0x100a1bf0], cx
jne 0x1007ba20
mov eax, dword [ebp - 4]
mov dword [eax], 0x22
jmp 0x1007b9e1
mov ecx, eax
jmp 0x1007b9e1
xor edx, edx
movzx eax, byte [esi + 1]
inc ebx
test word [eax*2 + 0x100a1bf0], cx
je 0x1007b90c
movzx ecx, byte [esi + 1]
inc esi
cmp ecx, 0x61
jl 0x1007ba60
sub ecx, 0x20
cmp ecx, 0x41
mov eax, 0x37
mov edi, 0x30
cmovl eax, edi
shl edx, 4
sub edx, eax
add edx, ecx
mov ecx, 0x400
cmp ebx, 2
jl 0x1007ba40
jmp 0x1007b90c
movzx edx, byte [esi + 1]
inc esi
test edx, edx
jne 0x1007ba9a
mov dword [edi], 2
jmp 0x1007b92c
cmp edx, 0x7f
jle 0x1007baaa
mov dword [edi], 0x44
jmp 0x1007b90f
lea eax, [edx - 0x61]
cmp eax, 0x19
ja 0x1007bab5
sub edx, 0x20
xor edx, 0x40
jmp 0x1007b90f
mov eax, dword [ebp + 0xc]
test al, 0x40
je 0x1007b90f
mov dword [edi], 3
jmp 0x1007b90f
mov eax, dword [ebp - 0xc]
mov dword [eax], esi
pop edi
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret