Function at 0x5998d0
Capabilities:
Decode data using base64 via dword translation table
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, ecx
mov dword [ebp - 4], ebx
cmp dword [ebx + 0x74], 0x2000
ja 0x599ec6
push 0
push 0
push 0x2000
push 0x679be0
push 0xffffffffffffffff
push dword [ebx + 4]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov byte [0x67bbdf], 0
mov edx, dword [ebx + 0x74]
mov dword [ebp - 0x20], edx
cmp edx, 0xffffffff
jne 0x59992c
mov edx, 0x679be0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x599920
sub edx, ecx
mov dword [ebp - 0x20], edx
lea eax, [edx + 0x679be0]
cmp eax, 0x679be0
jb 0x599ec6
lea eax, [edx + 3]
shr eax, 2
push esi
lea esi, [eax + eax*2]
cmp esi, 0x1002
jbe 0x59998b
mov ecx, edx
test edx, edx
je 0x59996a
mov eax, 0x679be0
lea ebx, [ebx]
cmp byte [eax + ecx - 1], 0x3d
jne 0x59996a
dec ecx
jne 0x599960
mov eax, ecx
and eax, 3
jbe 0x59997f
shr ecx, 2
lea esi, [ecx*2 - 1]
add esi, eax
add esi, ecx
cmp esi, 0x1002
ja 0x599ec5
xor esi, esi
xor ecx, ecx
push edi
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], esi
test edx, edx
je 0x599d53
lea esp, [esp]
xor ebx, ebx
xor eax, eax
xor edi, edi
xor esi, esi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], eax
cmp ecx, edx
jae 0x599c97
jmp 0x5999d0
movzx eax, byte [ecx + 0x679be0]
inc ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
cmp eax, 0x41
jl 0x5999e8
cmp eax, 0x5a
jle 0x599a36
cmp eax, 0x61
jl 0x5999f2
cmp eax, 0x7a
jle 0x599a36
cmp eax, 0x30
jl 0x5999fc
cmp eax, 0x39
jle 0x599a36
cmp eax, 0x2b
je 0x599a36
cmp eax, 0x2f
je 0x599a36
cmp eax, 0x3d
je 0x599a2f
cmp eax, 0xd
je 0x599a26
cmp eax, 0xa
je 0x599a26
cmp eax, 0x20
je 0x599a26
cmp eax, 9
je 0x599a26
mov dword [ebp - 0x10], 1
cmp ecx, edx
jb 0x5999d0
jmp 0x599b77
mov dword [ebp - 0xc], 1
cmp ecx, edx
jae 0x599b77
mov edi, edi
movzx esi, byte [ecx + 0x679be0]
inc ecx
mov dword [ebp - 0x14], ecx
cmp esi, 0x41
jl 0x599a55
cmp esi, 0x5a
jle 0x599aa3
cmp esi, 0x61
jl 0x599a5f
cmp esi, 0x7a
jle 0x599aa3
cmp esi, 0x30
jl 0x599a69
cmp esi, 0x39
jle 0x599aa3
cmp esi, 0x2b
je 0x599aa3
cmp esi, 0x2f
je 0x599aa3
cmp esi, 0x3d
je 0x599a9c
cmp esi, 0xd
je 0x599a93
cmp esi, 0xa
je 0x599a93
cmp esi, 0x20
je 0x599a93
cmp esi, 9
je 0x599a93
mov dword [ebp - 0x10], 1
cmp ecx, edx
jb 0x599a40
jmp 0x599b77
mov dword [ebp - 0xc], 1
cmp ecx, edx
jae 0x599b77
jmp 0x599ab0
movzx edi, byte [ecx + 0x679be0]
inc ecx
mov dword [ebp - 0x14], ecx
cmp edi, 0x41
jl 0x599ac5
cmp edi, 0x5a
jle 0x599b10
cmp edi, 0x61
jl 0x599acf
cmp edi, 0x7a
jle 0x599b10
cmp edi, 0x30
jl 0x599ad9
cmp edi, 0x39
jle 0x599b10
cmp edi, 0x2b
je 0x599b10
cmp edi, 0x2f
je 0x599b10
cmp edi, 0x3d
je 0x599b09
cmp edi, 0xd
je 0x599b03
cmp edi, 0xa
je 0x599b03
cmp edi, 0x20
je 0x599b03
cmp edi, 9
je 0x599b03
mov dword [ebp - 0x10], 1
cmp ecx, edx
jb 0x599ab0
jmp 0x599b77
mov dword [ebp - 0xc], 1
cmp ecx, edx
jae 0x599b77
movzx ebx, byte [ecx + 0x679be0]
inc ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ecx
cmp ebx, 0x41
jl 0x599b2c
cmp ebx, 0x5a
jle 0x599b77
cmp ebx, 0x61
jl 0x599b36
cmp ebx, 0x7a
jle 0x599b77
cmp ebx, 0x30
jl 0x599b40
cmp ebx, 0x39
jle 0x599b77
cmp ebx, 0x2b
je 0x599b77
cmp ebx, 0x2f
je 0x599b77
cmp ebx, 0x3d
je 0x599b70
cmp ebx, 0xd
je 0x599b6a
cmp ebx, 0xa
je 0x599b6a
cmp ebx, 0x20
je 0x599b6a
cmp ebx, 9
je 0x599b6a
mov dword [ebp - 0x10], 1
cmp ecx, edx
jb 0x599b14
jmp 0x599b77
mov dword [ebp - 0xc], 1
cmp eax, 0x41
jl 0x599b81
cmp eax, 0x5a
jle 0x599ba3
cmp eax, 0x61
jl 0x599b8b
cmp eax, 0x7a
jle 0x599ba3
cmp eax, 0x30
jl 0x599b95
cmp eax, 0x39
jle 0x599ba3
cmp eax, 0x2b
je 0x599ba3
cmp eax, 0x2f
jne 0x599c97
cmp esi, 0x41
jl 0x599bad
cmp esi, 0x5a
jle 0x599bcf
cmp esi, 0x61
jl 0x599bb7
cmp esi, 0x7a
jle 0x599bcf
cmp esi, 0x30
jl 0x599bc1
cmp esi, 0x39
jle 0x599bcf
cmp esi, 0x2b
je 0x599bcf
cmp esi, 0x2f
jne 0x599c97
cmp edi, 0x41
jl 0x599bd9
cmp edi, 0x5a
jle 0x599bfb
cmp edi, 0x61
jl 0x599be3
cmp edi, 0x7a
jle 0x599bfb
cmp edi, 0x30
jl 0x599bed
cmp edi, 0x39
jle 0x599bfb
cmp edi, 0x2b
je 0x599bfb
cmp edi, 0x2f
jne 0x599c97
cmp ebx, 0x41
jl 0x599c05
cmp ebx, 0x5a
jle 0x599c23
cmp ebx, 0x61
jl 0x599c0f
cmp ebx, 0x7a
jle 0x599c23
cmp ebx, 0x30
jl 0x599c19
cmp ebx, 0x39
jle 0x599c23
cmp ebx, 0x2b
je 0x599c23
cmp ebx, 0x2f
jne 0x599c97
mov cl, byte [eax + 0x60fe10]
movzx edx, byte [esi + 0x60fe10]
movzx ebx, byte [edi + 0x60fe10]
mov esi, dword [ebp - 8]
mov eax, edx
sar eax, 4
and al, 3
shl cl, 2
or cl, al
mov eax, ebx
sar eax, 2
and al, 0xf
shl dl, 4
or al, dl
mov byte [esi + 0x65e1e8], cl
mov byte [esi + 0x65e1e9], al
mov eax, dword [ebp - 0x1c]
shl bl, 6
mov al, byte [eax + 0x60fe10]
and al, 0x3f
or al, bl
mov byte [esi + 0x65e1ea], al
add esi, 3
cmp dword [ebp - 0xc], 0
mov dword [ebp - 8], esi
jne 0x599d50
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
cmp ecx, edx
jb 0x5999b0
jmp 0x599d50
mov ecx, eax
call fcn.0040bda0
mov dword [ebp - 0x14], eax
test eax, eax
je 0x599d4d
mov ecx, esi
call fcn.0040bda0
test eax, eax
je 0x599d04
mov ecx, edi
call fcn.0040bda0
test eax, eax
je 0x599d04
cmp ebx, 0x3d
jne 0x599d04
movzx edx, byte [esi + 0x60fe10]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 8]
mov cl, byte [eax + 0x60fe10]
mov eax, edx
sar eax, 4
and al, 3
shl cl, 2
or cl, al
mov al, byte [edi + 0x60fe10]
sar al, 2
and al, 0xf
shl dl, 4
or al, dl
mov byte [esi + 0x65e1e8], cl
mov byte [esi + 0x65e1e9], al
add esi, 2
jmp 0x599d50
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x599d4d
mov ecx, esi
call fcn.0040bda0
test eax, eax
je 0x599d4d
cmp edi, 0x3d
jne 0x599d4d
cmp ebx, edi
mov ebx, dword [ebp - 4]
jne 0x599d48
mov cl, byte [esi + 0x60fe10]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 8]
mov al, byte [eax + 0x60fe10]
sar cl, 4
and cl, 3
shl al, 2
or cl, al
mov byte [esi + 0x65e1e8], cl
inc esi
jmp 0x599d53
mov esi, dword [ebp - 8]
jmp 0x599d53
mov esi, dword [ebp - 8]
mov ebx, dword [ebp - 4]
cmp dword [ebp - 0x10], 0
sete al
test al, al
je 0x599ec4
cmp esi, 0x400
je 0x599d98
cmp esi, 0x1000
jne 0x599ec4
mov ecx, 0x400
mov esi, 0x65e1e8
mov edi, 0x65c1e8
rep movsd dword es:[edi], dword [esi]
mov edx, 0x65d1e8
mov ecx, 0x65c1e8
call fcn.00599ee0
jmp 0x599da9
mov ecx, 0x100
mov esi, 0x65e1e8
mov edi, 0x65d1e8
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x18], eax
mov edi, edi
mov ebx, dword [eax + 0x65d1e8]
xor ebx, 0xff000000
mov esi, ebx
shr esi, 8
and esi, 0xff
mov eax, ebx
shr eax, 0x18
mov dword [ebp - 0x14], eax
mov ecx, 0xf7
sub ecx, esi
imul ecx, eax
mov edx, ebx
and edx, 0xff
mov eax, 0xf7
sub eax, edx
imul eax, dword [ebp - 0x14]
shr eax, 8
add eax, ebx
shl eax, 0x10
shr ecx, 8
add ecx, esi
shl ecx, 8
or ecx, eax
mov edi, ebx
shr edi, 0x10
and edi, 0xff
mov eax, 0xf7
sub eax, edi
imul eax, dword [ebp - 0x14]
shr eax, 8
add eax, edi
or ecx, eax
mov eax, dword [ebp - 0x18]
or ecx, 0xff000000
mov dword [eax + 0x65d1e8], ecx
mov eax, 0xe7
sub eax, edx
mov edx, dword [ebp - 0x14]
imul eax, edx
mov ecx, 0xe7
sub ecx, esi
imul ecx, dword [ebp - 0x14]
shr eax, 8
add eax, ebx
shr ecx, 8
shl eax, 0x10
add ecx, esi
shl ecx, 8
or ecx, eax
mov eax, 0xff
sub eax, edi
imul eax, edx
shr eax, 8
add eax, edi
or ecx, eax
mov eax, dword [ebp - 0x18]
or ecx, 0xff000000
mov dword [eax + 0x65c1e8], ecx
add eax, 4
mov dword [ebp - 0x18], eax
cmp eax, 0x400
jl 0x599db0
mov edi, dword [0x650cbc]
mov ebx, dword [ebp - 4]
mov ecx, 0x100
sub edi, dword [ebx + 0x44]
mov esi, 0x65c1e8
shl edi, 0xa
add edi, dword [0x650cd0]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x650cbc]
sub edi, dword [ebx + 0x44]
mov ecx, 0x100
shl edi, 0xa
add edi, dword [0x650ccc]
mov esi, 0x65d1e8
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push 0
xor dl, dl
mov ecx, ebx
call fcn.00597090
add esp, 4
pop ebx
mov esp, ebp
pop ebp
ret