Function at 0x4382e0
Capabilities:
Connect to wmi namespace via wbemlocator
Get common file path
Get disk information
Get mac address on windows
Reference wmi statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fb873
mov eax, dword fs:[0]
push eax
sub esp, 0xb94
mov eax, dword [0x537474]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x9f4], ecx
push 0x200
push 0
mov eax, dword [ebp - 0x9f4]
push eax
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x200
push ecx
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov edx, dword [ebp - 0x9f4]
add edx, 0x400
push edx
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov eax, dword [ebp - 0x9f4]
add eax, 0x600
push eax
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x800
push ecx
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov edx, dword [ebp - 0x9f4]
add edx, 0xa00
push edx
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov eax, dword [ebp - 0x9f4]
add eax, 0xc00
push eax
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov ecx, dword [ebp - 0x9f4]
add ecx, 0xe00
push ecx
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov edx, dword [ebp - 0x9f4]
add edx, 0x1000
push edx
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov eax, dword [ebp - 0x9f4]
add eax, 0x1200
push eax
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x1400
push ecx
call fcn.0049d060
add esp, 0xc
push 0x200
push 0
mov edx, dword [ebp - 0x9f4]
add edx, 0x1600
push edx
call fcn.0049d060
add esp, 0xc
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [ebp - 0x9f0], eax
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438f9e
mov dword [ebp - 0xa40], 0
lea eax, [ebp - 0xa40]
push eax
push 0x513b78
push 1
push 0
push 0x513c48
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438f9e
mov dword [ebp - 0x9fc], 0
lea ecx, [ebp - 0x9fc]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0x502c60
mov edx, dword [ebp - 0xa40]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa40]
push ecx
mov edx, dword [eax + 0xc]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438f8a
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
mov eax, dword [ebp - 0x9fc]
push eax
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438f76
mov dword [ebp - 0x9f8], 0
lea ecx, [ebp - 0x9f8]
push ecx
push 0
push 0x30
push 0x502c78
push 0x502ccc
mov edx, dword [ebp - 0x9fc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9fc]
push ecx
mov edx, dword [eax + 0x50]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438690
mov dword [ebp - 0xaac], 0
mov dword [ebp - 0xa1c], 0
lea eax, [ebp - 0xaac]
push eax
lea ecx, [ebp - 0xa1c]
push ecx
push 1
push 0xffffffffffffffff
mov edx, dword [ebp - 0x9f8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9f8]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x43867c
cmp dword [ebp - 0xaac], 0
jbe 0x43867c
xor eax, eax
mov word [ebp - 0xaf0], ax
xor ecx, ecx
mov dword [ebp - 0xaee], ecx
mov dword [ebp - 0xaea], ecx
mov dword [ebp - 0xae6], ecx
mov word [ebp - 0xae2], cx
push 0
push 0
lea edx, [ebp - 0xaf0]
push edx
push 0
push str.UUID
mov eax, dword [ebp - 0xa1c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xa1c]
push edx
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438668
push 0x100
mov ecx, dword [ebp - 0xae8]
push ecx
mov edx, dword [ebp - 0x9f4]
add edx, 0x600
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea eax, [ebp - 0xaf0]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0xa1c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xa1c]
push eax
mov ecx, dword [edx + 8]
call ecx
mov edx, dword [ebp - 0x9f8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9f8]
push ecx
mov edx, dword [eax + 8]
call edx
lea eax, [ebp - 0x9f8]
push eax
push 0
push 0x30
push str.SELECT__FROM_Win32_ComputerSystemProduct
push 0x502d34
mov ecx, dword [ebp - 0x9fc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x9fc]
push eax
mov ecx, dword [edx + 0x50]
call ecx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x4387d3
mov dword [ebp - 0xabc], 0
mov dword [ebp - 0xa20], 0
lea edx, [ebp - 0xabc]
push edx
lea eax, [ebp - 0xa20]
push eax
push 1
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x9f8]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x9f8]
push eax
mov ecx, dword [edx + 0x10]
call ecx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x4387bf
cmp dword [ebp - 0xabc], 0
jbe 0x4387bf
xor edx, edx
mov word [ebp - 0xb00], dx
xor eax, eax
mov dword [ebp - 0xafe], eax
mov dword [ebp - 0xafa], eax
mov dword [ebp - 0xaf6], eax
mov word [ebp - 0xaf2], ax
push 0
push 0
lea ecx, [ebp - 0xb00]
push ecx
push 0
push str.Name
mov edx, dword [ebp - 0xa20]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa20]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x4387ab
push 0x100
mov eax, dword [ebp - 0xaf8]
push eax
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x800
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea edx, [ebp - 0xb00]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0xa20]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xa20]
push edx
mov eax, dword [ecx + 8]
call eax
mov ecx, dword [ebp - 0x9f8]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x9f8]
push eax
mov ecx, dword [edx + 8]
call ecx
lea edx, [ebp - 0x9f8]
push edx
push 0
push 0x30
push 0x502d48
push 0x502d90
mov eax, dword [ebp - 0x9fc]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x9fc]
push edx
mov eax, dword [ecx + 0x50]
call eax
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438915
mov dword [ebp - 0xab8], 0
mov dword [ebp - 0xa24], 0
lea ecx, [ebp - 0xab8]
push ecx
lea edx, [ebp - 0xa24]
push edx
push 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0x9f8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x9f8]
push edx
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438901
cmp dword [ebp - 0xab8], 0
jbe 0x438901
xor ecx, ecx
mov word [ebp - 0xb10], cx
xor edx, edx
mov dword [ebp - 0xb0e], edx
mov dword [ebp - 0xb0a], edx
mov dword [ebp - 0xb06], edx
mov word [ebp - 0xb02], dx
push 0
push 0
lea eax, [ebp - 0xb10]
push eax
push 0
push 0x502d98
mov ecx, dword [ebp - 0xa24]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xa24]
push eax
mov ecx, dword [edx + 0x10]
call ecx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x4388ed
push 0x100
mov edx, dword [ebp - 0xb08]
push edx
mov eax, dword [ebp - 0x9f4]
add eax, 0xa00
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0xb10]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebp - 0xa24]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa24]
push ecx
mov edx, dword [eax + 8]
call edx
mov eax, dword [ebp - 0x9f8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x9f8]
push edx
mov eax, dword [ecx + 8]
call eax
lea ecx, [ebp - 0x9f8]
push ecx
push 0
push 0x30
push str.SELECT__FROM_Win32_OperatingSystem
push 0x502db4
mov edx, dword [ebp - 0x9fc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9fc]
push ecx
mov edx, dword [eax + 0x50]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438ac0
mov dword [ebp - 0xab0], 0
mov dword [ebp - 0xa2c], 0
lea eax, [ebp - 0xab0]
push eax
lea ecx, [ebp - 0xa2c]
push ecx
push 1
push 0xffffffffffffffff
mov edx, dword [ebp - 0x9f8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9f8]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438aac
cmp dword [ebp - 0xab0], 0
jbe 0x438aac
xor eax, eax
mov word [ebp - 0xb20], ax
xor ecx, ecx
mov dword [ebp - 0xb1e], ecx
mov dword [ebp - 0xb1a], ecx
mov dword [ebp - 0xb16], ecx
mov word [ebp - 0xb12], cx
push 0
push 0
lea edx, [ebp - 0xb20]
push edx
push 0
push 0x502e38
mov eax, dword [ebp - 0xa2c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xa2c]
push edx
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438a98
push 0x100
mov ecx, dword [ebp - 0xb18]
push ecx
mov edx, dword [ebp - 0x9f4]
add edx, 0xc00
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov dword [ebp - 0xa28], 0
jmp 0x438a42
mov eax, dword [ebp - 0xa28]
add eax, 1
mov dword [ebp - 0xa28], eax
mov ecx, dword [ebp - 0xa28]
mov edx, dword [ebp - 0x9f4]
movzx eax, word [edx + ecx*2 + 0xc00]
test eax, eax
je 0x438a8b
mov ecx, dword [ebp - 0xa28]
mov edx, dword [ebp - 0x9f4]
movzx eax, word [edx + ecx*2 + 0xc00]
cmp eax, 0x2e
jne 0x438a89
xor ecx, ecx
mov edx, dword [ebp - 0xa28]
mov eax, dword [ebp - 0x9f4]
mov word [eax + edx*2 + 0xc00], cx
jmp 0x438a33
lea ecx, [ebp - 0xb20]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebp - 0xa2c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa2c]
push ecx
mov edx, dword [eax + 8]
call edx
mov eax, dword [ebp - 0x9f8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x9f8]
push edx
mov eax, dword [ecx + 8]
call eax
lea ecx, [ebp - 0x9f8]
push ecx
push 0
push 0x30
push 0x502dbc
push 0x502e50
mov edx, dword [ebp - 0x9fc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9fc]
push ecx
mov edx, dword [eax + 0x50]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438c03
mov dword [ebp - 0xab4], 0
mov dword [ebp - 0xa30], 0
lea eax, [ebp - 0xab4]
push eax
lea ecx, [ebp - 0xa30]
push ecx
push 1
push 0xffffffffffffffff
mov edx, dword [ebp - 0x9f8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9f8]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438bef
cmp dword [ebp - 0xab4], 0
jbe 0x438bef
xor eax, eax
mov word [ebp - 0xb30], ax
xor ecx, ecx
mov dword [ebp - 0xb2e], ecx
mov dword [ebp - 0xb2a], ecx
mov dword [ebp - 0xb26], ecx
mov word [ebp - 0xb22], cx
push 0
push 0
lea edx, [ebp - 0xb30]
push edx
push 0
push 0x502e58
mov eax, dword [ebp - 0xa30]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xa30]
push edx
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438bdb
push 0x100
mov ecx, dword [ebp - 0xb28]
push ecx
mov edx, dword [ebp - 0x9f4]
add edx, 0xe00
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea eax, [ebp - 0xb30]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0xa30]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xa30]
push eax
mov ecx, dword [edx + 8]
call ecx
mov edx, dword [ebp - 0x9f8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x9f8]
push ecx
mov edx, dword [eax + 8]
call edx
lea eax, [ebp - 0x9f8]
push eax
push 0
push 0x30
push str.SELECT__FROM_Win32_BIOS
push 0x502ea8
mov ecx, dword [ebp - 0x9fc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x9fc]
push eax
mov ecx, dword [edx + 0x50]
call ecx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438d46
mov dword [ebp - 0xa90], 0
mov dword [ebp - 0xa34], 0
lea edx, [ebp - 0xa90]
push edx
lea eax, [ebp - 0xa34]
push eax
push 1
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x9f8]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x9f8]
push eax
mov ecx, dword [edx + 0x10]
call ecx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438d32
cmp dword [ebp - 0xa90], 0
jbe 0x438d32
xor edx, edx
mov word [ebp - 0xb5c], dx
xor eax, eax
mov dword [ebp - 0xb5a], eax
mov dword [ebp - 0xb56], eax
mov dword [ebp - 0xb52], eax
mov word [ebp - 0xb4e], ax
push 0
push 0
lea ecx, [ebp - 0xb5c]
push ecx
push 0
push str.SMBIOSBIOSVersion
mov edx, dword [ebp - 0xa34]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa34]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438d1e
push 0x100
mov eax, dword [ebp - 0xb54]
push eax
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x1000
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea edx, [ebp - 0xb5c]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0xa34]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xa34]
push edx
mov eax, dword [ecx + 8]
call eax
mov ecx, dword [ebp - 0x9f8]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x9f8]
push eax
mov ecx, dword [edx + 8]
call ecx
lea edx, [ebp - 0x9f8]
push edx
push 0
push 0x30
push str.SELECT__FROM_Win32_DiskDrive
push 0x502f10
mov eax, dword [ebp - 0x9fc]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x9fc]
push edx
mov eax, dword [ecx + 0x50]
call eax
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438f76
mov dword [ebp - 0xa94], 0
mov dword [ebp - 0xa3c], 0
lea ecx, [ebp - 0xa94]
push ecx
lea edx, [ebp - 0xa3c]
push edx
push 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0x9f8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x9f8]
push edx
mov eax, dword [ecx + 0x10]
call eax
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438f62
cmp dword [ebp - 0xa94], 0
jbe 0x438f62
xor ecx, ecx
mov word [ebp - 0xb8c], cx
xor edx, edx
mov dword [ebp - 0xb8a], edx
mov dword [ebp - 0xb86], edx
mov dword [ebp - 0xb82], edx
mov word [ebp - 0xb7e], dx
push 0
push 0
lea eax, [ebp - 0xb8c]
push eax
push 0
push str.SerialNumber
mov ecx, dword [ebp - 0xa3c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xa3c]
push eax
mov ecx, dword [edx + 0x10]
call ecx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x438f4e
xor edx, edx
mov word [ebp - 0x75c], dx
push 0x206
push 0
lea eax, [ebp - 0x75a]
push eax
call fcn.0049d060
add esp, 0xc
push 0x100
mov ecx, dword [ebp - 0xb84]
push ecx
lea edx, [ebp - 0x75c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov dword [ebp - 0xb9c], 0x208
mov dword [ebp - 0xa38], 0
jmp 0x438e96
mov eax, dword [ebp - 0xa38]
add eax, 1
mov dword [ebp - 0xa38], eax
cmp dword [ebp - 0xa38], 0x208
jae 0x438f41
mov ecx, dword [ebp - 0xa38]
movzx edx, word [ebp + ecx*2 - 0x75c]
push edx
call fcn.004a61ae
add esp, 4
test eax, eax
jne 0x438f3c
mov eax, dword [ebp - 0xa38]
lea ecx, [ebp + eax*2 - 0x75c]
mov dword [ebp - 0xa68], ecx
mov edx, dword [ebp - 0x9f4]
add edx, 0x200
mov dword [ebp - 0xa5c], edx
mov eax, dword [ebp - 0xa5c]
mov dword [ebp - 0xb94], eax
mov ecx, dword [ebp - 0xa68]
mov dx, word [ecx]
mov word [ebp - 0xa04], dx
mov eax, dword [ebp - 0xa5c]
mov cx, word [ebp - 0xa04]
mov word [eax], cx
mov edx, dword [ebp - 0xa68]
add edx, 2
mov dword [ebp - 0xa68], edx
mov eax, dword [ebp - 0xa5c]
add eax, 2
mov dword [ebp - 0xa5c], eax
cmp word [ebp - 0xa04], 0
jne 0x438ef2
jmp 0x438f41
jmp 0x438e87
lea ecx, [ebp - 0xb8c]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [ebp - 0xa3c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa3c]
push ecx
mov edx, dword [eax + 8]
call edx
mov eax, dword [ebp - 0x9f8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x9f8]
push edx
mov eax, dword [ecx + 8]
call eax
mov ecx, dword [ebp - 0x9fc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x9fc]
push eax
mov ecx, dword [edx + 8]
call ecx
mov edx, dword [ebp - 0xa40]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa40]
push ecx
mov edx, dword [eax + 8]
call edx
mov dword [ebp - 0xa9c], 0
mov dword [ebp - 0xa98], 0
mov eax, 1
xor edx, edx
cpuid
mov dword [ebp - 0xa9c], edx
mov dword [ebp - 0xa98], eax
mov eax, dword [ebp - 0xa98]
push eax
mov ecx, dword [ebp - 0xa9c]
push ecx
push str._08X_08X
mov edx, dword [ebp - 0x9f4]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
call fcn.004382c0
test eax, eax
je 0x43904e
mov eax, dword [ebp - 0x9f4]
add eax, 0x200
mov dword [ebp - 0xa44], eax
mov ecx, dword [ebp - 0xa44]
add ecx, 2
mov dword [ebp - 0xb68], ecx
mov edx, dword [ebp - 0xa44]
mov ax, word [edx]
mov word [ebp - 0xa64], ax
add dword [ebp - 0xa44], 2
cmp word [ebp - 0xa64], 0
jne 0x439013
mov ecx, dword [ebp - 0xa44]
sub ecx, dword [ebp - 0xb68]
sar ecx, 1
mov dword [ebp - 0xb6c], ecx
jne 0x4390e4
push 0x200
push 0
mov edx, dword [ebp - 0x9f4]
add edx, 0x200
push edx
call fcn.0049d060
add esp, 0xc
mov dword [ebp - 0xa50], 0
jmp 0x439085
mov eax, dword [ebp - 0xa50]
add eax, 1
mov dword [ebp - 0xa50], eax
cmp dword [ebp - 0xa50], 0xa
jge 0x4390e4
xor ecx, ecx
mov word [ebp - 0x95c], cx
push 0x1fe
push 0
lea edx, [ebp - 0x95a]
push edx
call fcn.0049d060
add esp, 0xc
lea eax, [ebp - 0x95c]
push eax
mov ecx, dword [ebp - 0xa50]
push ecx
call fcn.0043a290
add esp, 8
test eax, eax
je 0x4390e2
lea edx, [ebp - 0x95c]
push edx
mov eax, dword [ebp - 0x9f4]
add eax, 0x200
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x4390e4
jmp 0x439076
mov byte [ebp - 0x18], 0
xor ecx, ecx
mov dword [ebp - 0x17], ecx
mov byte [ebp - 0x13], cl
mov dword [ebp - 0xa88], 0
lea edx, [ebp - 0xa88]
push edx
push 0
call sub.IPHLPAPI.DLL_GetAdaptersInfo
mov eax, dword [ebp - 0xa88]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0xa84], eax
cmp dword [ebp - 0xa84], 0
je 0x4391b6
lea ecx, [ebp - 0xa88]
push ecx
mov edx, dword [ebp - 0xa84]
push edx
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
jne 0x4391b6
mov eax, dword [ebp - 0xa84]
mov dword [ebp - 0xa48], eax
jmp 0x43915d
mov ecx, dword [ebp - 0xa48]
mov edx, dword [ecx]
mov dword [ebp - 0xa48], edx
cmp dword [ebp - 0xa48], 0
je 0x4391b6
mov eax, dword [ebp - 0xa48]
add eax, 8
push eax
call fcn.0043a4d0
add esp, 4
mov dword [ebp - 0xa80], eax
cmp dword [ebp - 0xa80], 1
je 0x439190
cmp dword [ebp - 0xa80], 0
jne 0x4391b4
mov ecx, dword [ebp - 0xa48]
add ecx, 0x194
mov edx, dword [ecx]
mov dword [ebp - 0x18], edx
mov ax, word [ecx + 4]
mov word [ebp - 0x14], ax
cmp dword [ebp - 0xa80], 0
jne 0x4391b4
jmp 0x4391b6
jmp 0x43914f
mov ecx, 1
imul edx, ecx, 5
movzx eax, byte [ebp + edx - 0x18]
push eax
mov ecx, 1
shl ecx, 2
movzx edx, byte [ebp + ecx - 0x18]
push edx
mov eax, 1
imul ecx, eax, 3
movzx edx, byte [ebp + ecx - 0x18]
push edx
mov eax, 1
shl eax, 1
movzx ecx, byte [ebp + eax - 0x18]
push ecx
mov edx, 1
shl edx, 0
movzx eax, byte [ebp + edx - 0x18]
push eax
mov ecx, 1
imul edx, ecx, 0
movzx eax, byte [ebp + edx - 0x18]
push eax
push str._02X__02X__02X__02X__02X__02X
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x400
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x20
mov edx, dword [ebp - 0x9f4]
add edx, 0x200
push edx
call fcn.00431d40
add esp, 4
mov eax, dword [ebp - 0x9f4]
add eax, 0x200
mov dword [ebp - 0xa10], eax
mov ecx, dword [ebp - 0xa10]
add ecx, 2
mov dword [ebp - 0xb34], ecx
mov edx, dword [ebp - 0xa10]
mov ax, word [edx]
mov word [ebp - 0xa5e], ax
add dword [ebp - 0xa10], 2
cmp word [ebp - 0xa5e], 0
jne 0x439259
mov ecx, dword [ebp - 0xa10]
sub ecx, dword [ebp - 0xb34]
sar ecx, 1
mov dword [ebp - 0xb38], ecx
je 0x439340
mov edx, dword [ebp - 0x9f4]
add edx, 0x200
push edx
lea eax, [ebp - 0x974]
push eax
call fcn.00402250
add esp, 8
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x9fd]
call fcn.00401930
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x974]
call fcn.00403330
push eax
lea ecx, [ebp - 0x974]
call fcn.00403340
push eax
lea ecx, [ebp - 0x9fd]
call fcn.00405a20
lea ecx, [ebp - 0x974]
call fcn.00403330
push eax
lea ecx, [ebp - 0x974]
call fcn.00403340
push eax
push 3
push 0x502f84
push 0x502f88
push reloc.WS2_32.dll_accept
call fcn.00431c10
add esp, 0x18
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x9fd]
call fcn.004046c0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x974]
call fcn.00404f10
jmp 0x439487
mov byte [ebp - 0x144], 0
push 0x63
push 0
lea ecx, [ebp - 0x143]
push ecx
call fcn.0049d060
add esp, 0xc
mov dword [ebp - 0xaa0], 0x64
lea edx, [ebp - 0xaa0]
push edx
lea eax, [ebp - 0x144]
push eax
push 0x502fa4
push 0x502fa8
push reloc.WS2_32.dll_accept
call fcn.00431a80
add esp, 0x14
movzx ecx, al
test ecx, ecx
je 0x4393cd
lea ecx, [ebp - 0x9fe]
call fcn.00401930
mov dword [ebp - 4], 2
mov edx, dword [ebp - 0xaa0]
push edx
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp - 0x9fe]
call fcn.00405a20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9fe]
call fcn.004046c0
push 0x200
push 0
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x200
push ecx
call fcn.0049d060
add esp, 0xc
lea edx, [ebp - 0x144]
push edx
lea eax, [ebp - 0x9ec]
push eax
call fcn.00402380
add esp, 8
mov dword [ebp - 0xb3c], eax
mov ecx, dword [ebp - 0xb3c]
call fcn.004046f0
mov dword [ebp - 0xa7c], eax
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x200
mov dword [ebp - 0xa54], ecx
mov edx, dword [ebp - 0xa54]
mov dword [ebp - 0xba0], edx
mov eax, dword [ebp - 0xa7c]
mov cx, word [eax]
mov word [ebp - 0xa06], cx
mov edx, dword [ebp - 0xa54]
mov ax, word [ebp - 0xa06]
mov word [edx], ax
mov ecx, dword [ebp - 0xa7c]
add ecx, 2
mov dword [ebp - 0xa7c], ecx
mov edx, dword [ebp - 0xa54]
add edx, 2
mov dword [ebp - 0xa54], edx
cmp word [ebp - 0xa06], 0
jne 0x439434
lea ecx, [ebp - 0x9ec]
call fcn.00404b60
mov eax, dword [ebp - 0x9f4]
mov dword [ebp - 0xa14], eax
mov ecx, dword [ebp - 0xa14]
add ecx, 2
mov dword [ebp - 0xb64], ecx
mov edx, dword [ebp - 0xa14]
mov ax, word [edx]
mov word [ebp - 0xa60], ax
add dword [ebp - 0xa14], 2
cmp word [ebp - 0xa60], 0
jne 0x4394a2
mov ecx, dword [ebp - 0xa14]
sub ecx, dword [ebp - 0xb64]
sar ecx, 1
mov dword [ebp - 0xb40], ecx
je 0x439583
mov edx, dword [ebp - 0x9f4]
push edx
lea eax, [ebp - 0x9a4]
push eax
call fcn.00402250
add esp, 8
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x9ff]
call fcn.00401930
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x9a4]
call fcn.00403330
push eax
lea ecx, [ebp - 0x9a4]
call fcn.00403340
push eax
lea ecx, [ebp - 0x9ff]
call fcn.00405a20
lea ecx, [ebp - 0x9a4]
call fcn.00403330
push eax
lea ecx, [ebp - 0x9a4]
call fcn.00403340
push eax
push 3
push 0x502fc4
push 0x502fc8
push reloc.WS2_32.dll_accept
call fcn.00431c10
add esp, 0x18
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x9ff]
call fcn.004046c0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9a4]
call fcn.00404f10
jmp 0x4396be
mov byte [ebp - 0xe0], 0
push 0x63
push 0
lea ecx, [ebp - 0xdf]
push ecx
call fcn.0049d060
add esp, 0xc
mov dword [ebp - 0xaa4], 0x64
lea edx, [ebp - 0xaa4]
push edx
lea eax, [ebp - 0xe0]
push eax
push 0x502fe4
push 0x502fe8
push reloc.WS2_32.dll_accept
call fcn.00431a80
add esp, 0x14
movzx ecx, al
test ecx, ecx
je 0x439610
lea ecx, [ebp - 0xa00]
call fcn.00401930
mov dword [ebp - 4], 5
mov edx, dword [ebp - 0xaa4]
push edx
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp - 0xa00]
call fcn.00405a20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa00]
call fcn.004046c0
push 0x200
push 0
mov ecx, dword [ebp - 0x9f4]
push ecx
call fcn.0049d060
add esp, 0xc
lea edx, [ebp - 0xe0]
push edx
lea eax, [ebp - 0x9d4]
push eax
call fcn.00402380
add esp, 8
mov dword [ebp - 0xb44], eax
mov ecx, dword [ebp - 0xb44]
call fcn.004046f0
mov dword [ebp - 0xa78], eax
mov ecx, dword [ebp - 0x9f4]
mov dword [ebp - 0xa4c], ecx
mov edx, dword [ebp - 0xa4c]
mov dword [ebp - 0xb90], edx
mov eax, dword [ebp - 0xa78]
mov cx, word [eax]
mov word [ebp - 0xa08], cx
mov edx, dword [ebp - 0xa4c]
mov ax, word [ebp - 0xa08]
mov word [edx], ax
mov ecx, dword [ebp - 0xa78]
add ecx, 2
mov dword [ebp - 0xa78], ecx
mov edx, dword [ebp - 0xa4c]
add edx, 2
mov dword [ebp - 0xa4c], edx
cmp word [ebp - 0xa08], 0
jne 0x43966b
lea ecx, [ebp - 0x9d4]
call fcn.00404b60
mov eax, dword [ebp - 0x9f4]
add eax, 0x400
mov dword [ebp - 0xa18], eax
mov ecx, dword [ebp - 0xa18]
add ecx, 2
mov dword [ebp - 0xb48], ecx
mov edx, dword [ebp - 0xa18]
mov ax, word [edx]
mov word [ebp - 0xa62], ax
add dword [ebp - 0xa18], 2
cmp word [ebp - 0xa62], 0
jne 0x4396de
mov ecx, dword [ebp - 0xa18]
sub ecx, dword [ebp - 0xb48]
sar ecx, 1
mov dword [ebp - 0xb4c], ecx
je 0x4397c5
mov edx, dword [ebp - 0x9f4]
add edx, 0x400
push edx
lea eax, [ebp - 0x98c]
push eax
call fcn.00402250
add esp, 8
mov dword [ebp - 4], 6
lea ecx, [ebp - 0xa01]
call fcn.00401930
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x98c]
call fcn.00403330
push eax
lea ecx, [ebp - 0x98c]
call fcn.00403340
push eax
lea ecx, [ebp - 0xa01]
call fcn.00405a20
lea ecx, [ebp - 0x98c]
call fcn.00403330
push eax
lea ecx, [ebp - 0x98c]
call fcn.00403340
push eax
push 3
push 0x503004
push 0x503008
push reloc.WS2_32.dll_accept
call fcn.00431c10
add esp, 0x18
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa01]
call fcn.004046c0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x98c]
call fcn.00404f10
jmp 0x4398fd
mov byte [ebp - 0x7c], 0
push 0x63
push 0
lea ecx, [ebp - 0x7b]
push ecx
call fcn.0049d060
add esp, 0xc
mov dword [ebp - 0xaa8], 0x64
lea edx, [ebp - 0xaa8]
push edx
lea eax, [ebp - 0x7c]
push eax
push 0x503024
push 0x503028
push reloc.WS2_32.dll_accept
call fcn.00431a80
add esp, 0x14
movzx ecx, al
test ecx, ecx
je 0x439846
lea ecx, [ebp - 0xa02]
call fcn.00401930
mov dword [ebp - 4], 8
mov edx, dword [ebp - 0xaa8]
push edx
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0xa02]
call fcn.00405a20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa02]
call fcn.004046c0
push 0x200
push 0
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x400
push ecx
call fcn.0049d060
add esp, 0xc
lea edx, [ebp - 0x7c]
push edx
lea eax, [ebp - 0x9bc]
push eax
call fcn.00402380
add esp, 8
mov dword [ebp - 0xb60], eax
mov ecx, dword [ebp - 0xb60]
call fcn.004046f0
mov dword [ebp - 0xa74], eax
mov ecx, dword [ebp - 0x9f4]
add ecx, 0x400
mov dword [ebp - 0xa58], ecx
mov edx, dword [ebp - 0xa58]
mov dword [ebp - 0xb98], edx
mov eax, dword [ebp - 0xa74]
mov cx, word [eax]
mov word [ebp - 0xa0a], cx
mov edx, dword [ebp - 0xa58]
mov ax, word [ebp - 0xa0a]
mov word [edx], ax
mov ecx, dword [ebp - 0xa74]
add ecx, 2
mov dword [ebp - 0xa74], ecx
mov edx, dword [ebp - 0xa58]
add edx, 2
mov dword [ebp - 0xa58], edx
cmp word [ebp - 0xa0a], 0
jne 0x4398aa
lea ecx, [ebp - 0x9bc]
call fcn.00404b60
mov dword [ebp - 0xac0], 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0xac0]
push eax
push 0
push 0
push 0x503044
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x43994b
mov ecx, dword [ebp - 0xac0]
push ecx
push str._08X
mov edx, dword [ebp - 0x9f4]
add edx, 0x1200
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
xor eax, eax
mov word [ebp - 0x554], ax
push 0x206
push 0
lea ecx, [ebp - 0x552]
push ecx
call fcn.0049d060
add esp, 0xc
xor edx, edx
mov word [ebp - 0x34c], dx
push 0x206
push 0
lea eax, [ebp - 0x34a]
push eax
call fcn.0049d060
add esp, 0xc
xorps xmm0, xmm0
movlpd qword [ebp - 0xac8], xmm0
xorps xmm0, xmm0
movlpd qword [ebp - 0xad8], xmm0
xorps xmm0, xmm0
movlpd qword [ebp - 0xad0], xmm0
lea ecx, [ebp - 0x554]
push ecx
push 0
push 0
push 0x25
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
jl 0x439bb8
push 0x503058
lea edx, [ebp - 0x554]
push edx
lea eax, [ebp - 0x34c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test eax, eax
je 0x439a74
push 0
push 0
push 3
push 0
push 1
push accept
lea ecx, [ebp - 0x34c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xa8c], eax
cmp dword [ebp - 0xa8c], 0xffffffff
je 0x439a74
mov dword [ebp - 0xb74], 0
xor edx, edx
mov dword [ebp - 0xb70], edx
push 0
push 0
lea eax, [ebp - 0xb74]
push eax
mov ecx, dword [ebp - 0xa8c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x439a67
lea edx, [ebp - 0xb74]
push edx
call fcn.0043a240
add esp, 4
mov dword [ebp - 0xac8], eax
mov dword [ebp - 0xac4], edx
mov eax, dword [ebp - 0xa8c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.user32.dll
lea ecx, [ebp - 0x554]
push ecx
lea edx, [ebp - 0x34c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test eax, eax
je 0x439b16
push 0
push 0
push 3
push 0
push 1
push accept
lea eax, [ebp - 0x34c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xa70], eax
cmp dword [ebp - 0xa70], 0xffffffff
je 0x439b16
mov dword [ebp - 0xb7c], 0
xor ecx, ecx
mov dword [ebp - 0xb78], ecx
push 0
push 0
lea edx, [ebp - 0xb7c]
push edx
mov eax, dword [ebp - 0xa70]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x439b09
lea ecx, [ebp - 0xb7c]
push ecx
call fcn.0043a240
add esp, 4
mov dword [ebp - 0xad8], eax
mov dword [ebp - 0xad4], edx
mov edx, dword [ebp - 0xa70]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.notepad.exe
lea eax, [ebp - 0x554]
push eax
lea ecx, [ebp - 0x34c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test eax, eax
je 0x439bb8
push 0
push 0
push 3
push 0
push 1
push accept
lea edx, [ebp - 0x34c]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xa6c], eax
cmp dword [ebp - 0xa6c], 0xffffffff
je 0x439bb8
mov dword [ebp - 0xae0], 0
xor eax, eax
mov dword [ebp - 0xadc], eax
push 0
push 0
lea ecx, [ebp - 0xae0]
push ecx
mov edx, dword [ebp - 0xa6c]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x439bab
lea eax, [ebp - 0xae0]
push eax
call fcn.0043a240
add esp, 4
mov dword [ebp - 0xad0], eax
mov dword [ebp - 0xacc], edx
mov ecx, dword [ebp - 0xa6c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0xacc]
push edx
mov eax, dword [ebp - 0xad0]
push eax
mov ecx, dword [ebp - 0xad4]
push ecx
mov edx, dword [ebp - 0xad8]
push edx
mov eax, dword [ebp - 0xac4]
push eax
mov ecx, dword [ebp - 0xac8]
push ecx
push str._llu__llu__llu
push 0x100
mov edx, dword [ebp - 0x9f4]
add edx, 0x1400
push edx
call fcn.0043a760
add esp, 0x24
mov eax, dword [ebp - 0x9f4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00497ebf
mov esp, ebp
pop ebp
ret