Function at 0x418560
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0xc]
shr ebp, 0xb
mov esi, dword [esi]
movzx edx, byte [esi + 1]
add esi, 2
and ebp, 1
je 0x418651
cmp edx, 0xc0
jl 0x418651
test dl, 0x20
jne 0x4185a4
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x418651
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x4185cb
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x418651
test dl, 8
jne 0x4185ee
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 0x418651
test dl, 4
jne 0x41861d
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 0x418651
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 0x418662
mov eax, dword [esp + 0x10]
mov dword [eax], 1
jmp 0x4186a1
lea ecx, [edx - 0x30]
push ebx
push edi
cmp ecx, 0x4a
ja 0x41867a
movsx ebx, word [ecx*2 + 0x48b0d8]
test ebx, ebx
je 0x4186c7
mov edx, ebx
mov edi, dword [esp + 0x18]
cmp edx, 0xfffffff4
jne 0x41869f
cmp byte [esi + 1], 0x7b
jne 0x41869f
lea eax, [esi + 2]
push eax
call fcn.0041e5b0
add esp, 4
test eax, eax
jne 0x41869f
mov dword [edi], 0x25
pop edi
pop ebx
test dword [esp + 0x18], 0x20000000
je 0x418bd9
lea eax, [edx + 0xb]
cmp eax, 5
mov eax, dword [esp + 0xc]
mov dword [eax], esi
ja 0x418bdf
pop esi
lea eax, [edx - 0x17]
pop ebp
ret
cmp ecx, 0x48
ja case.0x4186d7.10
movzx eax, byte [ecx + 0x418c08]
jmp dword [eax*4 + 0x418be4]
mov ecx, dword [esp + 0x18]
mov edi, ecx
mov dword [ecx], 0x25
jmp 0x41867e
test dword [esp + 0x20], 0x2000000
je 0x4187bb
movzx eax, byte [esi + 1]
test byte [eax + 0x48beb0], 8
je 0x41867a
movzx ecx, byte [esi + 2]
test byte [ecx + 0x48beb0], 8
je 0x41867a
movzx edi, byte [esi + 3]
test byte [edi + 0x48beb0], 8
je 0x41867a
movzx ebx, byte [esi + 4]
test byte [ebx + 0x48beb0], 8
je 0x41867a
mov edx, eax
cmp edx, 0x61
jl 0x418748
sub edx, 0x20
xor eax, eax
cmp edx, 0x41
setge al
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
cmp ecx, 0x61
jl 0x418761
sub ecx, 0x20
xor eax, eax
cmp ecx, 0x41
setge al
shl edx, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, ecx
cmp edi, 0x61
jl 0x41877f
sub edi, 0x20
xor eax, eax
cmp edi, 0x41
setge al
shl edx, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, edi
cmp ebx, 0x61
jl 0x41879d
sub ebx, 0x20
xor eax, eax
cmp ebx, 0x41
setge al
shl edx, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, ebx
add esi, 4
jmp 0x41867a
mov edi, dword [esp + 0x18]
mov dword [edi], 0x25
jmp 0x41867e
test dword [esp + 0x20], 0x2000000
mov edi, dword [esp + 0x18]
jne 0x41867e
mov dword [edi], 0x25
jmp 0x41867e
cmp dword [esp + 0x24], 0
jne 0x41867a
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x418932
cmp al, 0x27
je 0x418932
cmp al, 0x7b
jne 0x418847
mov al, byte [esi + 2]
lea ecx, [esi + 2]
test al, al
je 0x41882b
cmp al, 0x7d
je 0x418833
cmp al, 0x2d
je 0x418823
cmp al, 0x30
jb 0x418833
cmp al, 0x39
ja 0x418833
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x418813
mov edi, 1
inc esi
jmp 0x418849
mov al, byte [ecx]
test al, al
je 0x41882b
cmp al, 0x7d
je 0x41882b
mov edx, 0xffffffe4
jmp 0x41869f
xor edi, edi
cmp byte [esi + 1], 0x2d
lea eax, [esi + 1]
jne 0x41885b
mov ebx, 1
mov esi, eax
jmp 0x41885d
xor ebx, ebx
mov al, byte [esi + 1]
lea ecx, [esi + 1]
xor edx, edx
cmp al, 0x30
jb 0x4188d8
lea esp, [esp]
cmp al, 0x39
ja 0x418894
cmp edx, 0xccccccc
ja 0x4188d3
mov esi, ecx
lea ecx, [edx - 6]
lea ecx, [edx + ecx*4]
movzx eax, byte [esi]
lea edx, [eax + ecx*2]
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x418870
cmp edx, 0x7fffffff
jbe 0x4188d8
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jb 0x418997
lea ebx, [ebx]
cmp al, 0x39
ja 0x418997
mov esi, ecx
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x4188b0
mov edi, dword [esp + 0x18]
mov dword [edi], 0x3d
jmp 0x41867e
or edx, 0xffffffff
jmp 0x41889c
test edi, edi
je 0x4188f1
inc esi
cmp byte [esi], 0x7d
je 0x4188f1
mov edi, dword [esp + 0x18]
mov dword [edi], 0x39
jmp 0x41867e
test edx, edx
jne 0x418904
mov eax, dword [esp + 0x18]
mov dword [eax], 0x3a
jmp 0x41869f
test ebx, ebx
je 0x418924
mov eax, dword [esp + 0x1c]
cmp edx, eax
jle 0x41891f
mov edi, dword [esp + 0x18]
mov dword [edi], 0xf
jmp 0x41867e
sub eax, edx
lea edx, [eax + 1]
mov eax, 0xffffffdd
sub eax, edx
mov edx, eax
jmp 0x41867a
mov edx, 0xffffffe5
jmp 0x41869f
cmp dword [esp + 0x24], 0
jne 0x4189c0
mov al, byte [esi + 1]
mov edx, ecx
lea ecx, [esi + 1]
mov edi, esi
cmp al, 0x30
jb 0x418975
cmp al, 0x39
ja 0x418975
cmp edx, 0xccccccc
ja 0x4189a6
mov esi, ecx
lea ecx, [edx - 6]
lea ecx, [edx + ecx*4]
movzx eax, byte [esi]
lea edx, [eax + ecx*2]
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x418951
cmp edx, 0x7fffffff
jbe 0x4189ab
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jb 0x418997
cmp al, 0x39
ja 0x418997
mov esi, ecx
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x418987
mov edi, dword [esp + 0x18]
mov dword [edi], 0x3d
jmp 0x41867e
or edx, 0xffffffff
jmp 0x41897d
cmp edx, 0xa
jl 0x418924
cmp edx, dword [esp + 0x1c]
jle 0x418924
mov esi, edi
movzx edx, byte [esi]
cmp edx, 0x38
jl case.0x4186d7.0
dec esi
xor edx, edx
jmp 0x41869f
sub edx, 0x30
mov al, byte [esi + 1]
inc ebx
cmp al, 0x30
jb 0x4189ef
cmp al, 0x37
ja 0x4189ef
movzx eax, byte [esi + 1]
inc esi
add edx, 0xfffffffa
lea edx, [eax + edx*8]
cmp ebx, 2
jl 0x4189d3
mov edi, dword [esp + 0x18]
test ebp, ebp
jne 0x41867e
cmp edx, 0xff
jle 0x41867e
mov dword [edi], 0x33
jmp 0x41867e
test dword [esp + 0x20], 0x2000000
je 0x418a7f
movzx eax, byte [esi + 1]
test byte [eax + 0x48beb0], 8
je 0x41867a
movzx ecx, byte [esi + 2]
test byte [ecx + 0x48beb0], 8
je 0x41867a
mov edx, eax
cmp edx, 0x61
jl 0x418a48
sub edx, 0x20
xor eax, eax
cmp edx, 0x41
setge al
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
cmp ecx, 0x61
jl 0x418a61
sub ecx, 0x20
xor eax, eax
cmp ecx, 0x41
setge al
shl edx, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, ecx
add esi, 2
jmp 0x41867a
cmp byte [esi + 1], 0x7b
jne 0x418b3c
movzx ecx, byte [esi + 2]
lea edi, [esi + 2]
xor edx, edx
test byte [ecx + 0x48beb0], 8
je 0x418aec
jmp 0x418aa0
inc edi
test edx, edx
jne 0x418aaa
cmp ecx, 0x30
je 0x418adc
cmp ecx, 0x61
jl 0x418ab2
sub ecx, 0x20
xor eax, eax
cmp ecx, 0x41
setge al
shl edx, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
mov eax, ebp
add edx, ecx
neg eax
sbb eax, eax
and eax, 0x10ff00
add eax, 0xff
cmp edx, eax
jg 0x418b13
movzx ecx, byte [edi]
test byte [ecx + 0x48beb0], 8
jne 0x418aa0
test edx, edx
js 0x418b16
mov ecx, dword [esp + 0x18]
cmp byte [edi], 0x7d
jne 0x418b3c
test ebp, ebp
je 0x418b0c
lea eax, [edx - 0xd800]
cmp eax, 0x7ff
ja 0x418b0c
mov dword [ecx], 0x49
mov esi, edi
jmp 0x41867a
or edx, 0xffffffff
movzx eax, byte [edi]
test byte [eax + 0x48beb0], 8
je 0x418b30
movzx eax, byte [edi + 1]
inc edi
test byte [eax + 0x48beb0], 8
jne 0x418b22
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0x22
jmp 0x418af0
xor edx, edx
mov edi, edi
movzx eax, byte [esi + 1]
inc ebx
test byte [eax + 0x48beb0], 8
je 0x41867a
movzx ecx, byte [esi + 1]
inc esi
cmp ecx, 0x61
jl 0x418b5f
sub ecx, 0x20
xor eax, eax
cmp ecx, 0x41
setge al
shl edx, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, ecx
cmp ebx, 2
jl 0x418b40
jmp 0x41867a
movzx edx, byte [esi + 1]
inc esi
test edx, edx
jne 0x418b97
mov eax, dword [esp + 0x18]
mov dword [eax], 2
jmp 0x41869f
cmp edx, 0x7f
jle 0x418bab
mov edi, dword [esp + 0x18]
mov dword [edi], 0x44
jmp 0x41867e
lea eax, [edx - 0x61]
cmp eax, 0x19
ja 0x418bb6
sub edx, 0x20
xor edx, 0x40
jmp 0x41867a
mov eax, dword [esp + 0x20]
test al, 0x40
je 0x41867a
mov edi, dword [esp + 0x18]
mov dword [edi], 3
jmp 0x41867e
mov eax, dword [esp + 0xc]
mov dword [eax], esi
pop esi
mov eax, edx
pop ebp
ret