Function at 0x5563c0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56e0be
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x5b3480]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x30], 1
xor eax, eax
mov esi, dword [ebp + 8]
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0xf
mov byte [esi], al
mov ebx, dword [ebp + 0x10]
xor edi, edi
test bl, 3
mov dword [ebp - 0x30], 1
mov ecx, edi
mov dword [ebp - 4], 1
setne cl
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
add ecx, edx
shl ecx, 2
push ecx
mov ecx, esi
call fcn.00556a00
mov dword [ebp - 4], edi
test ebx, ebx
je 0x5568f9
lea ebx, [ebx]
mov ecx, dword [ebp + 0xc]
dec ebx
mov dword [ebp + 0x10], ebx
mov al, byte [ecx]
inc ecx
mov byte [ebp + edi - 0x18], al
inc edi
mov dl, byte [ebp - 0x17]
mov dword [ebp + 0xc], ecx
mov cl, byte [ebp - 0x18]
cmp edi, 3
jne 0x556606
mov al, cl
mov byte [ebp - 0x11], cl
shr al, 2
and cl, 3
mov byte [ebp - 0x1c], al
mov al, dl
shl cl, 4
shr al, 4
add cl, al
mov byte [ebp - 0x12], dl
mov byte [ebp - 0x1b], cl
mov cl, dl
mov dl, byte [ebp - 0x16]
and cl, 0xf
mov al, dl
shl cl, 2
shr al, 6
add cl, al
mov byte [ebp - 0x13], dl
mov al, dl
mov byte [ebp - 0x1a], cl
and al, 0x3f
mov byte [ebp - 0x19], al
xor eax, eax
mov dword [ebp - 0x2c], eax
mov bl, byte [ebp + eax - 0x1c]
cmp bl, 0x1a
jae 0x5564c1
add bl, 0x41
jmp 0x5564e5
add bl, 0xe6
cmp bl, 0x1a
jae 0x5564ce
add bl, 0x61
jmp 0x5564e5
add bl, 0xe6
cmp bl, 0xa
jae 0x5564db
add bl, 0x30
jmp 0x5564e5
setne bl
lea ebx, [ebx*4 + 0x2b]
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x24], edx
cmp edi, edx
jae 0x556511
lea eax, [edi + 1]
mov dword [esi + 0x10], eax
mov eax, esi
cmp edx, 0xf
jbe 0x556504
mov eax, dword [esi]
mov byte [eax + edi], bl
mov byte [eax + edi + 1], 0
jmp 0x5565e6
mov eax, SysReAllocString
sub eax, edi
cmp eax, 1
jb 0x556917
lea ecx, [edi + 1]
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x556536
mov ecx, SysReAllocString
jmp 0x55655a
mov eax, edx
shr eax, 1
mov dword [ebp - 0x20], eax
mov eax, SysReAllocString
sub eax, dword [ebp - 0x20]
cmp edx, eax
jbe 0x556550
mov ecx, SysReAllocString
jmp 0x55655a
mov eax, dword [ebp - 0x20]
add eax, edx
cmp ecx, eax
cmovb ecx, eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], ecx
push eax
push esi
call fcn.0041b030
mov ecx, eax
add esp, 8
cmp dword [ebp - 0x24], 0xf
lea eax, [edi + 1]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x14], eax
lea eax, [ecx + edi]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], eax
jbe 0x5565cd
push dword [ebp - 0x34]
mov edi, dword [esi]
push edi
push ecx
call fcn.004930c0
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x24]
inc ecx
mov byte [eax], bl
mov byte [eax + 1], 0
cmp ecx, 0x1000
jb 0x5565c1
mov edx, dword [edi - 4]
add ecx, 0x23
sub edi, edx
lea eax, [edi - 4]
cmp eax, 0x1f
ja 0x556912
mov edi, edx
push ecx
push edi
call fcn.00491173
add esp, 8
jmp 0x5565e1
push edi
push esi
push ecx
call fcn.004930c0
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov byte [eax], bl
mov byte [eax + 1], 0
mov eax, dword [ebp - 0x28]
mov dword [esi], eax
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 4
jl 0x5564b3
mov ebx, dword [ebp + 0x10]
xor edi, edi
mov cl, byte [ebp - 0x11]
mov dl, byte [ebp - 0x12]
mov ch, byte [ebp - 0x13]
jmp 0x556609
mov ch, byte [ebp - 0x16]
test ebx, ebx
jne 0x556450
test edi, edi
je 0x5568f9
mov eax, edi
cmp edi, 3
jge 0x55663d
cmp eax, 3
jae 0x55690d
mov byte [ebp + eax - 0x18], 0
inc eax
cmp eax, 3
jl 0x556623
mov ch, byte [ebp - 0x16]
mov dl, byte [ebp - 0x17]
mov cl, byte [ebp - 0x18]
mov al, cl
and cl, 3
shr al, 2
mov byte [ebp - 0x1c], al
mov al, dl
shr al, 4
and dl, 0xf
shl cl, 4
add cl, al
shl dl, 2
mov al, ch
mov byte [ebp - 0x1b], cl
and ch, 0x3f
shr al, 6
add dl, al
mov byte [ebp - 0x19], ch
xor eax, eax
mov byte [ebp - 0x1a], dl
lea ecx, [edi + 1]
mov dword [ebp - 0x20], eax
test ecx, ecx
jle 0x5567d0
jmp 0x556680
mov bl, byte [ebp + eax - 0x1c]
cmp bl, 0x1a
jae 0x55668e
add bl, 0x41
jmp 0x5566b2
add bl, 0xe6
cmp bl, 0x1a
jae 0x55669b
add bl, 0x61
jmp 0x5566b2
add bl, 0xe6
cmp bl, 0xa
jae 0x5566a8
add bl, 0x30
jmp 0x5566b2
setne bl
lea ebx, [ebx*4 + 0x2b]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], edx
cmp ecx, edx
jae 0x5566de
lea eax, [ecx + 1]
mov dword [esi + 0x10], eax
mov eax, esi
cmp edx, 0xf
jbe 0x5566d1
mov eax, dword [esi]
mov byte [eax + ecx], bl
mov byte [eax + ecx + 1], 0
jmp 0x5567be
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 1
jb 0x556917
lea eax, [ecx + 1]
mov ecx, eax
mov dword [ebp - 0x34], eax
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x556708
mov ecx, SysReAllocString
jmp 0x55672c
mov eax, edx
shr eax, 1
mov dword [ebp + 0x10], eax
mov eax, SysReAllocString
sub eax, dword [ebp + 0x10]
cmp edx, eax
jbe 0x556722
mov ecx, SysReAllocString
jmp 0x55672c
mov eax, dword [ebp + 0x10]
add eax, edx
cmp ecx, eax
cmovb ecx, eax
lea eax, [ebp + 0x10]
mov dword [ebp + 0x10], ecx
push eax
push esi
call fcn.0041b030
mov ecx, dword [ebp - 0x28]
mov edx, eax
mov eax, dword [ebp - 0x34]
add esp, 8
cmp dword [ebp - 0x2c], 0xf
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x14], eax
lea eax, [edx + ecx]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], eax
push ecx
jbe 0x5567a6
mov eax, dword [esi]
push eax
push edx
mov dword [ebp + 0x10], eax
call fcn.004930c0
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
inc ecx
mov byte [eax], bl
mov byte [eax + 1], 0
mov eax, dword [ebp + 0x10]
cmp ecx, 0x1000
jb 0x55679a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x556912
mov eax, edx
push ecx
push eax
call fcn.00491173
add esp, 8
jmp 0x5567b9
push esi
push edx
call fcn.004930c0
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov byte [eax], bl
mov byte [eax + 1], 0
mov eax, dword [ebp - 0x24]
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
lea ecx, [edi + 1]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, ecx
jl 0x556680
cmp edi, 3
jge 0x5568f9
lea esp, [esp]
mov ebx, dword [esi + 0x14]
inc edi
mov dword [ebp - 0x28], edi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x34], ebx
cmp edi, ebx
jae 0x55680b
lea eax, [edi + 1]
mov dword [esi + 0x10], eax
mov eax, esi
cmp ebx, 0xf
jbe 0x556800
mov eax, dword [esi]
mov word [eax + edi], 0x3d
jmp 0x5568d0
mov eax, SysReAllocString
sub eax, edi
cmp eax, 1
jb 0x556917
lea ecx, [edi + 1]
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x556830
mov ecx, SysReAllocString
jmp 0x55684e
mov edx, ebx
mov eax, SysReAllocString
shr edx, 1
sub eax, edx
cmp ebx, eax
jbe 0x556846
mov ecx, SysReAllocString
jmp 0x55684e
lea eax, [ebx + edx]
cmp ecx, eax
cmovb ecx, eax
lea eax, [ebp + 0x10]
mov dword [ebp + 0x10], ecx
push eax
push esi
call fcn.0041b030
mov ecx, eax
add esp, 8
mov dword [ebp - 0x2c], ecx
lea eax, [edi + 1]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x14], eax
lea eax, [ecx + edi]
mov dword [ebp + 0x10], eax
push edi
cmp ebx, 0xf
jbe 0x5568b9
mov ebx, dword [esi]
push ebx
push ecx
call fcn.004930c0
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x34]
inc ecx
mov word [eax], 0x3d
cmp ecx, 0x1000
jb 0x5568ad
mov edx, dword [ebx - 4]
add ecx, 0x23
sub ebx, edx
lea eax, [ebx - 4]
cmp eax, 0x1f
ja 0x556912
mov ebx, edx
push ecx
push ebx
call fcn.00491173
add esp, 8
jmp 0x5568cb
push esi
push ecx
call fcn.004930c0
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov word [eax], 0x3d
mov eax, dword [ebp - 0x2c]
mov dword [esi], eax
mov edi, dword [ebp - 0x28]
cmp edi, 3
jl 0x5567e0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00491571
call fcn.004956fe
call fcn.00413ee0
int3