Function at 0x10108160
Capabilities:
Encode data using base64

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x58
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
push ebx
push ebp
push esi
xor esi, esi
push edi
cmp edx, eax
jae 0x10108bd6
mov ebx, dword [esp + 0x70]
mov ebp, 0x101298c6
push eax
push edx
lea eax, [esp + 0x50]
push eax
call fcn.10108f00
mov edx, eax
add esp, 0xc
mov dword [esp + 0x24], edx
test edx, edx
je case.0x10108736.7
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jae 0x10108bc7
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.10108f00
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je case.0x10108736.7
mov edi, dword [esp + 0x60]
lea eax, [esp + 0x28]
push edi
push dword [esp + 0x60]
push eax
call fcn.10108f00
add esp, 0xc
test eax, eax
je case.0x10108736.7
push edi
push eax
lea eax, [esp + 0x40]
push eax
call fcn.10108f00
add esp, 0xc
test eax, eax
je case.0x10108736.7
cmp byte [esp + 0x36], 0
jne case.0x10108736.7
movzx ecx, byte [esp + 0x35]
mov dword [esp + 0x1c], ecx
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x10108736.7
movzx eax, byte [eax + 0x10108c14]
jmp dword [eax*4 + 0x10108bec]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
cmp eax, 1
je 0x10108245
xor ebp, ebp
jmp 0x1010866c
cmp byte [ecx], 0
mov eax, str.TRUE
mov ecx, str.FALSE
cmove eax, ecx
push eax
call dword [0x1013d00c]
add esp, 4
mov ebp, eax
jmp 0x1010866c
mov edi, dword [esp + 0x30]
mov eax, edi
mov edx, dword [esp + 0x2c]
sub eax, edx
jne 0x1010827b
xor ebp, ebp
jmp 0x1010866c
cmp eax, 4
jbe 0x10108291
push edi
push edx
call fcn.10108ff0
add esp, 8
mov ebp, eax
jmp 0x1010866c
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, edi
jb 0x10108297
cmp ecx, 0xa
mov eax, 0x10128f60
push ecx
cmovb eax, ebp
push eax
push str._s_lx
call fcn.100d94d0
add esp, 0xc
mov ebp, eax
jmp 0x1010866c
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
jbe 0x101082d9
xor ebp, ebp
jmp 0x1010866c
push ecx
push eax
call fcn.10108ff0
add esp, 8
mov ebp, eax
jmp 0x1010866c
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.10108ff0
add esp, 8
mov ebp, eax
jmp 0x1010866c
push 0x101298c6
call dword [0x1013d00c]
add esp, 4
mov ebp, eax
jmp 0x1010866c
push 1
push dword [esp + 0x34]
push dword [esp + 0x34]
call fcn.10107810
add esp, 0xc
mov ebp, eax
jmp 0x1010866c
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
mov edx, dword [esp + 0x30]
cmp ecx, edx
jae 0x1010834d
nop dword [eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x1010834d
inc ecx
cmp ecx, edx
jb 0x10108340
lea edi, [ebx + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x1010836d
sub eax, 2
je 0x10108372
mov ebx, dword [esp + 0x70]
xor ebp, ebp
mov dword [esp + 0x14], ebp
jmp 0x10108670
mov edi, 0x10128fa0
cmp ecx, edx
jb 0x10108385
mov ebx, dword [esp + 0x70]
xor ebp, ebp
mov dword [esp + 0x14], ebp
jmp 0x10108670
cmp byte [ecx], 0x5a
jne 0x10108396
mov ecx, 0x10128fa4
mov edx, 0x10128fa7
jmp 0x10108397
inc ecx
push ecx
sub edx, ecx
lea eax, [ebx + 8]
push edx
push edi
push eax
lea eax, [ebx + 6]
push eax
lea eax, [ebx + 4]
push eax
lea eax, [ebx + 2]
push eax
xor eax, eax
cmp byte [ebx], 0x35
push ebx
setl al
add eax, 0x13
push eax
push str._u_.2s__.2s__.2s__.2s:_.2s:_.2s__.s
call fcn.100d94d0
mov ebx, dword [esp + 0x98]
add esp, 0x28
mov ebp, eax
mov dword [esp + 0x14], eax
jmp 0x10108670
mov ebp, dword [esp + 0x2c]
mov edi, 0x101298c6
mov ebx, dword [esp + 0x30]
mov ecx, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
cmp ecx, ebx
jae 0x10108400
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x10108400
inc ecx
cmp ecx, ebx
jb 0x101083f3
mov eax, ecx
mov byte [esp + 0x12], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x1010843a
sub eax, 1
je 0x10108431
sub eax, 1
je 0x1010842a
mov ebx, dword [esp + 0x70]
xor ebp, ebp
mov dword [esp + 0x14], ebp
jmp 0x10108670
mov al, byte [ecx - 2]
mov byte [esp + 0x12], al
mov al, byte [ecx - 1]
mov byte [esp + 0x11], al
jmp 0x1010843f
mov byte [esp + 0x11], 0x30
xor edx, edx
mov eax, ecx
cmp ecx, ebx
jae 0x101084aa
mov bl, byte [ecx]
mov byte [esp + 0x13], bl
cmp bl, 0x2e
mov ebx, dword [esp + 0x18]
je 0x1010845d
cmp byte [esp + 0x13], 0x2c
jne 0x1010848f
inc ecx
nop
inc eax
cmp eax, ebx
jae 0x10108471
mov dl, byte [eax]
cmp dl, 0x30
jl 0x10108471
cmp dl, 0x39
jle 0x10108460
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x1010848f
lea edi, [ecx - 1]
add edi, edx
nop
cmp byte [edi], 0x30
jne 0x1010848b
dec edi
sub edx, 1
jne 0x10108480
mov edi, dword [esp + 0x14]
cmp eax, ebx
jae 0x101084aa
cmp byte [eax], 0x5a
jne 0x101084a4
mov eax, str._GMT
mov ebx, 0x10128f70
jmp 0x101084aa
mov edi, 0x1012c9f4
inc eax
push eax
sub ebx, eax
test edx, edx
push ebx
push edi
push ecx
push edx
mov ecx, 0x101298c6
mov eax, 0x1012b6c4
cmove eax, ecx
push eax
movsx eax, byte [esp + 0x29]
push eax
movsx eax, byte [esp + 0x2e]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push str._.4s__.2s__.2s__.2s:_.2s:_c_c_s_.s_s_.s
call fcn.100d94d0
mov ebx, dword [esp + 0xa8]
add esp, 0x38
mov ebp, eax
mov dword [esp + 0x14], eax
jmp 0x10108670
mov ebx, dword [esp + 0x30]
add ecx, 0xfffffff4
mov edi, dword [esp + 0x2c]
mov ebp, 1
sub ebx, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], 0
cmp ecx, 0x12
ja case.0x1010852b.13
movzx eax, byte [ecx + 0x10108c44]
jmp dword [eax*4 + 0x10108c34]
mov ebp, 2
jmp 0x1010853e
mov ebp, 4
mov dword [esp + 0x18], ebp
xor edx, edx
mov eax, ebx
div ebp
test edx, edx
jne case.0x1010852b.13
mov eax, ebx
div ebp
cmp eax, 0x3fffffff
ja case.0x1010852b.13
lea eax, [eax*4 + 1]
push eax
call dword [section..data]
mov ebp, eax
add esp, 4
test ebp, ebp
je case.0x1010852b.13
cmp dword [esp + 0x1c], 0xc
jne 0x1010859b
test ebx, ebx
je 0x10108590
push ebx
push edi
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + ebp], 0
mov eax, ebp
jmp 0x10108661
xor ebx, ebx
cmp edi, dword [esp + 0x30]
jae 0x10108590
mov eax, dword [esp + 0x18]
xor ecx, ecx
sub eax, 2
je 0x101085c2
sub eax, 2
jne 0x101085cb
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
add edi, 2
movzx eax, byte [edi]
shl ecx, 8
or ecx, eax
inc edi
movzx eax, byte [edi]
mov edx, 1
shl ecx, 8
inc edi
or ecx, eax
cmp ecx, 0x80
jb 0x10108639
cmp ecx, 0x800
jb 0x10108625
cmp ecx, 0x10000
jb 0x10108611
cmp ecx, 0x200000
jae 0x10108650
mov al, cl
mov edx, 2
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [ebx + ebp + 3], al
mov al, cl
or ecx, 0x20000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [ebx + ebp + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [ebx + ebp + 1], al
mov byte [ebx + ebp], cl
add ebx, edx
cmp edi, dword [esp + 0x30]
jb 0x101085a3
mov byte [ebx + ebp], 0
mov eax, ebp
jmp 0x10108661
push ebp
call dword [0x1013d004]
add esp, 4
mov eax, dword [esp + 0x14]
or ebx, 0xffffffff
xor ebp, ebp
test ebx, ebx
mov ebx, dword [esp + 0x70]
cmovns ebp, eax
mov dword [esp + 0x14], ebp
test ebp, ebp
je case.0x10108736.7
test esi, esi
je 0x101086d5
movsx eax, byte [ebp]
mov edi, ebp
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_isupper
add esp, 4
test eax, eax
je 0x101086a2
nop
movsx eax, byte [edi + 1]
inc edi
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_isupper
add esp, 4
test eax, eax
jne 0x10108690
cmp byte [edi], 0
jne 0x101086b3
sub edi, ebp
mov ecx, 0x10130818
cmp edi, 2
jle 0x101086b8
mov ecx, 0x1012b860
mov ebp, dword [esp + 0x6c]
sub ecx, esi
nop
cmp esi, ebx
jae 0x101086ca
mov al, byte [ecx + esi]
mov byte [esi + ebp], al
inc esi
cmp byte [ecx + esi], 0
jne 0x101086c0
mov ebp, dword [esp + 0x14]
cmp byte [ebp], 0
je 0x101086f8
mov ecx, ebp
mov ebp, dword [esp + 0x6c]
sub ecx, esi
cmp esi, ebx
jae 0x101086ed
mov al, byte [ecx + esi]
mov byte [esi + ebp], al
inc esi
cmp byte [ecx + esi], 0
jne 0x101086e3
mov ebp, dword [esp + 0x14]
push ebp
call dword [0x1013d004]
add esp, 4
cmp esi, ebx
jae 0x1010870e
mov eax, dword [esp + 0x6c]
mov byte [esi + eax], 0x3d
inc esi
cmp byte [esp + 0x46], 0
jne case.0x10108736.7
movzx ecx, byte [esp + 0x45]
mov dword [esp + 0x1c], ecx
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x10108736.7
movzx eax, byte [eax + 0x10108c80]
jmp dword [eax*4 + 0x10108c58]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
sub eax, ecx
cmp eax, 1
je 0x10108753
xor edx, edx
jmp 0x10108b77
cmp byte [ecx], 0
mov eax, str.TRUE
mov ecx, str.FALSE
cmove eax, ecx
push eax
call dword [0x1013d00c]
add esp, 4
mov edx, eax
jmp 0x10108b77
mov edi, dword [esp + 0x40]
mov eax, edi
mov edx, dword [esp + 0x3c]
sub eax, edx
jne 0x10108789
xor edx, edx
jmp 0x10108b77
cmp eax, 4
jbe 0x1010879f
push edi
push edx
call fcn.10108ff0
add esp, 8
mov edx, eax
jmp 0x10108b77
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, edi
jb 0x101087a5
push ecx
cmp ecx, 0xa
mov eax, 0x10128f60
mov ecx, 0x101298c6
cmovb eax, ecx
push eax
push str._s_lx
call fcn.100d94d0
add esp, 0xc
mov edx, eax
jmp 0x10108b77
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
inc eax
cmp eax, ecx
jbe 0x101087ec
xor edx, edx
jmp 0x10108b77
push ecx
push eax
call fcn.10108ff0
add esp, 8
mov edx, eax
jmp 0x10108b77
push dword [esp + 0x40]
push dword [esp + 0x40]
call fcn.10108ff0
add esp, 8
mov edx, eax
jmp 0x10108b77
push 0x101298c6
call dword [0x1013d00c]
add esp, 4
mov edx, eax
jmp 0x10108b77
push 1
push dword [esp + 0x44]
push dword [esp + 0x44]
call fcn.10107810
add esp, 0xc
mov edx, eax
jmp 0x10108b77
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
mov edx, dword [esp + 0x40]
cmp ecx, edx
jae 0x1010885d
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x1010885d
inc ecx
cmp ecx, edx
jb 0x10108850
lea edi, [ebx + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x1010887d
sub eax, 2
je 0x10108882
mov ebx, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x10108b7b
mov edi, 0x10128fa0
cmp ecx, edx
jb 0x10108895
mov ebx, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x10108b7b
cmp byte [ecx], 0x5a
jne 0x101088a6
mov ecx, 0x10128fa4
mov edx, 0x10128fa7
jmp 0x101088a7
inc ecx
push ecx
sub edx, ecx
lea eax, [ebx + 8]
push edx
push edi
push eax
lea eax, [ebx + 6]
push eax
lea eax, [ebx + 4]
push eax
lea eax, [ebx + 2]
push eax
xor eax, eax
cmp byte [ebx], 0x35
push ebx
setl al
add eax, 0x13
push eax
push str._u_.2s__.2s__.2s__.2s:_.2s:_.2s__.s
call fcn.100d94d0
mov ebx, dword [esp + 0x98]
add esp, 0x28
mov edx, eax
mov dword [esp + 0x14], eax
jmp 0x10108b7b
mov ebp, dword [esp + 0x3c]
mov edi, 0x101298c6
mov ebx, dword [esp + 0x40]
mov ecx, ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edi
cmp ecx, ebx
jae 0x10108910
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x10108910
inc ecx
cmp ecx, ebx
jb 0x10108903
mov eax, ecx
mov byte [esp + 0x11], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x1010894a
sub eax, 1
je 0x10108941
sub eax, 1
je 0x1010893a
mov ebx, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x10108b7b
mov al, byte [ecx - 2]
mov byte [esp + 0x11], al
mov al, byte [ecx - 1]
mov byte [esp + 0x12], al
jmp 0x1010894f
mov byte [esp + 0x12], 0x30
xor edx, edx
mov eax, ecx
cmp ecx, ebx
jae 0x101089ba
mov bl, byte [ecx]
mov byte [esp + 0x13], bl
cmp bl, 0x2e
mov ebx, dword [esp + 0x1c]
je 0x1010896d
cmp byte [esp + 0x13], 0x2c
jne 0x1010899f
inc ecx
nop
inc eax
cmp eax, ebx
jae 0x10108981
mov dl, byte [eax]
cmp dl, 0x30
jl 0x10108981
cmp dl, 0x39
jle 0x10108970
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x1010899f
lea edi, [ecx - 1]
add edi, edx
nop
cmp byte [edi], 0x30
jne 0x1010899b
dec edi
sub edx, 1
jne 0x10108990
mov edi, dword [esp + 0x18]
cmp eax, ebx
jae 0x101089ba
cmp byte [eax], 0x5a
jne 0x101089b4
mov eax, str._GMT
mov ebx, 0x10128f70
jmp 0x101089ba
mov edi, 0x1012c9f4
inc eax
push eax
sub ebx, eax
test edx, edx
push ebx
push edi
push ecx
push edx
mov ecx, 0x101298c6
mov eax, 0x1012b6c4
cmove eax, ecx
push eax
movsx eax, byte [esp + 0x2a]
push eax
movsx eax, byte [esp + 0x2d]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push str._.4s__.2s__.2s__.2s:_.2s:_c_c_s_.s_s_.s
call fcn.100d94d0
mov ebx, dword [esp + 0xa8]
add esp, 0x38
mov edx, eax
mov dword [esp + 0x14], eax
jmp 0x10108b7b
mov ebx, dword [esp + 0x40]
add ecx, 0xfffffff4
mov edi, dword [esp + 0x3c]
mov ebp, 1
sub ebx, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], 0
cmp ecx, 0x12
ja case.0x10108a3b.13
movzx eax, byte [ecx + 0x10108cb0]
jmp dword [eax*4 + 0x10108ca0]
mov ebp, 2
jmp 0x10108a4e
mov ebp, 4
mov dword [esp + 0x18], ebp
xor edx, edx
mov eax, ebx
div ebp
test edx, edx
jne case.0x10108a3b.13
mov eax, ebx
div ebp
cmp eax, 0x3fffffff
ja case.0x10108a3b.13
lea eax, [eax*4 + 1]
push eax
call dword [section..data]
mov ebp, eax
add esp, 4
test ebp, ebp
je case.0x10108a3b.13
cmp dword [esp + 0x1c], 0xc
jne 0x10108aa9
test ebx, ebx
je 0x10108aa0
push ebx
push edi
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + ebp], 0
jmp 0x10108b6c
xor ebx, ebx
cmp edi, dword [esp + 0x40]
jae 0x10108aa0
mov ecx, dword [esp + 0x18]
xor eax, eax
sub ecx, 2
je 0x10108ad0
sub ecx, 2
jne 0x10108ad9
movzx eax, byte [edi]
movzx ecx, byte [edi + 1]
shl eax, 8
or eax, ecx
add edi, 2
movzx ecx, byte [edi]
shl eax, 8
or eax, ecx
inc edi
movzx ecx, byte [edi]
mov edx, 1
shl eax, 8
inc edi
or eax, ecx
cmp eax, 0x80
jb 0x10108b46
cmp eax, 0x800
jb 0x10108b31
cmp eax, 0x10000
jb 0x10108b1c
cmp eax, 0x200000
jae 0x10108b5b
mov cl, al
mov edx, 2
and cl, 0x3f
or eax, 0x400000
or cl, 0x80
shr eax, 6
mov byte [ebx + ebp + 3], cl
mov cl, al
or eax, 0x20000
and cl, 0x3f
shr eax, 6
or cl, 0x80
inc edx
mov byte [ebx + ebp + 2], cl
mov cl, al
or eax, 0x3000
and cl, 0x3f
shr eax, 6
or cl, 0x80
inc edx
mov byte [ebx + ebp + 1], cl
mov byte [ebx + ebp], al
add ebx, edx
cmp edi, dword [esp + 0x40]
jb 0x10108ab1
mov byte [ebx + ebp], 0
jmp 0x10108b6c
push ebp
call dword [0x1013d004]
add esp, 4
mov ebp, dword [esp + 0x14]
or ebx, 0xffffffff
xor edx, edx
test ebx, ebx
mov ebx, dword [esp + 0x70]
cmovns edx, ebp
mov dword [esp + 0x14], edx
test edx, edx
je case.0x10108736.7
cmp byte [edx], 0
mov ecx, edx
je 0x10108ba4
mov edx, dword [esp + 0x6c]
nop word [eax + eax]
cmp esi, ebx
jae 0x10108b99
mov al, byte [ecx]
mov byte [esi + edx], al
inc ecx
inc esi
cmp byte [ecx], 0
jne 0x10108b90
mov edx, dword [esp + 0x14]
push edx
call dword [0x1013d004]
mov eax, dword [esp + 0x24]
add esp, 4
mov ecx, dword [esp + 0x50]
mov ebp, 0x101298c6
cmp eax, ecx
jb 0x101081b1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 8]
cmp edx, eax
jb 0x10108184
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x58
ret