Function at 0x41beb4
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x54
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x28], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x58]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x4c]
mov byte [ebp - 5], al
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp + 0x18]
jae 0x41c25b
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x48]
cmp eax, dword [edx + 0x44]
jae 0x41bf35
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x48]
add eax, dword [ecx + 0x3c]
mov al, byte [eax]
and eax, 0xff
mov dword [ebp - 0xc], eax
inc dword [edx + 0x48]
jmp 0x41bf83
mov dword [ebp - 0x30], 0x4e20
mov eax, dword [ebp + 8]
mov dword [eax + 0x48], 0
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp + 8]
add eax, 0x40
push eax
mov eax, dword [ebp + 8]
add eax, 0x3c
push eax
push dword [ebp + 0xc]
call fcn.004a6ed5
add esp, 0x10
mov dword [ebx + 0x44], eax
cmp dword [ebp - 0x30], 0
jne 0x41bf75
mov eax, dword [ebp + 8]
inc dword [eax + 0x2c]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x41bf00
jmp 0x41c25b
cmp dword [ebp - 0xc], 0xa
je 0x41bf00
cmp dword [ebp - 0xc], 0x20
je 0x41bf00
cmp dword [ebp - 0xc], 0xd
je 0x41bf00
cmp dword [ebp - 0xc], 9
je 0x41bf00
cmp dword [ebp - 0xc], 0x3d
jne 0x41c126
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x48]
add edx, 2
mov eax, dword [ebp + 8]
cmp edx, dword [eax + 0x44]
jae 0x41c0f7
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
add eax, dword [edx + 0x3c]
mov al, byte [eax]
and eax, 0xff
mov dword [ebp - 0x34], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
add eax, dword [edx + 0x3c]
inc eax
mov al, byte [eax]
and eax, 0xff
mov dword [ebp - 0x38], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
add eax, dword [edx + 0x3c]
add eax, 2
mov al, byte [eax]
and eax, 0xff
mov dword [ebp - 0x3c], eax
sub esp, 0xc
push dword [ebp - 0x34]
call sub.msvcrt.dll_isxdigit
add esp, 0x10
test eax, eax
je 0x41c104
sub esp, 0xc
push dword [ebp - 0x38]
call sub.msvcrt.dll_isxdigit
add esp, 0x10
test eax, eax
je 0x41c104
sub esp, 8
push dword [ebp - 0x3c]
push str._n_r_t
call sub.msvcrt.dll_strchr
add esp, 0x10
test eax, eax
je 0x41c104
sub esp, 0xc
push dword [ebp - 0x34]
call sub.msvcrt.dll_isdigit
add esp, 0x10
test eax, eax
je 0x41c074
mov eax, dword [ebp - 0x34]
sub eax, 0x30
mov dword [ebp - 0x40], eax
jmp 0x41c089
sub esp, 0xc
push dword [ebp - 0x34]
call fcn.004a04fd
add esp, 0x10
mov dword [ebp - 0x40], eax
sub dword [ebp - 0x40], 0x37
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0xc], edx
lea eax, [ebp - 0xc]
shl dword [eax], 4
sub esp, 0xc
push dword [ebp - 0x38]
call sub.msvcrt.dll_isdigit
add esp, 0x10
test eax, eax
je 0x41c0b8
mov eax, dword [ebp - 0x38]
sub eax, 0x30
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0xc]
or dword [ebp - 0x44], edx
jmp 0x41c0d3
sub esp, 0xc
push dword [ebp - 0x38]
call fcn.004a04fd
add esp, 0x10
mov dword [ebp - 0x44], eax
sub dword [ebp - 0x44], 0x37
mov eax, dword [ebp - 0xc]
or dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
add eax, 2
mov dword [edx + 0x48], eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x30], 1
jmp 0x41bf83
cmp dword [ebp - 0x1c], 0
jne 0x41c104
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x20], 1
jne 0x41c11c
mov eax, dword [ebp - 0x1c]
mov edx, eax
add edx, dword [ebp + 0x14]
mov al, byte [ebp - 5]
mov byte [edx], al
lea eax, [ebp - 0x1c]
inc dword [eax]
lea eax, [ebp - 0x14]
inc dword [eax]
jmp 0x41c25b
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov al, byte [eax + 0x4fc810]
and eax, 0xff
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, 0xff
jne 0x41c165
sub esp, 8
push dword [ebp - 0x10]
push str.invalid_radix64_character__02X_skipped_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d87b
add esp, 0x10
jmp 0x41bf00
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 1
je 0x41c1a1
cmp dword [ebp - 0x48], 1
jg 0x41c182
cmp dword [ebp - 0x48], 0
je 0x41c193
jmp 0x41c226
cmp dword [ebp - 0x48], 2
je 0x41c1d4
cmp dword [ebp - 0x48], 3
je 0x41c207
jmp 0x41c226
mov eax, dword [ebp - 0xc]
shl eax, 2
mov byte [ebp - 5], al
jmp 0x41c226
mov eax, dword [ebp - 0xc]
sar eax, 4
mov dl, al
and edx, 3
lea eax, [ebp - 5]
or byte [eax], dl
mov eax, dword [ebp - 0x1c]
mov edx, eax
add edx, dword [ebp + 0x14]
mov al, byte [ebp - 5]
mov byte [edx], al
lea eax, [ebp - 0x1c]
inc dword [eax]
mov eax, dword [ebp - 0xc]
mov edx, eax
shl edx, 4
mov al, 0xf0
and eax, edx
mov byte [ebp - 5], al
jmp 0x41c226
mov eax, dword [ebp - 0xc]
sar eax, 2
mov dl, al
and edx, 0xf
lea eax, [ebp - 5]
or byte [eax], dl
mov eax, dword [ebp - 0x1c]
mov edx, eax
add edx, dword [ebp + 0x14]
mov al, byte [ebp - 5]
mov byte [edx], al
lea eax, [ebp - 0x1c]
inc dword [eax]
mov eax, dword [ebp - 0xc]
mov edx, eax
shl edx, 6
mov al, 0xc0
and eax, edx
mov byte [ebp - 5], al
jmp 0x41c226
mov eax, dword [ebp - 0xc]
mov dl, al
and edx, 0x3f
lea eax, [ebp - 5]
or byte [eax], dl
mov eax, dword [ebp - 0x1c]
mov edx, eax
add edx, dword [ebp + 0x14]
mov al, byte [ebp - 5]
mov byte [edx], al
lea eax, [ebp - 0x1c]
inc dword [eax]
mov edx, dword [ebp - 0x20]
inc edx
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
jns 0x41c23d
add dword [ebp - 0x50], 3
mov eax, dword [ebp - 0x50]
sar eax, 2
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
shl eax, 2
mov edx, dword [ebp - 0x4c]
sub edx, eax
mov eax, edx
mov dword [ebp - 0x20], eax
jmp 0x41bf00
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jae 0x41c29d
mov eax, dword [ebp - 0x2c]
mov ecx, eax
shl ecx, 8
mov eax, dword [ebp - 0x2c]
shr eax, 0x10
movzx edx, al
mov eax, dword [ebp - 0x24]
add eax, dword [ebp + 0x14]
mov al, byte [eax]
and eax, 0xff
xor eax, edx
mov eax, dword [eax*4 + 0x4fc410]
xor eax, ecx
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x24]
inc dword [eax]
jmp 0x41c262
lea eax, [ebp - 0x2c]
and dword [eax], 0xffffff
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2c]
mov dword [edx + 0x58], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov dword [edx + 0x50], eax
mov edx, dword [ebp + 8]
mov al, byte [ebp - 5]
mov byte [edx + 0x4c], al
cmp dword [ebp - 0x14], 0
je 0x41c5c2
mov eax, dword [ebp + 8]
mov dword [eax + 0x64], 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x14], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x28], 0
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x48]
cmp eax, dword [edx + 0x44]
jae 0x41c312
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x48]
add eax, dword [ecx + 0x3c]
mov al, byte [eax]
and eax, 0xff
mov dword [ebp - 0xc], eax
inc dword [edx + 0x48]
jmp 0x41c35d
mov dword [ebp - 0x3c], 0x4e20
mov eax, dword [ebp + 8]
mov dword [eax + 0x48], 0
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp + 8]
add eax, 0x40
push eax
mov eax, dword [ebp + 8]
add eax, 0x3c
push eax
push dword [ebp + 0xc]
call fcn.004a6ed5
add esp, 0x10
mov dword [ebx + 0x44], eax
cmp dword [ebp - 0x3c], 0
jne 0x41c352
mov eax, dword [ebp + 8]
inc dword [eax + 0x2c]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x41c2e9
jmp 0x41c387
cmp dword [ebp - 0xc], 0xa
je 0x41c2e9
cmp dword [ebp - 0xc], 0x20
je 0x41c2e9
cmp dword [ebp - 0xc], 0xd
je 0x41c2e9
cmp dword [ebp - 0xc], 9
je 0x41c2e9
cmp dword [ebp - 0xc], 0x3d
je 0x41c2e9
cmp dword [ebp - 0xc], 0xffffffff
jne 0x41c3ab
sub esp, 0xc
push str.premature_eof__no_CRC__n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d87b
add esp, 0x10
jmp 0x41c5c2
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0xc]
add eax, 0x4fc810
mov al, byte [eax]
and eax, 0xff
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, 0xff
jne 0x41c3da
jmp 0x41c523
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 1
je 0x41c416
cmp dword [ebp - 0x54], 1
jg 0x41c3f7
cmp dword [ebp - 0x54], 0
je 0x41c408
jmp 0x41c496
cmp dword [ebp - 0x54], 2
je 0x41c449
cmp dword [ebp - 0x54], 3
je 0x41c47c
jmp 0x41c496
mov eax, dword [ebp - 0xc]
shl eax, 2
mov byte [ebp - 5], al
jmp 0x41c496
mov eax, dword [ebp - 0xc]
sar eax, 4
mov dl, al
and edx, 3
lea eax, [ebp - 5]
or byte [eax], dl
mov eax, 0
mov al, byte [ebp - 5]
mov edx, eax
shl edx, 0x10
lea eax, [ebp - 0x3c]
or dword [eax], edx
mov eax, dword [ebp - 0xc]
mov edx, eax
shl edx, 4
mov al, 0xf0
and eax, edx
mov byte [ebp - 5], al
jmp 0x41c496
mov eax, dword [ebp - 0xc]
sar eax, 2
mov dl, al
and edx, 0xf
lea eax, [ebp - 5]
or byte [eax], dl
mov eax, 0
mov al, byte [ebp - 5]
mov edx, eax
shl edx, 8
lea eax, [ebp - 0x3c]
or dword [eax], edx
mov eax, dword [ebp - 0xc]
mov edx, eax
shl edx, 6
mov al, 0xc0
and eax, edx
mov byte [ebp - 5], al
jmp 0x41c496
mov eax, dword [ebp - 0xc]
mov dl, al
and edx, 0x3f
lea eax, [ebp - 5]
or byte [eax], dl
mov edx, 0
mov dl, byte [ebp - 5]
lea eax, [ebp - 0x3c]
or dword [eax], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x48]
cmp eax, dword [edx + 0x44]
jae 0x41c4bf
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x48]
add eax, dword [ecx + 0x3c]
mov al, byte [eax]
and eax, 0xff
mov dword [ebp - 0xc], eax
inc dword [edx + 0x48]
jmp 0x41c508
mov dword [ebp - 0x38], 0x4e20
mov eax, dword [ebp + 8]
mov dword [eax + 0x48], 0
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp + 8]
add eax, 0x40
push eax
mov eax, dword [ebp + 8]
add eax, 0x3c
push eax
push dword [ebp + 0xc]
call fcn.004a6ed5
add esp, 0x10
mov dword [ebx + 0x44], eax
cmp dword [ebp - 0x38], 0
jne 0x41c4ff
mov eax, dword [ebp + 8]
inc dword [eax + 0x2c]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x41c496
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x41c513
jmp 0x41c523
lea eax, [ebp - 0x20]
inc dword [eax]
cmp dword [ebp - 0x20], 3
jg 0x41c523
jmp 0x41c3b9
cmp dword [ebp - 0xc], 0xffffffff
jne 0x41c54c
sub esp, 0xc
push str.premature_eof__in_CRC__n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d7de
add esp, 0x10
call fcn.0041be8b
mov dword [ebp - 0x18], eax
jmp 0x41c5c2
cmp dword [ebp - 0x20], 0
jne 0x41c55b
mov dword [ebp - 0x18], 0
jmp 0x41c5c2
cmp dword [ebp - 0x20], 4
je 0x41c584
sub esp, 0xc
push str.malformed_CRC_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d7de
add esp, 0x10
call fcn.0041be8b
mov dword [ebp - 0x18], eax
jmp 0x41c5c2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x58]
cmp eax, dword [ebp - 0x3c]
je 0x41c5bb
sub esp, 4
push dword [ebp - 0x3c]
mov eax, dword [ebp + 8]
push dword [eax + 0x58]
push str.CRC_error___06lX____06lX_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d7de
add esp, 0x10
call fcn.0041be8b
mov dword [ebp - 0x18], eax
jmp 0x41c5c2
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x1c], 0
jne 0x41c5d5
cmp dword [ebp - 0x28], 0
jne 0x41c5d5
mov dword [ebp - 0x18], 0xffffffff
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x1c]
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
leave
ret