Function at 0x10038ad0
Capabilities:
Get system information on windows
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
push ebx
push esi
push edi
push 0x74
xorps xmm0, xmm0
mov byte [esp + 0x16], 0
push 0
push 0x101445b4
movlpd qword [esp + 0x2c], xmm0
call fcn.100a57f0
add esp, 0xc
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0x50]
lea edi, [esp + 0x2c]
mov dword [0x10144614], eax
xor ecx, ecx
xor eax, eax
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov esi, 0x1012f2b4
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
xor edi, edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [0x101445b4], eax
mov dword [0x101445b8], ecx
mov dword [0x101445bc], edx
cmp dword [esi - 4], ecx
sete ch
cmp dword [esi - 8], eax
sete byte [esp + 0x13]
and ch, byte [esp + 0x13]
cmp dword [esi], edx
sete cl
test cl, ch
mov ecx, dword [esp + 0x38]
jne 0x10038b7e
inc edi
add esi, 0x10
cmp edi, 4
jb 0x10038b54
jmp 0x10038b8c
shl edi, 4
mov eax, dword [edi + 0x1012f2a8]
mov dword [0x10144604], eax
cmp dword [esp + 0x18], 1
jb 0x10038e88
mov eax, 1
lea edi, [esp + 0x2c]
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov edx, dword [esp + 0x2c]
mov ecx, edx
shr ecx, 8
mov esi, edx
shr esi, 4
and ecx, 0xf
mov eax, edx
mov dword [0x10144608], ecx
and esi, 0xf
and eax, 0xf
mov dword [0x1014460c], esi
mov dword [0x10144610], eax
cmp ecx, 0xf
jne 0x10038c03
mov eax, edx
shr eax, 0x14
movzx eax, al
add eax, ecx
mov dword [0x10144608], eax
mov eax, edx
shr eax, 0xc
and eax, 0xf0
add esi, eax
mov dword [0x1014460c], esi
mov eax, dword [esp + 0x30]
mov edi, dword [0x10144618]
movzx ecx, al
mov dword [0x1014462c], ecx
mov ecx, eax
shr eax, 0x10
shr ecx, 8
movzx eax, al
shr edx, 0xc
movzx ecx, cl
and edx, 3
shl ecx, 3
mov dword [0x10144634], eax
mov eax, dword [esp + 0x34]
mov dword [0x10144628], edx
mov dword [0x10144630], ecx
test al, 1
je 0x10038c52
or edi, 0x100000
mov dword [0x10144618], edi
test al, 2
je 0x10038c62
or edi, 0x80000000
mov dword [0x10144618], edi
test al, 8
je 0x10038c72
or edi, 0x4000000
mov dword [0x10144618], edi
test eax, 0x200
je 0x10038c85
or edi, 0x200000
mov dword [0x10144618], edi
test eax, 0x2000
je 0x10038c95
or edi, 0x40
mov dword [0x10144618], edi
test eax, 0x80000
je 0x10038ca8
or edi, 0x800000
mov dword [0x10144618], edi
test eax, 0x100000
je 0x10038cbb
or edi, 0x1000000
mov dword [0x10144618], edi
test eax, 0x400000
je 0x10038cce
or edi, 0x8000000
mov dword [0x10144618], edi
test eax, 0x800000
je 0x10038ce1
or edi, 0x10000000
mov dword [0x10144618], edi
test eax, 0x2000000
je 0x10038cf4
or edi, 0x40000000
mov dword [0x10144618], edi
mov ecx, dword [0x1014461c]
test eax, 0x4000000
je 0x10038d0a
or ecx, 8
mov dword [0x1014461c], ecx
test eax, 0x8000000
je 0x10038d1a
or ecx, 0x10
mov dword [0x1014461c], ecx
test eax, 0x40000000
je 0x10038d2a
or ecx, 1
mov dword [0x1014461c], ecx
mov ecx, dword [esp + 0x38]
test cl, 0x10
je 0x10038d3c
or edi, 4
mov dword [0x10144618], edi
test ecx, 0x100
je 0x10038d4d
or edi, 0x20
mov dword [0x10144618], edi
test ecx, 0x8000
je 0x10038d5e
or edi, 0x10
mov dword [0x10144618], edi
test ecx, 0x80000
je 0x10038d72
or edi, 0x80
mov dword [0x10144618], edi
test ecx, 0x800000
je 0x10038d86
or edi, 0x4000
mov dword [0x10144618], edi
test ecx, 0x1000000
je 0x10038d9a
or edi, 0x1000
mov dword [0x10144618], edi
test ecx, 0x2000000
je 0x10038dae
or edi, 0x48000
mov dword [0x10144618], edi
test ecx, 0x4000000
je 0x10038dc2
or edi, 0xc0000
mov dword [0x10144618], edi
and ecx, 0x10000000
je 0x10038dd3
or edi, 2
mov dword [0x10144618], edi
mov edx, dword [esp + 0x50]
cmp edx, 1
jne 0x10038df5
cmp dword [0x10144604], 2
jne 0x10038df5
test ecx, ecx
mov esi, 2
cmovne edx, esi
mov dword [0x10144614], edx
mov ecx, eax
and ecx, 0xc000000
cmp ecx, 0xc000000
jne 0x10038e12
xor ecx, ecx
xgetbv
mov esi, eax
mov eax, dword [esp + 0x34]
jmp 0x10038e16
mov esi, dword [esp + 0x20]
mov dword [esp + 0x14], esi
test eax, 0x10000000
je 0x10038e96
mov ecx, esi
and ecx, 6
cmp cl, 6
jne 0x10038e96
mov edx, dword [0x1014461c]
or edx, 0x20
mov dword [0x1014461c], edx
test eax, 0x800
je 0x10038e4d
or edx, 0x400
mov dword [0x1014461c], edx
test eax, 0x4000
je 0x10038e60
or edx, 0x100
mov dword [0x1014461c], edx
test eax, 0x10000
je 0x10038e73
or edx, 0x200
mov dword [0x1014461c], edx
test eax, 0x20000000
je 0x10038e96
or edx, 0x80
mov dword [0x1014461c], edx
jmp 0x10038e96
mov eax, dword [esp + 0x20]
mov edi, dword [0x10144618]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x18], 7
jb 0x10039063
mov eax, 7
xor ecx, ecx
push ebx
cpuid
mov dword [esp + 0x20], ebx
pop ebx
lea esi, [esp + 0x2c]
mov dword [esi], eax
lea eax, [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x30]
mov edx, dword [0x1014461c]
test al, 1
je 0x10038ee1
or edx, 0x20000
mov dword [0x1014461c], edx
test al, 8
je 0x10038ef1
or edx, 0x800
mov dword [0x1014461c], edx
test al, 0x10
je 0x10038f01
or edx, 0x2000
mov dword [0x1014461c], edx
test eax, 0x100
je 0x10038f14
or edx, 0x1000
mov dword [0x1014461c], edx
test eax, 0x200
je 0x10038f27
or edx, 0x40000
mov dword [0x1014461c], edx
test eax, 0x800
je 0x10038f3a
or edx, 0x4000
mov dword [0x1014461c], edx
mov ecx, eax
shr ecx, 0xe
and ecx, 0xffffff01
mov dword [esp + 0x1c], ecx
test eax, 0x40000
je 0x10038f59
or edx, 2
mov dword [0x1014461c], edx
test eax, 0x80000
je 0x10038f6c
or edx, 0x8000
mov dword [0x1014461c], edx
test eax, 0x800000
je 0x10038f7f
or edi, 0x100
mov dword [0x10144618], edi
test eax, 0x20000000
je 0x10038f8f
or edx, 4
mov dword [0x1014461c], edx
test byte [esp + 0x34], 1
je 0x10038fa2
or edi, 0x400
mov dword [0x10144618], edi
mov ecx, edx
shr ecx, 5
test cl, 1
je 0x10038fb9
test al, 0x20
je 0x10038fb9
or edx, 0x40
mov dword [0x1014461c], edx
mov ecx, dword [esp + 0x1c]
test eax, 0x10000
je 0x1003905f
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x14]
and ecx, 0x76
cmp cl, 0x76
jne 0x10039063
or edx, 0x80000
mov dword [0x1014461c], edx
test eax, 0x20000
je 0x10038ffb
or edx, 0x800000
mov dword [0x1014461c], edx
test eax, 0x4000000
je 0x1003900e
or edx, 0x200000
mov dword [0x1014461c], edx
test eax, 0x8000000
je 0x10039021
or edx, 0x400000
mov dword [0x1014461c], edx
test eax, 0x10000000
je 0x10039034
or edx, 0x100000
mov dword [0x1014461c], edx
test eax, 0x40000000
je 0x10039047
or edx, 0x1000000
mov dword [0x1014461c], edx
mov ecx, dword [esp + 0x1c]
test eax, eax
mov al, cl
jns 0x10039067
or edx, 0x2000000
mov dword [0x1014461c], edx
jmp 0x10039067
mov al, cl
jmp 0x10039067
mov al, byte [esp + 0x12]
cmp dword [esp + 0x18], 0xd
jb 0x100390b1
test al, al
je 0x100390b1
mov eax, 0xd
xor ecx, ecx
push ebx
cpuid
mov dword [esp + 0x20], ebx
pop ebx
lea esi, [esp + 0x2c]
mov dword [esi], eax
lea eax, [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x2c]
and eax, 0x18
cmp al, 0x18
jne 0x100390b1
or dword [0x1014461c], 0x10000
mov eax, accept
xor ecx, ecx
push ebx
cpuid
mov dword [esp + 0x20], ebx
pop ebx
lea esi, [esp + 0x2c]
mov dword [esi], eax
lea eax, [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov ecx, reloc.WS2_32.dll_connect
mov dword [eax + 0xc], edx
mov edx, reloc.WS2_32.dll_accept
mov eax, dword [esp + 0x2c]
cmp eax, ecx
mov dword [esp + 0x1c], 0x101445c4
cmovb ecx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
cmp ecx, edx
jb 0x10039244
mov eax, edx
xor ecx, ecx
push ebx
cpuid
mov dword [esp + 0x18], ebx
pop ebx
lea esi, [esp + 0x2c]
mov dword [esi], eax
lea eax, [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x18]
cmp edx, reloc.WS2_32.dll_accept
je 0x10039171
lea eax, [edx + 0x7ffffffe]
cmp eax, 2
ja 0x10039235
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 0xc], eax
add ecx, 0x10
mov edi, dword [0x10144618]
mov dword [esp + 0x1c], ecx
jmp 0x10039235
mov eax, dword [esp + 0x34]
test al, 1
je 0x10039185
or edi, 0x800
mov dword [0x10144618], edi
test al, 0x20
je 0x10039195
or edi, 0x20000000
mov dword [0x10144618], edi
test al, 0x40
je 0x100391a5
or edi, 0x400000
mov dword [0x10144618], edi
test al, al
jns 0x100391b5
or edi, 0x2000000
mov dword [0x10144618], edi
test eax, 0x100
je 0x100391c8
or edi, 0x200
mov dword [0x10144618], edi
mov eax, dword [esp + 0x38]
test eax, 0x100000
je 0x100391dc
or edi, 1
mov dword [0x10144618], edi
test eax, 0x200000
je 0x100391ef
or edi, 0x2000
mov dword [0x10144618], edi
test eax, 0x400000
je 0x10039202
or edi, 0x8000
mov dword [0x10144618], edi
test eax, 0x8000000
je 0x10039212
or edi, 8
mov dword [0x10144618], edi
test eax, 0x40000000
je 0x10039225
or edi, 0x28000
mov dword [0x10144618], edi
test eax, eax
jns 0x10039235
or edi, 0x10000
mov dword [0x10144618], edi
inc edx
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x20]
jbe 0x10039102
mov al, byte [0x101445c4]
xor ah, ah
mov byte [esp + 0x12], ah
mov ecx, 0x101445c4
mov byte [0x101445c4], ah
mov edx, ecx
test al, al
je 0x1003928f
cmp al, 0x20
jne 0x10039275
cmp ah, 0x40
je 0x10039284
mov ah, byte [ecx + 1]
cmp ah, al
je 0x10039280
cmp ah, 0x40
je 0x10039280
mov ah, al
mov byte [edx], al
inc edx
mov byte [esp + 0x12], ah
jmp 0x10039284
mov ah, byte [esp + 0x12]
mov al, byte [ecx + 1]
inc ecx
mov byte [ecx], 0
test al, al
jne 0x10039260
pop edi
pop esi
mov byte [edx], 0
pop ebx
mov esp, ebp
pop ebp
ret