Function at 0x63bae0
Capabilities:
Get disk information
Reference cloudflare dns server

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x104
push 0
push 0
dec ecx
jne 0x63bae9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x63c468
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x21], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
cmp byte [eax], 2
jne 0x63bf6c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
cmp byte [eax + 3], 0
jne 0x63bf6c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 4]
call fcn.004f6808
test al, al
je 0x63bf6c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x3c], 0
sete dl
lea ecx, [ebp - 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 4]
call fcn.0063a934
test al, al
je 0x63bf6c
xor eax, eax
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x62a708]
call fcn.0062eb84
mov dword [ebp - 0x20], eax
xor edx, edx
push ebp
push 0x63bf65
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
call fcn.0062b914
lea ecx, [ebp - 0x698]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dl, byte [eax + 4]
mov eax, dword [ebp - 0x20]
call fcn.00630628
test al, al
je 0x63bbdc
mov eax, dword [ebp - 0x20]
call fcn.006343e0
test al, al
je 0x63bbdc
lea eax, [ebp - 0x18]
mov edx, 0x63c484
call fcn.0040460c
mov dl, 6
mov eax, 0x63c494
call fcn.004f14f4
mov eax, dword [0x655744]
cmp byte [eax], 0
je 0x63bbfd
lea eax, [ebp - 0x21]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0063b4fc
mov byte [ebp - 0xd], al
jmp 0x63bc2b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x3c], 0
sete al
push eax
mov eax, dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x463]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.005fb61c
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x63bf4f
mov eax, dword [ebp - 4]
call fcn.00545904
test al, al
jne 0x63beab
mov eax, dword [ebp - 0x18]
mov edx, 0x63c4c8
call fcn.00404990
je 0x63beab
lea ecx, [ebp - 0x698]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dl, byte [eax + 4]
mov eax, dword [ebp - 0x20]
call fcn.00630628
test al, al
je 0x63beab
lea edx, [ebp - 0x69c]
mov eax, dword [ebp - 0x20]
call fcn.0062f360
mov eax, dword [ebp - 0x69c]
mov edx, dword [0x655d00]
mov edx, dword [edx]
call fcn.00404990
jne 0x63bd96
lea eax, [ebp - 0x48e]
mov edx, dword [0x655ba0]
add edx, 0x268
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402eac
je 0x63bd96
lea eax, [ebp - 0x6a0]
mov edx, dword [0x655ba0]
add edx, 0x268
call fcn.004047e8
mov edx, dword [ebp - 0x6a0]
mov eax, dword [ebp - 0x20]
call fcn.0063401c
mov edx, 0x63c4d0
lea eax, [ebp - 0x6dc]
call fcn.00402e00
lea edx, [ebp - 0x48e]
lea eax, [ebp - 0x6dc]
mov cl, 0x36
call fcn.00402dd0
lea edx, [ebp - 0x6dc]
lea eax, [ebp - 0x71c]
call fcn.00402e00
mov edx, 0x63c4e8
lea eax, [ebp - 0x71c]
mov cl, 0x3e
call fcn.00402dd0
lea edx, [ebp - 0x71c]
lea eax, [ebp - 0x770]
call fcn.00402e00
mov edx, dword [0x655ba0]
add edx, 0x268
lea eax, [ebp - 0x770]
mov cl, 0x52
call fcn.00402dd0
lea edx, [ebp - 0x770]
lea eax, [ebp - 0x7c8]
call fcn.00402e00
mov edx, 0x63c4f4
lea eax, [ebp - 0x7c8]
mov cl, 0x55
call fcn.00402dd0
lea edx, [ebp - 0x7c8]
lea eax, [ebp - 0x6a4]
call fcn.004047e8
mov eax, dword [ebp - 0x6a4]
xor edx, edx
call fcn.005e4a18
mov eax, dword [0x655744]
cmp byte [eax], 0
je 0x63be5e
lea edx, [ebp - 0x7d4]
mov eax, dword [0x655ba0]
movsx eax, word [eax + 0x2ec]
call fcn.0040993c
mov ecx, dword [ebp - 0x7d4]
lea eax, [ebp - 0x7d0]
mov edx, 0x63c500
call fcn.00404890
mov eax, dword [ebp - 0x7d0]
call fcn.00404a44
mov edx, eax
lea eax, [ebp - 0x7cc]
call fcn.0040477c
mov eax, dword [ebp - 0x7cc]
mov dl, 6
call fcn.004f14f4
mov eax, dword [0x655ba0]
test byte [eax + 0x2ec], 4
je 0x63be32
lea eax, [ebp - 0x7d8]
push eax
lea eax, [ebp - 0x7dc]
mov ecx, dword [ebp - 4]
mov edx, 0x63c520
call fcn.00404890
mov edx, dword [ebp - 0x7dc]
mov ecx, 0x7530
mov al, 2
call fcn.004f21cc
jmp 0x63be5e
lea eax, [ebp - 0x7e0]
push eax
lea eax, [ebp - 0x7e4]
mov ecx, dword [ebp - 4]
mov edx, 0x63c520
call fcn.00404890
mov edx, dword [ebp - 0x7e4]
mov ecx, 0x7530
mov al, 3
call fcn.004f21cc
lea eax, [ebp - 0x7e8]
mov edx, dword [0x655ba0]
add edx, 0x2ee
call fcn.004047e8
mov eax, dword [ebp - 0x7e8]
mov edx, dword [ebp - 4]
call fcn.00404990
jne 0x63beab
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.0063413c
test al, al
je 0x63beab
mov eax, dword [0x655ba0]
mov byte [eax + 0x2ee], 0
xor edx, edx
mov eax, 0x63c530
call fcn.005e4a18
cmp dword [ebp - 0x1c], 0
jle 0x63bf4f
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x21]
push eax
lea ecx, [ebp - 0x463]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 4]
mov edx, dword [ebp - 4]
call fcn.0063ad44
pop ecx
movsx eax, word [ebp - 0x45f]
mov edx, eax
add edx, 8
sub dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0
jle 0x63bf4f
lea ebx, [ebp + eax - 0x45b]
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x21]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 4]
mov ecx, ebx
mov edx, dword [ebp - 4]
call fcn.0063ad44
pop ecx
movsx eax, word [ebx + 4]
add eax, 8
sub dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jle 0x63bf4f
movsx eax, word [ebx + 4]
lea eax, [ebx + eax + 8]
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x21]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 4]
mov ecx, ebx
mov edx, dword [ebp - 4]
call fcn.0063ad44
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x63bf9e
mov eax, dword [ebp - 0x20]
call fcn.004036a0
ret
mov eax, dword [0x655744]
cmp byte [eax], 0
je 0x63bf8d
lea eax, [ebp - 0x21]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0063b4fc
mov byte [ebp - 0xd], al
jmp 0x63bf9e
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.005fb60c
mov byte [ebp - 0xd], al
cmp byte [ebp - 0x21], 0
je 0x63c052
mov eax, dword [ebp - 8]
mov byte [eax], 1
mov byte [ebp - 0xd], 0
lea eax, [ebp - 0x7f4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
mov dl, byte [edx + 4]
call fcn.0040475c
mov ecx, dword [ebp - 0x7f4]
lea eax, [ebp - 0x7f0]
mov edx, 0x63c560
call fcn.00404890
mov eax, dword [ebp - 0x7f0]
call fcn.00404a44
mov edx, eax
lea eax, [ebp - 0x7ec]
call fcn.0040477c
mov eax, dword [ebp - 0x7ec]
mov dl, 6
call fcn.004f14f4
lea eax, [ebp - 0x7f8]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
mov dl, byte [edx + 4]
call fcn.0040475c
lea eax, [ebp - 0x7f8]
mov edx, 0x63c580
call fcn.0040484c
mov eax, dword [ebp - 0x7f8]
call fcn.00404a44
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 5
jne 0x63c42d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 4]
call fcn.00547dbc
jmp 0x63c42d
cmp byte [ebp - 0xd], 0
jne 0x63c1bc
mov eax, dword [0x655ba0]
cmp dword [eax + 0x330], 0
je 0x63c1bc
mov edx, dword [0x655ba0]
mov edx, dword [edx + 0x330]
mov eax, dword [ebp - 4]
call fcn.00404b88
test eax, eax
jle 0x63c1bc
mov eax, dword [ebp - 0x20]
call fcn.0062f118
cmp al, 2
je 0x63c0a6
mov eax, dword [ebp - 0x20]
call fcn.0062f118
cmp al, 4
jne 0x63c1bc
mov eax, dword [ebp - 0xc]
mov dword [eax], 1
mov eax, dword [ebp - 0xc]
mov word [eax + 4], 2
mov eax, dword [ebp - 0xc]
mov word [eax + 6], 0
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x20]
call fcn.0062f470
mov edx, dword [ebp - 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x10], 1
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x14], 0x80
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x20]
call fcn.0062f118
cmp al, 4
jne 0x63c158
lea edx, [ebp - 0x7fc]
mov eax, dword [ebp - 0x20]
call fcn.0062f360
mov eax, dword [ebp - 0x7fc]
lea ecx, [ebp - 0x5b]
mov edx, dword [ebp - 4]
call fcn.004ff30c
lea ecx, [ebp - 0x14]
lea eax, [ebp - 0x5b]
mov edx, 0x18
call fcn.004f620c
mov eax, dword [ebp - 0x14]
call fcn.00404844
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x18], ebx
mov eax, dword [ebp - 0x14]
call fcn.00404a44
mov edx, eax
mov eax, dword [ebp - 0xc]
mov ecx, ebx
mov eax, dword [ebp - 0xc]
add eax, 0x1c
call fcn.0040a5c8
mov byte [ebp - 0xd], 1
push 0x63c58c
push dword [ebp - 4]
push 0x63c5ac
mov eax, dword [ebp - 0x20]
call fcn.0062f118
and eax, 0xff
lea edx, [ebp - 0x808]
call fcn.0040993c
push dword [ebp - 0x808]
lea eax, [ebp - 0x804]
mov edx, 4
call fcn.00404904
mov eax, dword [ebp - 0x804]
call fcn.00404a44
mov edx, eax
lea eax, [ebp - 0x800]
call fcn.0040477c
mov eax, dword [ebp - 0x800]
mov dl, 6
call fcn.004f14f4
mov eax, dword [0x655d00]
cmp dword [eax], 0
je 0x63c42d
cmp byte [ebp - 0xd], 0
jne 0x63c42d
mov eax, dword [ebp - 8]
cmp byte [eax], 0
jne 0x63c42d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
cmp byte [eax], 2
jne 0x63c42d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 4]
call fcn.004f6808
test al, al
je 0x63c42d
mov eax, dword [ebp - 4]
call fcn.00545904
test al, al
jne 0x63c42d
xor ecx, ecx
mov dl, 1
mov eax, dword [0x62a708]
call fcn.0062eb84
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x63c426
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x63c3c0
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
call fcn.0062b914
lea ecx, [ebp - 0x698]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dl, byte [eax + 4]
mov eax, dword [ebp - 0x20]
call fcn.00630628
test al, al
je 0x63c3b6
mov eax, dword [ebp - 0x20]
call fcn.0062f118
cmp al, 4
jne 0x63c3b6
lea edx, [ebp - 0x80c]
mov eax, dword [ebp - 0x20]
call fcn.0062f360
cmp dword [ebp - 0x80c], 0
je 0x63c2dc
lea edx, [ebp - 0x810]
mov eax, dword [ebp - 0x20]
call fcn.0062f360
mov eax, dword [ebp - 0x810]
mov edx, dword [0x655d00]
mov edx, dword [edx]
call fcn.00404990
je 0x63c2dc
lea edx, [ebp - 0x814]
mov eax, dword [ebp - 0x20]
call fcn.0062f360
mov edx, dword [ebp - 0x814]
mov eax, 0x63c5c0
call fcn.00404b88
test eax, eax
je 0x63c3b6
mov eax, dword [ebp - 0xc]
mov dword [eax], 1
mov eax, dword [ebp - 0xc]
mov word [eax + 4], 2
mov eax, dword [ebp - 0xc]
mov word [eax + 6], 1
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x20]
call fcn.0062f470
mov edx, dword [ebp - 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x10], 1
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x14], 0x80
lea edx, [ebp - 0x818]
mov eax, dword [ebp - 0x20]
call fcn.0062f360
mov eax, dword [ebp - 0x818]
lea ecx, [ebp - 0x5b]
mov edx, dword [ebp - 4]
call fcn.004ff30c
lea ecx, [ebp - 0x14]
lea eax, [ebp - 0x5b]
mov edx, 0x18
call fcn.004f620c
mov eax, dword [ebp - 0x14]
call fcn.00404844
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x18], ebx
mov eax, dword [ebp - 0x14]
call fcn.00404a44
mov edx, eax
mov eax, dword [ebp - 0xc]
mov ecx, ebx
mov eax, dword [ebp - 0xc]
add eax, 0x1c
call fcn.0040a5c8
mov byte [ebp - 0xd], 1
lea eax, [ebp - 0x820]
mov ecx, dword [ebp - 4]
mov edx, 0x63c5cc
call fcn.00404890
mov eax, dword [ebp - 0x820]
call fcn.00404a44
mov edx, eax
lea eax, [ebp - 0x81c]
call fcn.0040477c
mov eax, dword [ebp - 0x81c]
mov dl, 6
call fcn.004f14f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x63c410
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x63c42d
mov eax, dword [ebp - 0x20]
call fcn.004036a0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x63c46f
lea eax, [ebp - 0x828]
mov edx, 0x18
call fcn.00404598
lea eax, [ebp - 0x6a4]
mov edx, 3
call fcn.00404598
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404598
ret