Function at 0x439520
Capabilities:
Get mac address on windows

Disassembly:
sub esp, 0x48c
mov eax, dword [0x483390]
xor eax, esp
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x490]
push ebx
push ebp
push esi
push edi
push 0x4864b1
push 0x288
mov dword [esp + 0x28], eax
call fcn.004536b3
mov esi, eax
xor ebx, ebx
add esp, 8
cmp esi, ebx
je 0x439b7c
push 0x288
push ebx
push esi
call fcn.00446e10
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
mov edi, esi
push esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 0x288
call sub.iphlpapi.dll_GetAdaptersInfo
cmp eax, 0x6f
jne 0x4395b5
push esi
call fcn.0044423f
mov edx, dword [esp + 0x1c]
add esp, 4
push edx
call fcn.00441dab
mov edi, eax
add esp, 4
lea eax, [esp + 0x18]
push eax
push edi
mov dword [esp + 0x1c], edi
call sub.iphlpapi.dll_GetAdaptersInfo
mov dword [esp + 0x24], edi
cmp eax, ebx
jne 0x439b6b
cmp dword [esp + 0x14], ebx
je 0x439b7c
jmp 0x4395d0
mov esi, dword [esp + 0x14]
push str.Microsoft
add esi, 0x10c
push esi
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
jne 0x439b59
push 0x440
lea ecx, [esp + 0x2c]
push ebx
push ecx
call fcn.00446e10
mov ebp, dword [esp + 0x20]
mov eax, dword [ebp + 0x1a0]
dec eax
add esp, 0xc
cmp eax, 0x1b
ja case.0x43961c.2
movzx edx, byte [eax + 0x439bb8]
jmp dword [edx*4 + 0x439b98]
lea eax, [esp + 0x28]
mov edi, str.OTHER
mov ecx, eax
mov edx, 0x20
sub edi, ecx
jmp 0x439640
lea ecx, [edx + 0x7fffffde]
test ecx, ecx
je 0x4397bb
mov cl, byte [edi + eax]
cmp cl, bl
je 0x4397bb
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x439640
jmp 0x4397bf
lea eax, [esp + 0x28]
mov edi, str.ETHERNET
mov ecx, eax
mov edx, 0x20
sub edi, ecx
jmp 0x439680
lea ecx, [edx + 0x7fffffde]
test ecx, ecx
je 0x4397bb
mov cl, byte [edi + eax]
cmp cl, bl
je 0x4397bb
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x439680
jmp 0x4397bf
lea eax, [esp + 0x28]
mov edi, str.TOKENRING
mov ecx, eax
mov edx, 0x20
sub edi, ecx
jmp 0x4396c0
lea ecx, [edx + 0x7fffffde]
test ecx, ecx
je 0x4397bb
mov cl, byte [edi + eax]
cmp cl, bl
je 0x4397bb
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x4396c0
jmp 0x4397bf
lea eax, [esp + 0x28]
mov edi, str.FDDI
mov ecx, eax
mov edx, 0x20
sub edi, ecx
jmp 0x439700
lea ecx, [edx + 0x7fffffde]
test ecx, ecx
je 0x4397bb
mov cl, byte [edi + eax]
cmp cl, bl
je 0x4397bb
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x439700
jmp 0x4397bf
lea eax, [esp + 0x28]
mov edi, 0x4772d8
mov ecx, eax
mov edx, 0x20
sub edi, ecx
jmp 0x439740
lea ecx, [edx + 0x7fffffde]
test ecx, ecx
je 0x4397bb
mov cl, byte [edi + eax]
cmp cl, bl
je 0x4397bb
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x439740
jmp 0x4397bf
lea eax, [esp + 0x28]
mov edi, str.LOOPBACK
mov ecx, eax
mov edx, 0x20
sub edi, ecx
lea ecx, [ecx]
lea ecx, [edx + 0x7fffffde]
test ecx, ecx
je 0x4397bb
mov cl, byte [edi + eax]
cmp cl, bl
je 0x4397bb
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x439770
jmp 0x4397bf
lea eax, [esp + 0x28]
mov edi, str.SLIP
mov ecx, eax
mov edx, 0x20
sub edi, ecx
lea ecx, [ecx]
lea ecx, [edx + 0x7fffffde]
test ecx, ecx
je 0x4397bb
mov cl, byte [edi + eax]
cmp cl, bl
je 0x4397bb
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x4397a0
jmp 0x4397bf
cmp edx, ebx
jne 0x4397c0
dec eax
mov byte [eax], bl
lea eax, [esp + 0x14c]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
lea ecx, [edx - 1]
test ecx, ecx
je 0x4397ea
mov cl, byte [esi + eax]
cmp cl, bl
je 0x4397ea
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x4397d2
jmp 0x4397ee
cmp edx, ebx
jne 0x4397ef
dec eax
mov byte [eax], bl
lea eax, [esp + 0x48]
mov ecx, eax
sub ebp, ecx
mov edx, 0x104
lea esi, [ebp + 8]
lea ecx, [edx - 1]
test ecx, ecx
je 0x439819
mov cl, byte [esi + eax]
cmp cl, bl
je 0x439819
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x439801
jmp 0x43981d
cmp edx, ebx
jne 0x43981e
dec eax
mov esi, dword [esp + 0x14]
mov byte [eax], bl
xor eax, eax
mov dword [esp + 0x46d], eax
mov word [esp + 0x471], ax
mov byte [esp + 0x473], al
mov dword [esp + 0x474], eax
mov dword [esp + 0x478], eax
mov dword [esp + 0x47c], eax
mov dword [esp + 0x480], eax
mov dword [esp + 0x484], eax
mov dword [esp + 0x488], eax
mov dword [esp + 0x48c], eax
mov dword [esp + 0x490], eax
mov eax, dword [esi + 0x190]
xor ebp, ebp
mov byte [esp + 0x46c], bl
cmp eax, ebx
jbe 0x439950
jmp 0x439890
xor ecx, ecx
dec eax
mov dword [esp + 0x46c], ecx
mov dword [esp + 0x470], ecx
mov ecx, 8
lea edi, [esp + 0x46c]
cmp ebp, eax
jae 0x4398c1
movzx edx, byte [esi + ebp + 0x194]
push edx
push str._02X_
jmp 0x4398cf
movzx eax, byte [esi + ebp + 0x194]
push eax
push str._02X
call fcn.00401200
add esp, 8
mov eax, 0x20
lea ecx, [esp + 0x474]
cmp byte [ecx], bl
je 0x4398ef
inc ecx
sub eax, 1
jne 0x4398e3
jmp 0x439941
cmp eax, ebx
je 0x439941
mov edx, 0x20
sub edx, eax
mov ecx, 0x20
sub ecx, edx
lea eax, [esp + edx + 0x474]
je 0x43993a
lea edi, [esp + 0x46c]
lea esi, [ecx + edx + 0x7fffffdf]
sub edi, eax
lea ebx, [ebx]
cmp esi, ebx
je 0x439936
mov dl, byte [edi + eax]
cmp dl, bl
je 0x439936
mov byte [eax], dl
dec ecx
inc eax
dec esi
cmp ecx, ebx
jne 0x439920
jmp 0x43993a
cmp ecx, ebx
jne 0x43993b
dec eax
mov esi, dword [esp + 0x14]
mov byte [eax], bl
mov eax, dword [esi + 0x190]
inc ebp
cmp ebp, eax
jb 0x439890
lea eax, [esp + 0x474]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x439960
sub eax, edx
je 0x439b59
mov ecx, str.00_00_00_00_00_00
lea eax, [esp + 0x474]
jmp 0x439980
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4399a0
cmp dl, bl
je 0x43999c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4399a0
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x439980
xor eax, eax
jmp 0x4399a5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x439b59
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x4c]
push edx
push eax
mov dword [esp + 0x28], ebx
call fcn.00437890
add esp, 0xc
test eax, eax
je 0x439abd
mov edi, dword [esp + 0x1c]
cmp byte [edi], bl
jne 0x439a12
cmp byte [esp + 0x28], bl
je 0x439a12
lea esi, [esp + 0x28]
mov edx, 0x20
mov eax, edi
sub esi, edi
jmp 0x4399f0
lea ecx, [edx + 0x7fffffde]
test ecx, ecx
je 0x439a0b
mov cl, byte [esi + eax]
cmp cl, bl
je 0x439a0b
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x4399f0
jmp 0x439a0f
cmp edx, ebx
jne 0x439a10
dec eax
mov byte [eax], bl
cmp byte [edi + 0x124], bl
lea eax, [edi + 0x124]
jne 0x439a62
cmp byte [esp + 0x14c], bl
je 0x439a62
lea esi, [esp + 0x14c]
mov edx, 0x104
sub esi, eax
jmp 0x439a40
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x439a5b
mov cl, byte [esi + eax]
cmp cl, bl
je 0x439a5b
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x439a40
jmp 0x439a5f
cmp edx, ebx
jne 0x439a60
dec eax
mov byte [eax], bl
cmp byte [edi + 0x228], bl
lea eax, [edi + 0x228]
jne 0x439b59
cmp byte [esp + 0x250], bl
je 0x439b59
lea esi, [esp + 0x250]
mov edx, 0x104
sub esi, eax
nop
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x439ab1
mov cl, byte [esi + eax]
cmp cl, bl
je 0x439ab1
mov byte [eax], cl
inc eax
sub edx, 1
jne 0x439a90
dec eax
mov byte [eax], bl
jmp 0x439b59
cmp edx, ebx
jne 0x439ab6
dec eax
mov byte [eax], bl
jmp 0x439b59
cmp dword [esp + 0x4a4], ebx
je 0x439b59
mov eax, dword [esi + 0x190]
cmp eax, 6
jbe 0x439ada
mov eax, 6
mov edx, dword [esp + 0x14]
push eax
add edx, 0x194
push edx
lea eax, [esp + 0x460]
push eax
call fcn.00449cc0
lea eax, [esp + 0x360]
lea edx, [esp + 0x480]
mov ecx, eax
add esp, 0xc
mov esi, 0x104
sub edx, ecx
lea ecx, [ecx]
lea ecx, [esi + 0x7ffffefa]
test ecx, ecx
je 0x439b2b
mov cl, byte [edx + eax]
cmp cl, bl
je 0x439b2b
mov byte [eax], cl
inc eax
sub esi, 1
jne 0x439b10
jmp 0x439b2f
cmp esi, ebx
jne 0x439b30
dec eax
mov ebp, dword [esp + 0x20]
mov esi, dword [ebp + 0x14]
lea edx, [esp + 0x28]
mov byte [eax], bl
mov eax, dword [esi + 4]
push edx
push eax
push esi
call fcn.0043a790
mov ecx, ebp
mov edi, eax
call fcn.0043a7f0
mov dword [esi + 4], edi
mov ecx, dword [edi + 4]
mov dword [ecx], edi
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov dword [esp + 0x14], eax
cmp eax, ebx
jne 0x4395d0
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x439b7c
push eax
call fcn.0044423f
add esp, 4
mov ecx, dword [esp + 0x494]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.004426a0
add esp, 0x48c
ret