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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d75a1
mov eax, dword fs:[0]
push eax
sub esp, 0x5a8
mov eax, dword [0x64e0a0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x440], ecx
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x450], eax
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x46c], 0
mov dword [ebp - 4], 0
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
mov dword [ebp - 0x494], 0
mov dword [ebp - 0x498], 0
mov dword [ebp - 0x48c], 0
mov dword [ebp - 0x490], 0
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x458], 0
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
mov dword [ebp - 0x4a8], 0
mov dword [ebp - 0x4ac], 0
mov dword [ebp - 0x4a0], 0
mov dword [ebp - 0x4a4], 0
lea eax, [ebp - 0x414]
lea ecx, [ebp - 0x5b4]
mov byte [ebp - 4], 3
mov dword [ebp - 0x420], eax
call fcn.0040bf00
movzx ebx, byte [ebp + 0xc]
neg ebx
sbb ebx, ebx
and ebx, 0xfffffff5
add ebx, 0x4e2f
mov byte [ebp - 4], 4
mov dword [ebp - 0x41c], ebx
test edi, edi
jne 0x5ac710
mov edi, 0x60d116
push edi
lea ecx, [ebp - 0x478]
call fcn.005a37c0
mov ecx, dword [ebp - 0x468]
mov edx, dword [ebp - 0x470]
mov eax, ecx
neg eax
sbb eax, eax
and eax, edx
cmp byte [eax], 0
je 0x5ac74f
cmp byte [eax], 0x2f
jne 0x5ac73d
mov byte [eax], 0x5c
inc eax
cmp byte [eax], 0
jne 0x5ac735
mov ecx, dword [ebp - 0x468]
mov edx, dword [ebp - 0x470]
neg ecx
sbb ecx, ecx
and ecx, edx
push 0x5c
push ecx
call fcn.005445c0
mov edi, eax
add esp, 8
lea ecx, [ebp - 0x49c]
test edi, edi
je 0x5ac77a
lea eax, [edi + 1]
push eax
call fcn.005a37c0
mov byte [edi], 0
jmp 0x5ac7aa
mov eax, dword [ebp - 0x468]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x470]
push eax
call fcn.005a37c0
push 0x60d117
lea ecx, [ebp - 0x478]
mov dword [ebp - 0x468], 0
call fcn.005a37c0
mov ecx, dword [ebp - 0x468]
neg ecx
sbb ecx, ecx
and ecx, dword [ebp - 0x470]
mov dword [ebp - 0x4f0], ecx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5ac7c3
sub ecx, edx
mov dword [ebp - 0x4ec], ecx
mov ecx, dword [ebp - 0x48c]
neg ecx
sbb ecx, ecx
and ecx, dword [ebp - 0x494]
mov dword [ebp - 0x4f8], ecx
lea edx, [ecx + 1]
jmp 0x5ac7f0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5ac7f0
sub ecx, edx
mov dword [ebp - 0x4f4], ecx
test esi, esi
jne 0x5ac808
mov esi, 0x60d11a
mov dword [ebp - 0x4e8], esi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x5ac811
lea eax, [ebp - 0x4c4]
push eax
lea eax, [ebp - 0x480]
push eax
push 0
push 0
lea eax, [ebp - 0x4f8]
push eax
push 0
push 2
push 0x6125c8
sub esi, ecx
push 0
mov dword [ebp - 0x4e4], esi
mov dword [ebp - 0x4e0], 1
call fcn.0041ebe8
test eax, eax
jne 0x5ad4e2
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x4bc], eax
lea eax, [ebp - 0x430]
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x42c], 2
cmp dword [eax + 0x1024], 0
mov dword [ebp - 0x4b8], 1
je 0x5ac8a4
mov eax, dword [eax + 0x101c]
jmp 0x5ac8a6
xor eax, eax
lea ecx, [ebp - 0x4c4]
push ecx
lea ecx, [ebp - 0x508]
push ecx
lea ecx, [ebp - 0x4bc]
push ecx
lea ecx, [ebp - 0x488]
push ecx
push 0
push 0
push 0x10
push 0
push 0x101
push eax
push 0
lea eax, [ebp - 0x480]
push eax
call fcn.0041ebf0
cmp eax, 0x90312
jne 0x5ad4b4
mov esi, dword [ebp - 0x428]
test esi, esi
je 0x5ad4b8
mov ecx, dword [ebp - 0x430]
add ecx, 2
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edi, [edx*4 + 2]
cmp edi, 0x400
ja 0x5aca9c
mov ecx, dword [ebp - 0x430]
mov eax, 0xaaaaaaab
mul ecx
mov eax, edx
xor ebx, ebx
xor edi, edi
shr eax, 1
mov dword [ebp - 0x44c], eax
je 0x5ac9e1
mov dword [ebp - 0x424], eax
jmp 0x5ac950
movzx ecx, byte [ebx + esi]
movzx edx, byte [ebx + esi + 1]
movzx esi, byte [ebx + esi + 2]
mov eax, ecx
sar eax, 2
and eax, 0x3f
and ecx, 3
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x414], al
mov eax, edx
sar eax, 4
and eax, 0xf
shl ecx, 4
or eax, ecx
and edx, 0xf
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x413], al
mov eax, esi
sar eax, 6
and eax, 3
shl edx, 2
or eax, edx
and esi, 0x3f
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x412], al
mov al, byte [esi + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov esi, dword [ebp - 0x428]
mov byte [ebp + edi - 0x411], al
add ebx, 3
add edi, 4
dec dword [ebp - 0x424]
jne 0x5ac950
mov ecx, dword [ebp - 0x430]
mov eax, dword [ebp - 0x44c]
lea eax, [eax + eax*2]
sub ecx, eax
dec ecx
je 0x5aca57
dec ecx
jne 0x5aca90
movzx ecx, byte [ebx + esi]
movzx edx, byte [ebx + esi + 1]
mov eax, ecx
sar eax, 2
and eax, 0x3f
inc ebx
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x414], al
mov eax, edx
sar eax, 4
and eax, 0xf
and ecx, 3
shl ecx, 4
or eax, ecx
and edx, 0xf
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x413], al
mov al, byte [edx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x412], al
mov byte [ebp + edi - 0x411], 0x3d
add edi, 4
mov bl, 1
mov byte [ebp + edi - 0x414], 0
jmp 0x5acb06
movzx ecx, byte [ebx + esi]
mov eax, ecx
sar eax, 2
and eax, 0x3f
and ecx, 3
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x414], al
shl ecx, 4
add edi, 4
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x417], al
mov word [ebp + edi - 0x416], 0x3d3d
mov byte [ebp + edi - 0x414], 0
mov bl, 1
jmp 0x5acb06
xor bl, bl
test edi, edi
je 0x5acb06
push edi
lea ecx, [ebp - 0x4b0]
call fcn.005a3870
mov dword [ebp - 0x420], eax
test eax, eax
jne 0x5acae7
lea eax, [ebp - 0x488]
push eax
call dword [0x64907c]
push dword [ebp - 0x428]
call fcn.0041ec08
lea eax, [ebp - 0x480]
push eax
call dword [0x649080]
mov ebx, 0x4e20
jmp 0x5ad4e2
mov edx, dword [ebp - 0x430]
lea ecx, [ebp - 0x43c]
push ecx
mov ecx, dword [ebp - 0x428]
push edi
push eax
call fcn.005a2f40
add esp, 0xc
mov bl, al
push dword [ebp - 0x428]
call fcn.0041ec08
test bl, bl
je 0x5ad490
mov esi, dword [ebp - 0x450]
mov ecx, 0xf
lea edi, [ebp - 0x544]
rep movsd dword es:[edi], dword [esi]
push 0x6125d0
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x528], 0
mov dword [ebp - 0x524], 0
mov dword [ebp - 0x50c], 0
call fcn.005a37c0
lea ecx, [ebp - 0x464]
push dword [ebp - 0x420]
call fcn.005a37c0
cmp byte [ebp + 0xc], 0
mov eax, dword [ebp - 0x454]
je 0x5acb93
neg eax
sbb eax, eax
and eax, dword [ebp - 0x45c]
mov dword [ebp - 0x518], 0x6125d8
mov dword [ebp - 0x510], eax
jmp 0x5acbad
neg eax
sbb eax, eax
and eax, dword [ebp - 0x45c]
mov dword [ebp - 0x51c], 0x6125e4
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 0x440]
lea eax, [ebp - 0x5b4]
push eax
lea edx, [ebp - 0x544]
call fcn.005ad9d0
mov ebx, dword [ebp - 0x41c]
add esp, 4
cmp ebx, eax
jne 0x5ad496
cmp byte [ebp + 0xc], 0
lea ecx, [ebp - 0x584]
jne 0x5acbe8
lea ecx, [ebp - 0x570]
call fcn.005ae4c0
mov ebx, eax
mov dword [ebp - 0x418], ebx
test ebx, ebx
je 0x5ad490
mov edx, ebx
lea edi, [ebp - 0x414]
mov dword [ebp - 0x44c], edi
lea ecx, [edx + 1]
mov edi, edi
mov al, byte [edx]
inc edx
test al, al
jne 0x5acc10
sub edx, ecx
mov dword [ebp - 0x438], edx
cmp edx, 0xffffffff
jne 0x5acc3f
mov edx, ebx
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x5acc30
sub edx, ecx
mov dword [ebp - 0x438], edx
lea eax, [edx + ebx]
cmp eax, ebx
jb 0x5ad490
lea eax, [edx + 3]
shr eax, 2
lea esi, [eax + eax*2]
cmp esi, 0x400
jbe 0x5acc93
mov ecx, edx
test edx, edx
je 0x5acc6b
cmp byte [ecx + ebx - 1], 0x3d
jne 0x5acc6b
dec ecx
jne 0x5acc61
mov eax, ecx
and eax, 3
jbe 0x5acc80
shr ecx, 2
lea esi, [ecx*2 - 1]
add esi, eax
add esi, ecx
cmp esi, 0x400
jbe 0x5acc93
mov dword [ebp - 0x43c], esi
jmp 0x5ad113
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x434], esi
test edx, edx
je 0x5ad0ff
lea esp, [esp]
xor eax, eax
xor edi, edi
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x424], eax
cmp ecx, edx
jae 0x5ad010
jmp 0x5acce0
mov ebx, dword [ebp - 0x418]
inc ecx
movzx ebx, byte [ecx + ebx - 1]
mov dword [ebp - 0x420], ecx
cmp ebx, 0x41
jl 0x5accfc
cmp ebx, 0x5a
jle 0x5acd50
cmp ebx, 0x61
jl 0x5acd06
cmp ebx, 0x7a
jle 0x5acd50
cmp ebx, 0x30
jl 0x5acd10
cmp ebx, 0x39
jle 0x5acd50
cmp ebx, 0x2b
je 0x5acd50
cmp ebx, 0x2f
je 0x5acd50
cmp ebx, 0x3d
je 0x5acd46
cmp ebx, 0xd
je 0x5acd3d
cmp ebx, 0xa
je 0x5acd3d
cmp ebx, 0x20
je 0x5acd3d
cmp ebx, 9
je 0x5acd3d
mov dword [ebp - 0x448], 1
cmp ecx, edx
jb 0x5acce0
jmp 0x5acec7
mov dword [ebp - 0x444], 1
cmp ecx, edx
jae 0x5acec7
jmp 0x5acd60
mov esi, dword [ebp - 0x418]
inc ecx
movzx esi, byte [ecx + esi - 1]
mov dword [ebp - 0x420], ecx
cmp esi, 0x41
jl 0x5acd7c
cmp esi, 0x5a
jle 0x5acdd0
cmp esi, 0x61
jl 0x5acd86
cmp esi, 0x7a
jle 0x5acdd0
cmp esi, 0x30
jl 0x5acd90
cmp esi, 0x39
jle 0x5acdd0
cmp esi, 0x2b
je 0x5acdd0
cmp esi, 0x2f
je 0x5acdd0
cmp esi, 0x3d
je 0x5acdc6
cmp esi, 0xd
je 0x5acdbd
cmp esi, 0xa
je 0x5acdbd
cmp esi, 0x20
je 0x5acdbd
cmp esi, 9
je 0x5acdbd
mov dword [ebp - 0x448], 1
cmp ecx, edx
jb 0x5acd60
jmp 0x5acec7
mov dword [ebp - 0x444], 1
cmp ecx, edx
jae 0x5acec7
jmp 0x5acde0
mov edi, dword [ebp - 0x418]
inc ecx
movzx edi, byte [ecx + edi - 1]
mov dword [ebp - 0x420], ecx
cmp edi, 0x41
jl 0x5acdfc
cmp edi, 0x5a
jle 0x5ace50
cmp edi, 0x61
jl 0x5ace06
cmp edi, 0x7a
jle 0x5ace50
cmp edi, 0x30
jl 0x5ace10
cmp edi, 0x39
jle 0x5ace50
cmp edi, 0x2b
je 0x5ace50
cmp edi, 0x2f
je 0x5ace50
cmp edi, 0x3d
je 0x5ace46
cmp edi, 0xd
je 0x5ace3d
cmp edi, 0xa
je 0x5ace3d
cmp edi, 0x20
je 0x5ace3d
cmp edi, 9
je 0x5ace3d
mov dword [ebp - 0x448], 1
cmp ecx, edx
jb 0x5acde0
jmp 0x5acec7
mov dword [ebp - 0x444], 1
cmp ecx, edx
jae 0x5acec7
mov eax, dword [ebp - 0x418]
inc ecx
movzx eax, byte [ecx + eax - 1]
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], ecx
cmp eax, 0x41
jl 0x5ace76
cmp eax, 0x5a
jle 0x5acec7
cmp eax, 0x61
jl 0x5ace80
cmp eax, 0x7a
jle 0x5acec7
cmp eax, 0x30
jl 0x5ace8a
cmp eax, 0x39
jle 0x5acec7
cmp eax, 0x2b
je 0x5acec7
cmp eax, 0x2f
je 0x5acec7
cmp eax, 0x3d
je 0x5acebd
cmp eax, 0xd
je 0x5aceb7
cmp eax, 0xa
je 0x5aceb7
cmp eax, 0x20
je 0x5aceb7
cmp eax, 9
je 0x5aceb7
mov dword [ebp - 0x448], 1
cmp ecx, edx
jb 0x5ace54
jmp 0x5acec7
mov dword [ebp - 0x444], 1
cmp ebx, 0x41
jl 0x5aced1
cmp ebx, 0x5a
jle 0x5acef3
cmp ebx, 0x61
jl 0x5acedb
cmp ebx, 0x7a
jle 0x5acef3
cmp ebx, 0x30
jl 0x5acee5
cmp ebx, 0x39
jle 0x5acef3
cmp ebx, 0x2b
je 0x5acef3
cmp ebx, 0x2f
jne 0x5ad010
cmp esi, 0x41
jl 0x5acefd
cmp esi, 0x5a
jle 0x5acf1f
cmp esi, 0x61
jl 0x5acf07
cmp esi, 0x7a
jle 0x5acf1f
cmp esi, 0x30
jl 0x5acf11
cmp esi, 0x39
jle 0x5acf1f
cmp esi, 0x2b
je 0x5acf1f
cmp esi, 0x2f
jne 0x5ad010
cmp edi, 0x41
jl 0x5acf29
cmp edi, 0x5a
jle 0x5acf4b
cmp edi, 0x61
jl 0x5acf33
cmp edi, 0x7a
jle 0x5acf4b
cmp edi, 0x30
jl 0x5acf3d
cmp edi, 0x39
jle 0x5acf4b
cmp edi, 0x2b
je 0x5acf4b
cmp edi, 0x2f
jne 0x5ad010
cmp eax, 0x41
jl 0x5acf55
cmp eax, 0x5a
jle 0x5acf77
cmp eax, 0x61
jl 0x5acf5f
cmp eax, 0x7a
jle 0x5acf77
cmp eax, 0x30
jl 0x5acf69
cmp eax, 0x39
jle 0x5acf77
cmp eax, 0x2b
je 0x5acf77
cmp eax, 0x2f
jne 0x5ad010
movzx ecx, byte [esi + 0x60fe10]
movzx edx, byte [eax + 0x60fe10]
movzx ebx, byte [ebx + 0x60fe10]
movzx esi, byte [edi + 0x60fe10]
mov eax, ecx
sar eax, 4
and eax, 3
and ebx, 0x3f
shl ebx, 2
or ebx, eax
and ecx, 0xf
mov eax, esi
shl ecx, 4
sar eax, 2
and eax, 0xf
or eax, ecx
mov ecx, esi
and ecx, 3
mov dword [ebp - 0x424], esi
mov esi, dword [ebp - 0x434]
shl ecx, 6
and edx, 0x3f
mov byte [ebp + esi - 0x414], bl
or ecx, edx
mov byte [ebp + esi - 0x413], al
mov byte [ebp + esi - 0x412], cl
add esi, 3
cmp dword [ebp - 0x444], 0
mov dword [ebp - 0x434], esi
jne 0x5ad0f3
mov ecx, dword [ebp - 0x420]
mov edx, dword [ebp - 0x438]
cmp ecx, edx
jb 0x5accc0
jmp 0x5ad0f3
mov ecx, ebx
call fcn.0040bda0
mov dword [ebp - 0x420], eax
test eax, eax
je 0x5ad0ed
mov ecx, esi
call fcn.0040bda0
test eax, eax
je 0x5ad090
mov ecx, edi
call fcn.0040bda0
test eax, eax
je 0x5ad090
cmp dword [ebp - 0x424], 0x3d
jne 0x5ad090
movzx ecx, byte [esi + 0x60fe10]
movzx ebx, byte [ebx + 0x60fe10]
movzx edx, byte [edi + 0x60fe10]
mov esi, dword [ebp - 0x434]
mov eax, ecx
and ebx, 0x3f
sar eax, 4
sar edx, 2
and ecx, 0xf
shl ebx, 2
and eax, 3
and edx, 0xf
shl ecx, 4
or ebx, eax
or edx, ecx
mov byte [ebp + esi - 0x414], bl
mov byte [ebp + esi - 0x413], dl
add esi, 2
jmp 0x5ad0f3
mov eax, dword [ebp - 0x420]
test eax, eax
je 0x5ad0ed
mov ecx, esi
call fcn.0040bda0
test eax, eax
je 0x5ad0ed
cmp edi, 0x3d
jne 0x5ad0ed
cmp dword [ebp - 0x424], 0x3d
lea edi, [ebp - 0x414]
jne 0x5ad0e5
movzx eax, byte [esi + 0x60fe10]
movzx ecx, byte [ebx + 0x60fe10]
mov esi, dword [ebp - 0x434]
and ecx, 0x3f
sar eax, 4
shl ecx, 2
and eax, 3
or ecx, eax
mov byte [ebp + esi - 0x414], cl
inc esi
jmp 0x5ad0f9
mov esi, dword [ebp - 0x434]
jmp 0x5ad0f9
mov esi, dword [ebp - 0x434]
lea edi, [ebp - 0x414]
mov ebx, dword [ebp - 0x418]
cmp dword [ebp - 0x448], 0
mov dword [ebp - 0x43c], esi
sete al
test al, al
jne 0x5ad16a
test esi, esi
je 0x5ad490
push esi
lea ecx, [ebp - 0x4b0]
call fcn.005a3870
mov edi, eax
mov dword [ebp - 0x44c], edi
test edi, edi
je 0x5ad490
mov edx, ebx
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x5ad140
lea eax, [ebp - 0x43c]
push eax
sub edx, ecx
push esi
push edi
mov ecx, ebx
call fcn.005a3120
add esp, 0xc
test al, al
je 0x5ad490
mov esi, dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x440]
lea eax, [ebp - 0x4dc]
mov dword [ebp - 0x4c8], eax
lea eax, [ebp - 0x4c4]
push eax
lea eax, [ebp - 0x504]
push eax
lea eax, [ebp - 0x4bc]
push eax
lea eax, [ebp - 0x500]
push eax
push 0
lea eax, [ebp - 0x4d0]
push eax
push 0x10
push 0
push 0x101
mov dword [ebp - 0x4dc], esi
mov dword [ebp - 0x4d8], 2
mov dword [ebp - 0x4d4], edi
mov dword [ebp - 0x4d0], 0
mov dword [ebp - 0x4cc], 1
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 2
mov dword [ebp - 0x428], 0
call fcn.005af780
push eax
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.0041ebf0
test eax, eax
jne 0x5ad472
mov esi, dword [ebp - 0x428]
test esi, esi
je 0x5ad490
mov ecx, dword [ebp - 0x430]
add ecx, 2
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea edi, [edx*4 + 2]
cmp edi, 0x400
ja 0x5ad3c3
mov ecx, dword [ebp - 0x430]
mov eax, 0xaaaaaaab
mul ecx
mov eax, edx
xor ebx, ebx
xor edi, edi
shr eax, 1
mov dword [ebp - 0x440], eax
je 0x5ad301
mov dword [ebp - 0x438], eax
lea ecx, [ecx]
movzx ecx, byte [ebx + esi]
movzx edx, byte [ebx + esi + 1]
movzx esi, byte [ebx + esi + 2]
mov eax, ecx
sar eax, 2
and eax, 0x3f
and ecx, 3
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x414], al
mov eax, edx
sar eax, 4
and eax, 0xf
shl ecx, 4
or eax, ecx
and edx, 0xf
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x413], al
mov eax, esi
sar eax, 6
and eax, 3
shl edx, 2
or eax, edx
and esi, 0x3f
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x412], al
mov al, byte [esi + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov esi, dword [ebp - 0x428]
mov byte [ebp + edi - 0x411], al
add ebx, 3
add edi, 4
dec dword [ebp - 0x438]
jne 0x5ad270
mov ecx, dword [ebp - 0x430]
mov eax, dword [ebp - 0x440]
lea eax, [eax + eax*2]
sub ecx, eax
dec ecx
je 0x5ad37a
dec ecx
jne 0x5ad3b3
movzx ecx, byte [ebx + esi]
movzx edx, byte [ebx + esi + 1]
mov esi, dword [ebp - 0x44c]
mov eax, ecx
sar eax, 2
and eax, 0x3f
and ecx, 3
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x414], al
mov eax, edx
sar eax, 4
and eax, 0xf
shl ecx, 4
or eax, ecx
and edx, 0xf
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x413], al
mov al, byte [edx*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x412], al
mov byte [ebp + edi - 0x411], 0x3d
add edi, 4
mov byte [ebp + edi - 0x414], 0
jmp 0x5ad402
movzx ecx, byte [ebx + esi]
mov eax, ecx
sar eax, 2
and eax, 0x3f
and ecx, 3
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x414], al
shl ecx, 4
add edi, 4
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp + edi - 0x417], al
mov word [ebp + edi - 0x416], 0x3d3d
mov esi, dword [ebp - 0x44c]
mov byte [ebp + edi - 0x414], 0
jmp 0x5ad402
test edi, edi
je 0x5ad461
push edi
lea ecx, [ebp - 0x4b0]
call fcn.005a3870
mov esi, eax
test esi, esi
je 0x5ad461
mov edx, dword [ebp - 0x430]
mov ecx, dword [ebp - 0x428]
lea eax, [ebp - 0x43c]
push eax
push edi
push esi
call fcn.005a2f40
add esp, 0xc
test al, al
je 0x5ad461
push str.NTLM
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x454], 0
call fcn.005a37c0
push esi
lea ecx, [ebp - 0x464]
call fcn.005a37c0
push ecx
lea ecx, [ebp - 0x464]
call fcn.005a3990
cmp byte [ebp + 0xc], 0
mov ecx, dword [ebp - 0x450]
je 0x5ad45e
mov esi, dword [0x64907c]
mov dword [ecx + 0x34], eax
lea eax, [ebp - 0x500]
push eax
call esi
jmp 0x5ad478
mov dword [ecx + 0x30], eax
mov esi, dword [0x64907c]
lea eax, [ebp - 0x500]
push eax
call esi
jmp 0x5ad478
mov esi, dword [0x64907c]
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x5ad488
push eax
call fcn.0041ec08
mov ebx, dword [ebp - 0x41c]
jmp 0x5ad49c
mov ebx, dword [ebp - 0x41c]
mov esi, dword [0x64907c]
lea eax, [ebp - 0x488]
push eax
call esi
lea eax, [ebp - 0x480]
push eax
call dword [0x649080]
jmp 0x5ad4e2
test eax, eax
jne 0x5ad4c5
lea eax, [ebp - 0x488]
push eax
call dword [0x64907c]
lea eax, [ebp - 0x480]
push eax
call dword [0x649080]
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x5ad4e2
push eax
call fcn.0041ec08
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x558]
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
test eax, eax
je 0x5ad503
push eax
call fcn.00541b50
add esp, 4
lea ecx, [ebp - 0x570]
call fcn.0040c480
lea ecx, [ebp - 0x584]
mov byte [ebp - 4], 5
call fcn.0040c480
mov eax, dword [ebp - 0x5a4]
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
test eax, eax
je 0x5ad53a
push eax
call fcn.00541b50
add esp, 4
mov eax, dword [ebp - 0x4ac]
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
test eax, eax
je 0x5ad557
push eax
call fcn.00541b50
add esp, 4
mov eax, dword [ebp - 0x460]
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
test eax, eax
je 0x5ad574
push eax
call fcn.00541b50
add esp, 4
mov eax, dword [ebp - 0x498]
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
test eax, eax
je 0x5ad591
push eax
call fcn.00541b50
add esp, 4
mov ecx, dword [ebp - 0x474]
mov dword [ebp - method.CBuffer.virtual_0], vtable.CBuffer.0
test ecx, ecx
je 0x5ad5ae
push ecx
call fcn.00541b50
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00541b41
mov esp, ebp
pop ebp
ret