Function at 0x1003a370
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
xor esi, esi
mov edx, 0
movsx eax, al
sub ecx, 0x1a
mov ebp, dword [eax*4 + 0x10114f78]
cmovb ecx, esi
test ecx, ecx
mov dword [esp + 4], ecx
je 0x1003a62c
xor edx, edx
mov ecx, 0x20
nop dword [eax]
mov esi, ecx
lea ecx, [edx + 0x1a]
cmp ecx, dword [esp + 0x2c]
ja 0x1003a88b
test esi, esi
je 0x1003a891
cmp esi, dword [esp + 0x3c]
ja 0x1003a8cf
mov edi, dword [esp + 0x28]
mov eax, dword [edi + edx]
mov ecx, dword [edi + edx + 4]
mov edi, edx
bswap eax
bswap ecx
mov edx, eax
shr edx, 0x1a
movzx edx, byte [ebp + edx]
mov byte [ebx + esi - 0x20], dl
mov edx, eax
shr edx, 0x14
and edx, 0x3f
movzx edx, byte [ebp + edx]
mov byte [ebx + esi - 0x1f], dl
mov edx, eax
shr edx, 0xe
and edx, 0x3f
movzx edx, byte [ebp + edx]
mov byte [ebx + esi - 0x1e], dl
mov edx, eax
shr edx, 8
and edx, 0x3f
movzx edx, byte [ebp + edx]
mov byte [ebx + esi - 0x1d], dl
mov edx, eax
shld eax, ecx, 4
shr edx, 2
and eax, 0x3f
and edx, 0x3f
movzx edx, byte [ebp + edx]
mov byte [ebx + esi - 0x1c], dl
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x1b], al
mov eax, ecx
shr ecx, 0x10
shr eax, 0x16
and ecx, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x1a], al
movzx eax, byte [ebp + ecx]
mov byte [ebx + esi - 0x19], al
mov eax, dword [esp + 0x28]
mov edx, dword [eax + edi + 6]
mov ecx, dword [eax + edi + 0xa]
bswap edx
bswap ecx
mov eax, edx
shr eax, 0x1a
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x18], al
mov eax, edx
shr eax, 0x14
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x17], al
mov eax, edx
shr eax, 0xe
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x16], al
mov eax, edx
shr eax, 8
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x15], al
mov eax, edx
shld edx, ecx, 4
shr eax, 2
and edx, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x14], al
movzx eax, byte [ebp + edx]
mov byte [ebx + esi - 0x13], al
mov eax, ecx
shr ecx, 0x10
shr eax, 0x16
and ecx, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x12], al
movzx eax, byte [ebp + ecx]
mov byte [ebx + esi - 0x11], al
mov eax, dword [esp + 0x28]
mov edx, dword [eax + edi + 0xc]
mov ecx, dword [eax + edi + 0x10]
bswap edx
bswap ecx
mov eax, edx
shr eax, 0x1a
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0x10], al
mov eax, edx
shr eax, 0x14
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0xf], al
mov eax, edx
shr eax, 0xe
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0xe], al
mov eax, edx
shr eax, 8
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0xd], al
mov eax, edx
shld edx, ecx, 4
shr eax, 2
and edx, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0xc], al
movzx eax, byte [ebp + edx]
mov byte [ebx + esi - 0xb], al
mov eax, ecx
shr ecx, 0x10
shr eax, 0x16
and ecx, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 0xa], al
movzx eax, byte [ebp + ecx]
mov byte [ebx + esi - 9], al
mov eax, dword [esp + 0x28]
mov edx, dword [eax + edi + 0x12]
mov ecx, dword [eax + edi + 0x16]
bswap edx
bswap ecx
mov eax, edx
shr eax, 0x1a
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 8], al
mov eax, edx
shr eax, 0x14
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 7], al
mov eax, edx
shr eax, 0xe
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 6], al
mov eax, edx
shr eax, 8
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 5], al
mov eax, edx
shld edx, ecx, 4
shr eax, 2
and edx, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 4], al
movzx eax, byte [ebp + edx]
mov edx, edi
add edx, 0x18
mov byte [ebx + esi - 3], al
mov eax, ecx
shr ecx, 0x10
shr eax, 0x16
and ecx, 0x3f
and eax, 0x3f
cmp edx, dword [esp + 4]
movzx eax, byte [ebp + eax]
mov byte [ebx + esi - 2], al
movzx eax, byte [ebp + ecx]
lea ecx, [esi + 0x20]
mov byte [ebx + esi - 1], al
jbe 0x1003a3b0
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 8], ebp
mov ebp, 0xaaaaaaab
mov ecx, edx
mov dword [esp + 0xc], eax
mov eax, edi
mul ebp
shr edx, 1
lea ebp, [edx + edx*2]
cmp ecx, ebp
mov eax, ebp
mov dword [esp], ebp
jae 0x1003a7bc
mov edx, ecx
nop dword [eax + eax]
cmp edx, 0xfffffffc
ja 0x1003a89e
mov eax, dword [esp + 0x3c]
mov ecx, edx
add edx, 3
cmp edx, edi
ja 0x1003a8ad
cmp esi, 0xfffffffc
je 0x1003a8bc
lea ebp, [esi + 4]
mov dword [esp + 0x10], edx
cmp ebp, eax
ja 0x1003a8cc
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x28]
movzx ecx, byte [eax + ecx]
mov eax, ecx
shl ecx, 4
shr eax, 2
and ecx, 0x30
movzx eax, byte [edx + eax]
mov byte [ebx + esi], al
mov eax, dword [esp + 4]
movzx edi, byte [edi + eax + 1]
mov eax, edi
and edi, 0xf
shr eax, 4
or eax, ecx
mov ecx, dword [esp + 0x28]
movzx eax, byte [edx + eax]
mov byte [ebx + esi + 1], al
mov eax, dword [esp + 4]
movzx eax, byte [ecx + eax + 2]
mov ecx, eax
and eax, 0x3f
shr ecx, 6
lea ecx, [ecx + edi*4]
mov edi, dword [esp + 0x2c]
movzx ecx, byte [edx + ecx]
mov byte [ebx + esi + 2], cl
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp]
mov byte [ebx + esi + 3], al
mov esi, ebp
jb 0x1003a660
mov esi, edi
sub esi, dword [esp]
cmp esi, 1
je 0x1003a7cc
cmp esi, 2
jne 0x1003a82d
cmp dword [esp], edi
mov eax, dword [esp + 0x3c]
jae 0x1003a918
cmp ebp, eax
jae 0x1003a92c
mov eax, dword [esp + 0x28]
mov edx, dword [esp]
mov ecx, dword [esp + 8]
movzx eax, byte [eax + edx]
inc edx
mov dword [esp], edx
mov dword [esp + 4], eax
shr eax, 2
cmp edx, edi
mov al, byte [ecx + eax]
mov byte [ebx + ebp], al
jae 0x1003a93d
mov ecx, dword [esp + 0x3c]
mov edi, ebp
or edi, 1
cmp edi, ecx
jae 0x1003a951
mov eax, dword [esp + 0x28]
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov dword [esp + 4], ebp
movzx ecx, byte [eax + ecx]
shl edx, 4
and edx, 0x30
mov eax, ecx
shr eax, 4
or eax, edx
mov edx, dword [esp + 8]
mov al, byte [edx + eax]
mov edx, ebp
or edx, 2
cmp edx, dword [esp + 0x3c]
mov byte [ebx + edi], al
jae 0x1003a965
mov ebp, dword [esp + 8]
shl cl, 2
mov edi, 3
mov al, 0x3c
jmp 0x1003a81b
mov ebp, esi
mov esi, edi
sub esi, dword [esp]
cmp esi, 1
jne 0x1003a71c
cmp dword [esp], edi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ebp
jae 0x1003a979
mov edx, dword [esp + 4]
mov ebp, dword [esp + 8]
cmp edx, ecx
jae 0x1003a98d
mov eax, dword [esp + 0x28]
mov edi, dword [esp]
movzx eax, byte [eax + edi]
mov edi, eax
shr eax, 2
mov al, byte [ebp + eax]
mov byte [ebx + edx], al
or edx, 1
cmp edx, ecx
jae 0x1003a99e
mov ecx, edi
mov edi, 2
mov al, 0x30
shl cl, 4
and al, cl
movzx eax, al
mov al, byte [ebp + eax]
mov ebp, dword [esp + 4]
or ebp, edi
mov byte [ebx + edx], al
xor edi, edi
test dword [esp + 0x30], 0x100
je 0x1003a87f
cmp ebp, dword [esp + 0x3c]
mov ecx, ebp
ja 0x1003a909
xor esi, 3
mov edx, 0xaaaaaaab
mov ebp, ecx
mov eax, esi
mul edx
shr edx, 1
lea eax, [edx + edx*2]
sub esi, eax
je 0x1003a87f
sub dword [esp + 0xc], ebp
add ebx, ebp
xor edi, edi
nop word cs:[eax + eax]
nop
cmp dword [esp + 0xc], edi
je 0x1003a8de
mov byte [ebx + edi], 0x3d
inc edi
cmp edi, esi
jb 0x1003a870
add ebp, edi
jb 0x1003a8f3
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [esp + 0x2c]
jmp 0x1003a8b1
push esi
push 0xffffffffffffffe0
call fcn.100e21d0
add esp, 8
ud2
lea eax, [edx + 3]
push eax
push edx
call fcn.100e21d0
add esp, 8
ud2
add ecx, 3
push edi
push ecx
call fcn.100e2170
add esp, 8
ud2
add esi, 4
push esi
push 0xfffffffffffffffc
call fcn.100e21d0
add esp, 8
ud2
add esi, 4
push dword [esp + 0x3c]
push esi
call fcn.100e2170
add esp, 8
ud2
mov eax, dword [esp + 0xc]
push eax
push eax
push 0x10114f68
call fcn.100df2b0
add esp, 0xc
ud2
push 0x10114e78
push 0x2a
push str.usize_overflow_when_calculating_b64_lengthC:Userswin10.cargo_registry_srcmirrors.sjtug.sjtu.edu.cn_7a04d2510079875b_base64_0.12.2_srcencode.rs
call fcn.100df0e0
add esp, 0xc
ud2
push dword [esp + 0x3c]
push ecx
call fcn.100e21d0
add esp, 8
ud2
push edi
push dword [esp + 4]
push 0x10114e88
call fcn.100df2b0
add esp, 0xc
ud2
push eax
push ebp
push 0x10114e98
call fcn.100df2b0
add esp, 0xc
ud2
push edi
push dword [esp + 4]
push 0x10114ea8
call fcn.100df2b0
add esp, 0xc
ud2
push dword [esp + 0x3c]
push edi
push 0x10114eb8
call fcn.100df2b0
add esp, 0xc
ud2
push dword [esp + 0x3c]
push edx
push 0x10114ec8
call fcn.100df2b0
add esp, 0xc
ud2
push edi
push dword [esp + 4]
push 0x10114ed8
call fcn.100df2b0
add esp, 0xc
ud2
push ecx
push edx
push 0x10114ee8
call fcn.100df2b0
add esp, 0xc
ud2
push dword [esp + 0x3c]
push edx
push 0x10114ef8
call fcn.100df2b0
add esp, 0xc
ud2