Function at 0x6fcc9da0
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
mov edi, 0x1b6
push esi
push ebx
sub esp, 0x1c
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
mov eax, dword [ebx + 0xc]
mov ecx, eax
neg ecx
cmp ecx, 0x20
ja 0x6fcca0d0
shl edi, cl
add eax, 0x20
or edi, dword [ebx + 8]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
mov dword [ebx + 8], edi
ja 0x6fcca434
mov ecx, 0x1e
mov ebp, dword [esi + 0x14]
sub ecx, eax
cmp ecx, 0x20
ja 0x6fcca067
shl ebp, cl
lea ecx, [eax + 2]
or ebp, edi
cmp ecx, 0x1f
mov dword [ebx + 8], ebp
mov dword [ebx + 0xc], ecx
ja 0x6fcca422
mov eax, dword [esi + 0x28]
test eax, eax
je 0x6fcc9e4f
xor edx, edx
mov edi, 0x80000000
mov eax, edi
shr eax, cl
add ecx, 1
or eax, ebp
cmp ecx, 0x1f
mov dword [ebx + 8], eax
mov ebp, eax
mov dword [ebx + 0xc], ecx
jbe 0x6fcc9e47
mov eax, dword [ebx + 0x10]
bswap ebp
lea ecx, [eax + 4]
mov dword [ebx + 0x10], ecx
mov dword [eax], ebp
mov eax, dword [ebx + 0xc]
xor ebp, ebp
mov dword [ebx + 8], 0
lea ecx, [eax - 0x20]
mov dword [ebx + 0xc], ecx
add edx, 1
cmp dword [esi + 0x28], edx
ja 0x6fcc9e12
add ecx, 1
cmp ecx, 0x1f
mov dword [ebx + 0xc], ecx
jbe 0x6fcc9e6f
mov eax, dword [ebx + 0x10]
bswap ebp
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], ebp
mov eax, dword [ebx + 0xc]
xor ebp, ebp
lea ecx, [eax - 0x20]
mov edx, 0x80000000
shr edx, cl
or edx, ebp
lea ebp, [ecx + 1]
cmp ebp, 0x1f
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ebp
jbe 0x6fcc9ea5
mov eax, dword [ebx + 0x10]
bswap edx
lea ecx, [eax + 4]
mov dword [ebx + 0x10], ecx
mov dword [eax], edx
mov eax, dword [ebx + 0xc]
xor edx, edx
mov dword [ebx + 8], 0
lea ebp, [eax - 0x20]
mov dword [ebx + 0xc], ebp
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov eax, dword [eax + 0x20]
sub eax, 1
test eax, 0xffff0000
je 0x6fcc9ebd
shr eax, 0x10
mov cl, 0x10
test ah, 0xff
je 0x6fcc9ec8
shr eax, 8
add ecx, 8
test al, 0xf0
je 0x6fcc9ed2
shr eax, 4
add ecx, 4
movzx edi, byte [eax + 0x70751340]
mov eax, 1
add edi, ecx
mov ecx, 0x20
cmove edi, eax
sub ecx, ebp
mov eax, dword [esi + 0x2c]
sub ecx, edi
cmp ecx, 0x20
ja 0x6fcca000
shl eax, cl
lea ecx, [edi + ebp]
or eax, edx
cmp ecx, 0x1f
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
ja 0x6fcca446
mov edx, 0x80000000
shr edx, cl
or edx, eax
lea eax, [ecx + 1]
cmp eax, 0x1f
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
jbe 0x6fcc9f44
mov eax, dword [ebx + 0x10]
bswap edx
lea ecx, [eax + 4]
mov dword [ebx + 0x10], ecx
mov dword [eax], edx
mov eax, dword [ebx + 0xc]
xor edx, edx
mov dword [ebx + 8], 0
sub eax, 0x20
mov dword [ebx + 0xc], eax
mov edi, dword [esp + 0x3c]
mov ecx, eax
not ecx
add ecx, 0x20
test edi, edi
je 0x6fcca1e0
cmp ecx, 0x20
ja 0x6fcca130
mov edi, 1
add eax, 1
shl edi, cl
or edi, edx
cmp eax, 0x1f
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], eax
ja 0x6fcca4f8
mov edx, dword [esi + 0x14]
and edx, 0xfffffffd
cmp edx, 1
je 0x6fcca1a2
mov edx, 0x1d
sub edx, eax
cmp edx, 0x20
ja 0x6fcca304
add eax, 3
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
ja 0x6fcca58d
test byte [esi + 8], 0x20
jne 0x6fcca354
cmp dword [esi + 0x14], 3
je 0x6fcca460
mov eax, dword [ebx + 0xc]
mov ecx, 0x1b
sub ecx, eax
cmp ecx, 0x20
ja 0x6fcca215
mov edi, dword [esp + 0x40]
add eax, 5
mov dword [ebx + 0xc], eax
shl edi, cl
mov ecx, dword [ebx + 8]
or ecx, edi
cmp eax, 0x1f
mov dword [ebx + 8], ecx
ja 0x6fcca50a
mov edx, dword [esi + 0x14]
test edx, edx
jne 0x6fcca280
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
add ebp, edi
mov edi, eax
lea ecx, [ebp - 0x20]
shr edi, cl
mov dword [esp + 8], ecx
mov ecx, edi
or ecx, edx
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0xc], 0x20
bswap ecx
lea edi, [edx + 4]
mov dword [ebx + 0x10], edi
mov dword [edx], ecx
mov ecx, 0x40
sub ecx, ebp
shl eax, cl
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], edi
mov edi, dword [ebx + 0xc]
mov dword [ebx + 8], eax
lea ecx, [ecx + edi - 0x20]
cmp ecx, 0x1f
mov dword [ebx + 0xc], ecx
jbe 0x6fcc9f0e
mov edi, dword [esp + 0xc]
add edx, 8
bswap eax
mov dword [ebx + 0x10], edx
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
lea ecx, [eax - 0x20]
xor eax, eax
jmp 0x6fcc9f0e
lea edx, [eax - 0x1e]
mov ecx, edx
mov edx, ebp
shr edx, cl
or edx, edi
mov edi, dword [ebx + 0x10]
mov dword [esp + 8], ecx
mov dword [ebx + 0xc], 0x20
bswap edx
lea ecx, [edi + 4]
mov dword [ebx + 0x10], ecx
mov ecx, 0x3e
sub ecx, eax
mov eax, dword [esp + 8]
mov dword [edi], edx
mov edx, dword [ebx + 0xc]
shl ebp, cl
mov dword [ebx + 8], ebp
lea ecx, [eax + edx - 0x20]
cmp ecx, 0x1f
mov dword [ebx + 0xc], ecx
jbe 0x6fcc9e04
lea eax, [edi + 8]
bswap ebp
mov dword [ebx + 0x10], eax
mov dword [edi + 4], ebp
mov eax, dword [ebx + 0xc]
xor ebp, ebp
mov dword [ebx + 8], 0
lea ecx, [eax - 0x20]
mov dword [ebx + 0xc], ecx
jmp 0x6fcc9e04
mov ecx, eax
mov edx, edi
shr edx, cl
mov ecx, dword [ebx + 8]
mov dword [ebx + 0xc], 0x20
or ecx, edx
mov edx, dword [ebx + 0x10]
bswap ecx
lea ebp, [edx + 4]
mov dword [ebx + 0x10], ebp
mov dword [edx], ecx
mov ebp, dword [ebx + 0xc]
mov ecx, 0x20
sub ecx, eax
shl edi, cl
mov dword [ebx + 8], edi
lea eax, [eax + ebp - 0x20]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcc9ddb
lea eax, [edx + 8]
bswap edi
mov dword [ebx + 0x10], eax
mov dword [edx + 4], edi
mov eax, dword [ebx + 0xc]
xor edi, edi
mov dword [ebx + 8], 0
sub eax, 0x20
mov dword [ebx + 0xc], eax
jmp 0x6fcc9ddb
lea ebp, [eax - 0x1f]
mov edi, 1
mov ecx, ebp
shr edi, cl
or edi, edx
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0xc], 0x20
bswap edi
lea ecx, [edx + 4]
mov dword [ebx + 0x10], ecx
mov ecx, 0x3f
mov dword [edx], edi
sub ecx, eax
mov eax, dword [ebx + 0xc]
mov edi, 1
shl edi, cl
mov dword [ebx + 8], edi
lea eax, [ebp + eax - 0x20]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcc9f7b
lea eax, [edx + 8]
bswap edi
mov dword [ebx + 0x10], eax
mov dword [edx + 4], edi
mov edx, dword [esi + 0x14]
xor edi, edi
mov eax, dword [ebx + 0xc]
mov dword [ebx + 8], 0
and edx, 0xfffffffd
sub eax, 0x20
cmp edx, 1
mov dword [ebx + 0xc], eax
jne 0x6fcc9f8a
mov ecx, eax
mov edx, dword [esi + 0x1c]
not ecx
add ecx, 0x20
cmp ecx, 0x20
ja 0x6fcca5aa
shl edx, cl
add eax, 1
or edx, edi
cmp eax, 0x1f
mov dword [ebx + 8], edx
mov edi, edx
mov dword [ebx + 0xc], eax
jbe 0x6fcc9f8a
mov eax, dword [ebx + 0x10]
bswap edi
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], edi
jmp 0x6fcca5fe
cmp ecx, 0x20
ja 0x6fcca3d5
add eax, 1
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcc9ff8
mov eax, dword [ebx + 0x10]
bswap edx
lea ecx, [eax + 4]
mov dword [ebx + 0x10], ecx
mov dword [eax], edx
mov dword [ebx + 8], 0
sub dword [ebx + 0xc], 0x20
jmp 0x6fcc9ff8
mov edi, dword [ebx + 0x10]
lea ebp, [eax - 0x1b]
mov edx, dword [esp + 0x40]
mov ecx, ebp
mov dword [ebx + 0xc], 0x20
shr edx, cl
lea ecx, [edi + 4]
mov dword [ebx + 0x10], ecx
mov ecx, 0x3b
sub ecx, eax
mov eax, dword [esp + 0x40]
or edx, dword [ebx + 8]
bswap edx
mov dword [edi], edx
mov edx, dword [ebx + 0xc]
shl eax, cl
mov ecx, eax
mov dword [ebx + 8], eax
lea eax, [ebp + edx - 0x20]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcc9fed
lea eax, [edi + 8]
bswap ecx
mov dword [ebx + 0x10], eax
mov dword [edi + 4], ecx
mov edx, dword [esi + 0x14]
sub dword [ebx + 0xc], 0x20
mov dword [ebx + 8], 0
test edx, edx
je 0x6fcc9ff8
lea esi, [esi]
mov eax, dword [ebx + 0xc]
mov ecx, 0x1d
mov edi, dword [esi + 0x20]
sub ecx, eax
cmp ecx, 0x20
ja 0x6fcca527
shl edi, cl
mov ecx, dword [ebx + 8]
add eax, 3
mov dword [ebx + 0xc], eax
or ecx, edi
cmp eax, 0x1f
mov dword [ebx + 8], ecx
ja 0x6fcca671
cmp edx, 2
jne 0x6fcc9ff8
mov eax, dword [ebx + 0xc]
mov ecx, 0x1d
mov esi, dword [esi + 0x24]
sub ecx, eax
cmp ecx, 0x20
ja 0x6fcca615
shl esi, cl
mov ecx, dword [ebx + 8]
add eax, 3
mov dword [ebx + 0xc], eax
or ecx, esi
cmp eax, 0x1f
mov dword [ebx + 8], ecx
jbe 0x6fcc9ff8
mov eax, dword [ebx + 0x10]
bswap ecx
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], ecx
mov dword [ebx + 8], 0
sub dword [ebx + 0xc], 0x20
jmp 0x6fcc9ff8
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0xc], 0x20
bswap edi
lea ecx, [edx + 4]
mov dword [ebx + 0x10], ecx
mov dword [edx], edi
mov ecx, dword [ebx + 0xc]
mov dword [ebx + 8], 0
lea eax, [eax + ecx - 0x3d]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcc9fa9
lea ecx, [edx + 8]
xor eax, eax
mov dword [ebx + 0x10], ecx
bswap eax
mov dword [edx + 4], eax
sub dword [ebx + 0xc], 0x20
test byte [esi + 8], 0x20
mov dword [ebx + 8], 0
je 0x6fcc9fb3
mov eax, dword [esi + 0xc]
mov ecx, dword [ebx + 0xc]
test ah, 2
je 0x6fcca369
mov edx, 0x80000000
shr edx, cl
or dword [ebx + 8], edx
add ecx, 1
cmp ecx, 0x1f
mov dword [ebx + 0xc], ecx
jbe 0x6fcca397
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 8]
bswap eax
lea ecx, [edx + 4]
mov dword [ebx + 0x10], ecx
mov dword [edx], eax
mov eax, dword [ebx + 0xc]
mov dword [ebx + 8], 0
lea ecx, [eax - 0x20]
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], ecx
test ah, 4
je 0x6fcca3a6
mov eax, 0x80000000
shr eax, cl
or dword [ebx + 8], eax
add ecx, 1
cmp ecx, 0x1f
mov dword [ebx + 0xc], ecx
jbe 0x6fcc9fb3
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 8]
bswap eax
lea ecx, [edx + 4]
mov dword [ebx + 0x10], ecx
mov dword [edx], eax
mov dword [ebx + 8], 0
sub dword [ebx + 0xc], 0x20
jmp 0x6fcc9fb3
mov ecx, dword [ebx + 0x10]
mov dword [ebx + 0xc], 0x20
bswap edx
lea esi, [ecx + 4]
mov dword [ebx + 0x10], esi
mov dword [ecx], edx
mov edx, dword [ebx + 0xc]
mov dword [ebx + 8], 0
lea eax, [eax + edx - 0x3f]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcc9ff8
lea edx, [ecx + 8]
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x10], edx
bswap eax
mov dword [ecx + 4], eax
mov dword [ebx + 8], 0
sub dword [ebx + 0xc], 0x20
jmp 0x6fcc9ff8
mov eax, dword [ebx + 0x10]
bswap ebp
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], ebp
jmp 0x6fcca0b8
mov eax, dword [ebx + 0x10]
bswap edi
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], edi
jmp 0x6fcca119
mov edx, dword [ebx + 0x10]
bswap eax
lea ecx, [edx + 4]
mov dword [ebx + 0x10], ecx
mov dword [edx], eax
mov eax, dword [ebx + 0xc]
lea ecx, [eax - 0x20]
xor eax, eax
jmp 0x6fcc9f0e
xor edi, edi
mov ebp, 0x80000000
mov eax, dword [esi + edi*8 + 0x48]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.6fca5f00
mov ecx, dword [ebx + 0xc]
mov eax, ebp
shr eax, cl
add ecx, 1
or eax, dword [ebx + 8]
cmp ecx, 0x1f
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], eax
jbe 0x6fcca4a7
mov edx, dword [ebx + 0x10]
bswap eax
lea ecx, [edx + 4]
mov dword [ebx + 0x10], ecx
mov dword [edx], eax
sub dword [ebx + 0xc], 0x20
mov dword [ebx + 8], 0
mov eax, dword [esi + edi*8 + 0x4c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.6fca5f00
mov ecx, dword [ebx + 0xc]
mov eax, ebp
shr eax, cl
add ecx, 1
or eax, dword [ebx + 8]
cmp ecx, 0x1f
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], eax
jbe 0x6fcca4e7
mov edx, dword [ebx + 0x10]
bswap eax
lea ecx, [edx + 4]
mov dword [ebx + 0x10], ecx
mov dword [edx], eax
sub dword [ebx + 0xc], 0x20
mov dword [ebx + 8], 0
add edi, 1
cmp edi, 3
jne 0x6fcca467
jmp 0x6fcc9fbd
mov eax, dword [ebx + 0x10]
bswap edi
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], edi
jmp 0x6fcca181
mov eax, dword [ebx + 0x10]
bswap ecx
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], ecx
mov dword [ebx + 8], 0
sub dword [ebx + 0xc], 0x20
jmp 0x6fcc9fed
lea edx, [eax - 0x1d]
mov ebp, edi
mov ecx, edx
mov dword [esp + 8], edx
mov edx, dword [ebx + 8]
shr ebp, cl
mov dword [ebx + 0xc], 0x20
or edx, ebp
mov ebp, dword [ebx + 0x10]
bswap edx
lea ecx, [ebp + 4]
mov dword [ebx + 0x10], ecx
mov ecx, 0x3d
sub ecx, eax
mov eax, dword [esp + 8]
mov dword [ebp], edx
mov edx, dword [ebx + 0xc]
shl edi, cl
mov ecx, edi
mov dword [ebx + 8], edi
lea eax, [eax + edx - 0x20]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcca585
lea eax, [ebp + 8]
bswap ecx
mov dword [ebx + 0x10], eax
mov dword [ebp + 4], ecx
sub dword [ebx + 0xc], 0x20
mov dword [ebx + 8], 0
mov edx, dword [esi + 0x14]
jmp 0x6fcca2af
mov eax, dword [ebx + 0x10]
bswap edi
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], edi
mov dword [ebx + 8], 0
sub dword [ebx + 0xc], 0x20
jmp 0x6fcc9fa9
lea ecx, [eax - 0x1f]
mov ebp, edx
shr ebp, cl
mov dword [esp + 8], ecx
mov ecx, ebp
mov ebp, dword [ebx + 0x10]
or ecx, edi
mov dword [ebx + 0xc], 0x20
bswap ecx
lea edi, [ebp + 4]
mov dword [ebx + 0x10], edi
mov edi, edx
mov dword [ebp], ecx
mov ecx, 0x3f
sub ecx, eax
mov eax, dword [ebx + 0xc]
shl edi, cl
mov ecx, dword [esp + 8]
mov dword [ebx + 8], edi
lea eax, [ecx + eax - 0x20]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcc9f8a
lea eax, [ebp + 8]
bswap edi
mov dword [ebx + 0x10], eax
mov dword [ebp + 4], edi
mov eax, dword [ebx + 0xc]
xor edi, edi
mov dword [ebx + 8], 0
sub eax, 0x20
mov dword [ebx + 0xc], eax
jmp 0x6fcc9f8a
mov edi, dword [ebx + 0x10]
lea ebp, [eax - 0x1d]
mov edx, esi
mov ecx, ebp
shr edx, cl
mov dword [ebx + 0xc], 0x20
lea ecx, [edi + 4]
or edx, dword [ebx + 8]
mov dword [ebx + 0x10], ecx
mov ecx, 0x3d
bswap edx
mov dword [edi], edx
mov edx, dword [ebx + 0xc]
sub ecx, eax
shl esi, cl
mov ecx, esi
mov dword [ebx + 8], esi
lea eax, [ebp + edx - 0x20]
cmp eax, 0x1f
mov dword [ebx + 0xc], eax
jbe 0x6fcc9ff8
lea eax, [edi + 8]
bswap ecx
mov dword [ebx + 0x10], eax
mov dword [edi + 4], ecx
mov dword [ebx + 8], 0
sub dword [ebx + 0xc], 0x20
jmp 0x6fcc9ff8
mov eax, dword [ebx + 0x10]
bswap ecx
lea edx, [eax + 4]
mov dword [ebx + 0x10], edx
mov dword [eax], ecx
mov edx, dword [esi + 0x14]
mov dword [ebx + 8], 0
sub dword [ebx + 0xc], 0x20
jmp 0x6fcca2af