Function at 0x548c43
Capabilities:
Encode data using base64

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
push 1
mov ecx, esi
call fcn.00456e80
mov eax, dword [edi]
mov ebx, dword [eax]
mov dword [ebp - 0x20], eax
add eax, 4
mov dword [edi], eax
mov eax, ebx
and eax, 0x2000
mov dword [esi + 0x500], eax
mov eax, ebx
shr eax, 0x1f
mov dword [esi + 0x4ec], eax
mov eax, ebx
mov ecx, ebx
and ecx, 0x7ff
shr eax, 0x18
and eax, 0x7f
push ecx
mov dword [esi], ecx
mov dword [ebp + 8], eax
call fcn.00547ccf
cmp dword [esi + 0x4ec], 0
push 2
mov dword [esi + 0x4e8], eax
pop edx
je 0x548d36
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
mov eax, dword [esi]
cmp eax, 0x6d
jg 0x548d25
cmp eax, 0x6c
jge 0x548cd8
cmp eax, 0x2d
jl 0x548d36
cmp eax, 0x2e
jle 0x548cd8
add eax, 0xffffffbb
cmp eax, 5
ja 0x548d36
mov eax, ecx
mov edx, ecx
shr edx, 9
and eax, 0x3f
and dl, 0xf
mov dword [esi + 0x4f0], eax
lea eax, [esi + 0x4f4]
mov byte [eax], dl
mov edx, ecx
shr edx, 0xd
and dl, 0xf
shr ecx, 0x11
and cl, 0xf
push 3
mov byte [esi + 0x4f5], dl
mov byte [esi + 0x4f6], cl
pop edx
mov cl, byte [eax]
test cl, 8
je 0x548d1c
or cl, 0xf0
mov byte [eax], cl
inc eax
dec edx
jne 0x548d10
push 2
pop edx
jmp 0x548d36
cmp eax, 0x78
je 0x548d33
add eax, 0xffffff70
cmp eax, edx
ja 0x548d36
mov dword [ebp + 8], ecx
mov eax, dword [esi]
cmp eax, 0x64
jg 0x548f92
je case.0x548f49.99
cmp eax, 0x5a
jg 0x548f3d
je case.0x548f49.98
cmp eax, 0x35
jg 0x548e5e
je 0x548dd9
sub eax, 3
je 0x548eef
sub eax, edx
je 0x548dce
sub eax, 3
je 0x548eef
sub eax, 5
je 0x548eef
sub eax, 0x12
je 0x548eef
and dword [ebp - 4], 0
cmp dword [esi + 0x4e8], 0
jbe 0x548dbc
lea eax, [esi + 8]
mov dword [ebp - 8], eax
mov ebx, 0xd0
push dword [ebp - 8]
mov ecx, edi
call fcn.00548a3b
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
add dword [ebp - 8], ebx
cmp eax, dword [esi + 0x4e8]
jb 0x548da1
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 8]
lea eax, [eax + ecx*4]
mov dword [edi], eax
pop edi
pop esi
pop ebx
leave
ret 4
shr ebx, 0x12
and ebx, 1
jmp 0x54919e
shr ebx, 0xb
mov dword [esi + 0x504], ebx
mov eax, dword [edi]
mov ecx, dword [eax]
mov dword [ebp + 8], ecx
cmp ecx, edx
jae 0x548e00
and dword [esi + 0x50c], 0
and dword [esi + 0x508], 0
mov dword [ebp + 8], edx
jmp 0x548dbc
mov eax, ecx
lea eax, [eax*4 - 8]
mov dword [esi + 0x508], eax
mov eax, dword [edi]
mov eax, dword [eax]
lea eax, [eax*4 - 8]
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esi + 0x50c], eax
test eax, eax
jne 0x548e40
mov dword [ebp - 0xc], 0x8007000e
push 0x54d0a8
lea eax, [ebp - 0xc]
push eax
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [edi]
mov edx, dword [ecx]
lea edx, [edx*4 - 8]
push edx
add ecx, 4
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x548dbc
sub eax, 0x3d
je 0x548ef4
sub eax, edx
je 0x548eef
sub eax, 0x19
je 0x548e86
dec eax
jne case.default.0x5492d5
shr ebx, 0xb
and ebx, 1
jmp 0x548f27
mov eax, ebx
shr eax, 0xb
and eax, 0x1f
mov dword [esi + 0x504], eax
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.00548a3b
mov eax, dword [edi]
mov ecx, dword [eax]
push 0xf
pop eax
and ecx, eax
mov dword [esi + 0x508], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 4
and ecx, eax
mov dword [esi + 0x50c], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 8
and ecx, eax
mov dword [esi + 0x510], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 0xc
and ecx, eax
shr ebx, 0x10
and ebx, 0x7f
mov dword [esi + 0x514], ecx
mov dword [esi + 0x518], ebx
add dword [edi], 4
jmp 0x548dbc
shr ebx, 0x12
jmp 0x548e7e
shr ebx, 0xb
lea eax, [esi + 8]
and ebx, 3
push eax
mov ecx, edi
mov dword [esi + 0x504], ebx
call fcn.00548a3b
lea eax, [esi + 0xd8]
push eax
mov ecx, edi
call fcn.00548a3b
add esi, 0x1a8
jmp 0x548f30
shr ebx, 0xb
and ebx, 0xf
mov dword [esi + 0x504], ebx
add esi, 8
push esi
mov ecx, edi
call fcn.00548a3b
jmp 0x548dbc
sub eax, 0x5b
cmp eax, 8
ja case.default.0x5492d5
jmp dword [eax*4 + 0x5493d7]
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.00548a3b
mov eax, dword [edi]
mov eax, dword [eax]
and eax, 0xffff
jmp 0x548fca
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.00548a3b
jmp case.0x5492d5.153
shr ebx, 0xb
and ebx, 0x3f
mov dword [esi + 0x504], ebx
jmp 0x548dbc
shr ebx, 0xb
and ebx, 0xf
mov dword [esi + 0x508], ebx
jmp case.0x548f49.96
mov ecx, 0x90
cmp eax, ecx
jg 0x5492c7
je 0x5491c5
cmp eax, 0x69
jg 0x549056
je 0x548fd5
sub eax, 0x65
je case.0x548f49.95
dec eax
je case.0x548f49.96
dec eax
je case.0x548f49.96
dec eax
jne case.default.0x5492d5
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x504], eax
jmp 0x548ee7
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x504], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x508], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
cmp eax, 1
jb 0x549007
cmp eax, 4
jbe 0x549002
push 4
pop eax
jmp 0x54900a
cmp eax, 1
jae 0x54900a
xor eax, eax
inc eax
dec eax
je 0x549047
dec eax
je 0x549038
dec eax
je 0x549029
dec eax
jne 0x548ee7
mov dword [esi + 0x50c], 0xf0
jmp 0x548ee7
mov dword [esi + 0x50c], 0x70
jmp 0x548ee7
mov dword [esi + 0x50c], 0x30
jmp 0x548ee7
mov dword [esi + 0x50c], 0x10
jmp 0x548ee7
sub eax, 0x6a
je 0x5491ba
sub eax, 5
je 0x549198
sub eax, 9
je 0x54907b
sub eax, 0x17
jne case.default.0x5492d5
jmp case.0x548f49.95
mov eax, dword [edi]
movzx eax, word [eax]
mov dword [esi + 0x508], eax
mov eax, dword [edi]
movzx eax, word [eax + 2]
mov dword [esi + 0x50c], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x504], eax
add dword [edi], 4
mov ecx, dword [esi + 0x50c]
mov eax, dword [esi + 0x508]
add eax, ecx
lea ecx, [eax + 1]
cmp ecx, 6
ja 0x549168
lea eax, [esi + 8]
mov dword [esi + 0x510], eax
mov eax, dword [esi + 0x510]
lea ecx, [eax + 0xd0]
mov dword [esi + 0x514], ecx
mov ecx, dword [esi + 0x508]
inc ecx
imul ecx, ecx, 0xd0
add ecx, eax
mov dword [esi + 0x518], ecx
push eax
mov ecx, edi
call fcn.00548a3b
and dword [ebp - 8], 0
cmp dword [esi + 0x508], 0
mov ebx, 0xd0
jbe 0x54912c
and dword [ebp - 4], 0
mov eax, dword [esi + 0x514]
add eax, dword [ebp - 4]
mov ecx, edi
push eax
call fcn.00548a3b
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp - 4], ebx
cmp eax, dword [esi + 0x508]
jb 0x54910a
and dword [ebp - 4], 0
cmp dword [esi + 0x50c], 0
jbe 0x548dbc
and dword [ebp - 8], 0
mov eax, dword [esi + 0x518]
add eax, dword [ebp - 8]
mov ecx, edi
push eax
call fcn.00548a3b
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
add dword [ebp - 8], ebx
cmp eax, dword [esi + 0x50c]
jb 0x549141
jmp 0x548dbc
inc eax
imul eax, eax, 0xd0
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esi + 0x510], eax
test eax, eax
jne 0x5490c5
mov dword [ebp - 0x10], 0x8007000e
push 0x54d0a8
lea eax, [ebp - 0x10]
jmp 0x548e3a
shr ebx, 0xb
and ebx, 3
lea eax, [esi + 8]
push eax
mov ecx, edi
mov dword [esi + 0x504], ebx
call fcn.00548a3b
add esi, 0xd8
jmp 0x548f30
and ebx, 0xfff800
jmp 0x548f79
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x504], eax
add dword [edi], 4
mov eax, dword [edi]
movzx eax, word [eax]
mov dword [esi + 0x508], eax
mov eax, dword [edi]
movzx eax, word [eax + 2]
mov dword [esi + 0x50c], eax
add dword [edi], 4
mov eax, dword [esi + 0x508]
mov ecx, dword [esi + 0x50c]
add eax, ecx
cmp eax, 6
ja 0x549298
lea eax, [esi + 8]
mov dword [esi + 0x510], eax
mov eax, dword [esi + 0x508]
and dword [ebp - 4], 0
imul eax, eax, 0xd0
add eax, dword [esi + 0x510]
cmp dword [esi + 0x508], 0
mov dword [esi + 0x514], eax
mov ebx, 0xd0
jbe 0x54925c
and dword [ebp - 8], 0
mov eax, dword [esi + 0x510]
add eax, dword [ebp - 8]
mov ecx, edi
push eax
call fcn.00548a3b
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
add dword [ebp - 8], ebx
cmp eax, dword [esi + 0x508]
jb 0x54923a
and dword [ebp - 4], 0
cmp dword [esi + 0x50c], 0
jbe 0x548dbc
and dword [ebp - 8], 0
mov eax, dword [esi + 0x514]
add eax, dword [ebp - 8]
mov ecx, edi
push eax
call fcn.00548a3b
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
add dword [ebp - 8], ebx
cmp eax, dword [esi + 0x50c]
jb 0x549271
jmp 0x548dbc
imul eax, eax, 0xd0
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esi + 0x510], eax
test eax, eax
jne 0x54920c
mov dword [ebp - 0x14], 0x8007000e
push 0x54d0a8
lea eax, [ebp - 0x14]
jmp 0x548e3a
sub eax, 0x91
cmp eax, 8
ja case.default.0x5492d5
jmp dword [eax*4 + 0x5493fb]
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x504], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x508], eax
shl eax, 2
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esi + 0x50c], eax
test eax, eax
jne 0x54931b
mov dword [ebp - 0x18], 0x8007000e
push 0x54d0a8
lea eax, [ebp - 0x18]
jmp 0x548e3a
add dword [edi], 4
mov ecx, dword [esi + 0x508]
mov eax, dword [edi]
shl ecx, 2
push ecx
push eax
push dword [esi + 0x50c]
jmp 0x548e51
shr ebx, 0xb
and bl, 1
mov byte [esi + 0x518], bl
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x504], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x50c], eax
add dword [edi], 4
mov eax, dword [edi]
movzx eax, word [eax]
mov dword [esi + 0x510], eax
mov eax, dword [edi]
movzx eax, word [eax + 2]
mov dword [esi + 0x508], eax
mov eax, dword [esi + 0x510]
shl eax, 2
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esi + 0x514], eax
test eax, eax
jne 0x5493a1
mov dword [ebp - 0x1c], 0x8007000e
push 0x54d0a8
lea eax, [ebp - 0x1c]
jmp 0x548e3a
add dword [edi], 4
mov ecx, dword [esi + 0x510]
mov eax, dword [edi]
shl ecx, 2
push ecx
push eax
push dword [esi + 0x514]
jmp 0x548e51
shr ebx, 0xb
and ebx, 3
jmp 0x548f79
mov eax, dword [edi]
fld dword [eax]
fstp dword [esi + 0x504]
jmp 0x548ee7