Function at 0x504ae4
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
test dl, dl
je 0x504af9
add esp, 0xfffffff0
call fcn.004066b0
mov esi, ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov edi, dword [ebp + 0x10]
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004fb804
mov eax, dword [ebp - 4]
movzx edx, byte [ebp + 0xc]
mov byte [eax + 4], dl
mov eax, dword [ebp - 4]
call fcn.004f8b60
mov eax, dword [ebp - 4]
mov edx, 0x7530
mov dword [eax + 0x6c], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
mov eax, dword [ebp - 4]
add eax, 0x60
mov ecx, 1
mov edx, dword [0x4196bc]
call fcn.0040a04c
add esp, 4
cmp byte [ebp + 8], 0
je 0x505016
jmp 0x504e61
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x6c]
jne 0x504b92
mov eax, dword [ebp - 4]
add dword [eax + 0x6c], 0x7530
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
mov eax, dword [ebp - 4]
add eax, 0x60
mov ecx, 1
mov edx, dword [0x4196bc]
call fcn.0040a04c
add esp, 4
mov edx, esi
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, eax
cmp bx, 9
je 0x504bb5
cmp bx, 0xa
je 0x504bb5
cmp bx, 0xd
je 0x504bb5
cmp bx, 0x20
jne 0x504bd5
mov eax, dword [esi]
mov edx, dword [esi + 4]
push edx
push eax
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
cmp edx, dword [esp + 4]
jne 0x504bd1
cmp eax, dword [esp]
pop edx
pop eax
ja 0x504b92
jmp 0x504bd5
pop edx
pop eax
jg 0x504b92
movzx eax, bx
cmp eax, 0x30
jge 0x504bec
sub eax, 0x2b
je 0x504c28
sub eax, 4
je 0x504c2e
jmp 0x50503e
add eax, 0xffffffd0
sub eax, 0xa
jb 0x504c1d
add eax, 0xfffffff9
sub eax, 0x1a
jb 0x504c09
add eax, 0xfffffffa
sub eax, 0x1a
jb 0x504c12
jmp 0x50503e
mov eax, ebx
sub al, 0x41
mov byte [ebp - 6], al
jmp 0x504c32
mov eax, ebx
sub al, 0x61
add al, 0x1a
mov byte [ebp - 6], al
jmp 0x504c32
mov eax, ebx
sub al, 0x30
add al, 0x34
mov byte [ebp - 6], al
jmp 0x504c32
mov byte [ebp - 6], 0x3e
jmp 0x504c32
mov byte [ebp - 6], 0x3f
mov eax, dword [esi]
mov edx, dword [esi + 4]
cmp edx, dword [edi + 0x44]
jne 0x504c43
cmp eax, dword [edi + 0x40]
jb 0x504c49
jmp 0x504c45
jl 0x504c49
xor ebx, ebx
jmp 0x504c6c
mov edx, esi
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, eax
cmp bx, 9
je 0x504c32
cmp bx, 0xa
je 0x504c32
cmp bx, 0xd
je 0x504c32
cmp bx, 0x20
je 0x504c32
movzx eax, bx
cmp eax, 0x30
jge 0x504c83
sub eax, 0x2b
je 0x504cbf
sub eax, 4
je 0x504cc5
jmp 0x50503e
add eax, 0xffffffd0
sub eax, 0xa
jb 0x504cb4
add eax, 0xfffffff9
sub eax, 0x1a
jb 0x504ca0
add eax, 0xfffffffa
sub eax, 0x1a
jb 0x504ca9
jmp 0x50503e
mov eax, ebx
sub al, 0x41
mov byte [ebp - 7], al
jmp 0x504cc9
mov eax, ebx
sub al, 0x61
add al, 0x1a
mov byte [ebp - 7], al
jmp 0x504cc9
mov eax, ebx
sub al, 0x30
add al, 0x34
mov byte [ebp - 7], al
jmp 0x504cc9
mov byte [ebp - 7], 0x3e
jmp 0x504cc9
mov byte [ebp - 7], 0x3f
movzx eax, byte [ebp - 6]
add eax, eax
add eax, eax
movzx edx, byte [ebp - 7]
shr edx, 4
or al, dl
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x68]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x60]
mov byte [ecx + edx], al
mov eax, dword [ebp - 4]
inc dword [eax + 0x68]
mov eax, dword [esi]
mov edx, dword [esi + 4]
cmp edx, dword [edi + 0x44]
jne 0x504d00
cmp eax, dword [edi + 0x40]
jb 0x504d06
jmp 0x504d02
jl 0x504d06
xor ebx, ebx
jmp 0x504d29
mov edx, esi
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, eax
cmp bx, 9
je 0x504cef
cmp bx, 0xa
je 0x504cef
cmp bx, 0xd
je 0x504cef
cmp bx, 0x20
je 0x504cef
movzx eax, bx
cmp eax, 0x30
jge 0x504d40
sub eax, 0x2b
je 0x504d7c
sub eax, 4
je 0x504d82
jmp 0x50503e
add eax, 0xffffffd0
sub eax, 0xa
jb 0x504d71
add eax, 0xfffffff9
sub eax, 0x1a
jb 0x504d5d
add eax, 0xfffffffa
sub eax, 0x1a
jb 0x504d66
jmp 0x50503e
mov eax, ebx
sub al, 0x41
mov byte [ebp - 6], al
jmp 0x504d86
mov eax, ebx
sub al, 0x61
add al, 0x1a
mov byte [ebp - 6], al
jmp 0x504d86
mov eax, ebx
sub al, 0x30
add al, 0x34
mov byte [ebp - 6], al
jmp 0x504d86
mov byte [ebp - 6], 0x3e
jmp 0x504d86
mov byte [ebp - 6], 0x3f
movzx eax, byte [ebp - 7]
shl eax, 4
movzx edx, byte [ebp - 6]
shr edx, 2
or al, dl
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x68]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x60]
mov byte [ecx + edx], al
mov eax, dword [ebp - 4]
inc dword [eax + 0x68]
mov eax, dword [esi]
mov edx, dword [esi + 4]
cmp edx, dword [edi + 0x44]
jne 0x504dbc
cmp eax, dword [edi + 0x40]
jb 0x504dc2
jmp 0x504dbe
jl 0x504dc2
xor ebx, ebx
jmp 0x504de5
mov edx, esi
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, eax
cmp bx, 9
je 0x504dab
cmp bx, 0xa
je 0x504dab
cmp bx, 0xd
je 0x504dab
cmp bx, 0x20
je 0x504dab
movzx eax, bx
cmp eax, 0x30
jge 0x504dfc
sub eax, 0x2b
je 0x504e38
sub eax, 4
je 0x504e3e
jmp 0x50503e
add eax, 0xffffffd0
sub eax, 0xa
jb 0x504e2d
add eax, 0xfffffff9
sub eax, 0x1a
jb 0x504e19
add eax, 0xfffffffa
sub eax, 0x1a
jb 0x504e22
jmp 0x50503e
mov eax, ebx
sub al, 0x41
mov byte [ebp - 7], al
jmp 0x504e42
mov eax, ebx
sub al, 0x61
add al, 0x1a
mov byte [ebp - 7], al
jmp 0x504e42
mov eax, ebx
sub al, 0x30
add al, 0x34
mov byte [ebp - 7], al
jmp 0x504e42
mov byte [ebp - 7], 0x3e
jmp 0x504e42
mov byte [ebp - 7], 0x3f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x60]
movzx ecx, byte [ebp - 6]
shl ecx, 6
or cl, byte [ebp - 7]
mov byte [edx + eax], cl
mov eax, dword [ebp - 4]
inc dword [eax + 0x68]
mov eax, dword [esi]
mov edx, dword [esi + 4]
push edx
push eax
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
cmp edx, dword [esp + 4]
jne 0x504e84
cmp eax, dword [esp]
pop edx
pop eax
ja 0x504b5a
jmp 0x50503e
pop edx
pop eax
jg 0x504b5a
jmp 0x50503e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x6c]
jne 0x504ec9
mov eax, dword [ebp - 4]
add dword [eax + 0x6c], 0x7530
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
mov eax, dword [ebp - 4]
add eax, 0x60
mov ecx, 1
mov edx, dword [0x4196bc]
call fcn.0040a04c
add esp, 4
mov edx, esi
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, eax
cmp bx, 9
je 0x504eec
cmp bx, 0xa
je 0x504eec
cmp bx, 0xd
je 0x504eec
cmp bx, 0x20
jne 0x504f0c
mov eax, dword [esi]
mov edx, dword [esi + 4]
push edx
push eax
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
cmp edx, dword [esp + 4]
jne 0x504f08
cmp eax, dword [esp]
pop edx
pop eax
ja 0x504ec9
jmp 0x504f0c
pop edx
pop eax
jg 0x504ec9
mov eax, ebx
add eax, 0xffffffd0
sub ax, 0xa
jb 0x504f2e
add eax, 0xfffffff9
sub ax, 6
jb 0x504f36
add eax, 0xffffffe6
sub ax, 6
jb 0x504f41
jmp 0x50503e
sub bl, 0x30
mov byte [ebp - 6], bl
jmp 0x504f4a
sub bl, 0x41
add bl, 0xa
mov byte [ebp - 6], bl
jmp 0x504f4a
sub bl, 0x61
add bl, 0xa
mov byte [ebp - 6], bl
mov edx, esi
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, eax
cmp bx, 9
je 0x504f6d
cmp bx, 0xa
je 0x504f6d
cmp bx, 0xd
je 0x504f6d
cmp bx, 0x20
jne 0x504f8d
mov eax, dword [esi]
mov edx, dword [esi + 4]
push edx
push eax
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
cmp edx, dword [esp + 4]
jne 0x504f89
cmp eax, dword [esp]
pop edx
pop eax
ja 0x504f4a
jmp 0x504f8d
pop edx
pop eax
jg 0x504f4a
mov eax, ebx
add eax, 0xffffffd0
sub ax, 0xa
jb 0x504faf
add eax, 0xfffffff9
sub ax, 6
jb 0x504fce
add eax, 0xffffffe6
sub ax, 6
jb 0x504ff0
jmp 0x50503e
movzx eax, byte [ebp - 6]
shl eax, 4
mov edx, ebx
sub dl, 0x30
or al, dl
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x68]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x60]
mov byte [ecx + edx], al
jmp 0x505010
movzx eax, byte [ebp - 6]
shl eax, 4
mov edx, ebx
sub dl, 0x41
add dl, 0xa
or al, dl
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x68]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x60]
mov byte [ecx + edx], al
jmp 0x505010
movzx eax, byte [ebp - 6]
shl eax, 4
mov edx, ebx
sub dl, 0x61
add dl, 0xa
or al, dl
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x68]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x60]
mov byte [ecx + edx], al
mov eax, dword [ebp - 4]
inc dword [eax + 0x68]
mov eax, dword [esi]
mov edx, dword [esi + 4]
push edx
push eax
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
cmp edx, dword [esp + 4]
jne 0x505036
cmp eax, dword [esp]
pop edx
pop eax
ja 0x504e91
jmp 0x50503e
pop edx
pop eax
jg 0x504e91
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
cdq
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 1
jle 0x505062
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x94]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
mov edx, dword [ebp - 4]
mov dword [edx + 0x6c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
mov eax, dword [ebp - 4]
add eax, 0x60
mov ecx, 1
mov edx, dword [0x4196bc]
call fcn.0040a04c
add esp, 4
jmp 0x50509b
mov edx, esi
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, eax
mov eax, dword [esi]
mov edx, dword [esi + 4]
push edx
push eax
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
cmp edx, dword [esp + 4]
jne 0x5050b7
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x5050c1
jmp 0x5050bb
pop edx
pop eax
jle 0x5050c1
cmp bx, 0x3d
je 0x505090
mov edx, esi
mov ecx, 1
mov eax, edi
mov ebx, dword [eax]
call dword [ebx + 0x24]
mov eax, dword [ebp - 4]
cmp byte [ebp - 5], 0
je 0x5050e7
call fcn.00406708
pop dword fs:[0]
add esp, 0xc
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret 0xc