Function at 0x403950
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4286d8
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x436008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
call fcn.00403510
cmp dword [eax], 0
jne 0x4039b6
push dword [ebp + 8]
mov ecx, eax
call fcn.004035c0
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x403bea
push 0x430c74
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x403bea
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov ax, word [ebp - 0x7c]
cmp ax, 9
je 0x4039fb
cmp ax, 6
jne 0x403bea
push 0x14
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
lea ecx, [ebp - 0x58]
push str.2345ImageThumb64.dll
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.00401c30
mov byte [ebp - 4], 1
mov ecx, edi
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
lea edx, [ecx + 2]
mov word [ebp - 0x40], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403a57
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x40]
call fcn.00401c30
mov byte [ebp - 4], 2
lea eax, [ebp - 0x58]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x70]
call fcn.00402000
add esp, 4
mov esi, eax
mov byte [ebp - 4], 3
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x403abe
mov ecx, eax
call fcn.00401bd0
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
movq qword [ebp - 0x18], xmm0
mov word [esi], ax
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x403afc
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403af2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40422c
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x403b4e
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403b44
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404231
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x403b9f
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403b95
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404236
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.0040a4d0
test al, al
je 0x403dd0
cmp dword [ebp - 0x14], 8
lea esi, [ebp - 0x28]
cmovae esi, dword [ebp - 0x28]
call fcn.004069c0
push 0
push esi
mov ecx, eax
call fcn.00406ac0
test al, al
jne 0x403dd0
jmp 0x40419c
push 0x12
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push str.2345ImageThumb.dll
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.00401c30
mov byte [ebp - 4], 4
mov ecx, edi
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
lea edx, [ecx + 2]
mov word [ebp - 0x58], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403c46
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x58]
call fcn.00401c30
mov byte [ebp - 4], 5
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x70]
call fcn.00402000
add esp, 4
mov esi, eax
mov byte [ebp - 4], 6
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x403cad
mov ecx, eax
call fcn.00401bd0
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
movq qword [ebp - 0x18], xmm0
mov word [esi], ax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x403ceb
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403ce1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40423b
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x403d3d
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403d33
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404240
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x403d8e
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403d84
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404245
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.0040a4d0
test al, al
je 0x403dd0
cmp dword [ebp - 0x14], 8
lea esi, [ebp - 0x28]
cmovae esi, dword [ebp - 0x28]
call fcn.004069c0
push 0
push esi
mov ecx, eax
call fcn.00406ac0
test al, al
je 0x40419c
push 0xd
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push str.FreeImage.dll
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.00401c30
mov byte [ebp - 4], 7
mov ecx, edi
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
lea edx, [ecx + 2]
mov word [ebp - 0x58], ax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403e30
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x58]
call fcn.00401c30
mov byte [ebp - 4], 8
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x70]
call fcn.00402000
add esp, 4
mov esi, eax
mov byte [ebp - 4], 9
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x403e97
mov ecx, eax
call fcn.00401bd0
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
movq qword [ebp - 0x18], xmm0
mov word [esi], ax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x403ed5
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403ecb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40424a
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x403f27
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403f1d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40424f
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x403f78
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403f6e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404254
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.0040a4d0
test al, al
je 0x403fba
cmp dword [ebp - 0x14], 8
lea esi, [ebp - 0x28]
cmovae esi, dword [ebp - 0x28]
call fcn.004069c0
push 0
push esi
mov ecx, eax
call fcn.00406ac0
test al, al
je 0x40419c
push 0x11
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push str.FreeImagePlus.dll
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.00401c30
mov byte [ebp - 4], 0xa
mov ecx, edi
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
lea edx, [ecx + 2]
mov word [ebp - 0x58], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404016
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x58]
call fcn.00401c30
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x70]
call fcn.00402000
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x40407d
mov ecx, eax
call fcn.00401bd0
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
movq qword [ebp - 0x18], xmm0
mov word [esi], ax
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x4040bb
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4040b1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404259
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x40410d
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404103
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40425e
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x40415e
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404154
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404263
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.0040a4d0
test al, al
je 0x4041b3
cmp dword [ebp - 0x14], 8
lea esi, [ebp - 0x28]
cmovae esi, dword [ebp - 0x28]
call fcn.004069c0
push 0
push esi
mov ecx, eax
call fcn.00406ac0
test al, al
jne 0x4041b3
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00403670
mov byte [ebp - 0x7d], 0
jmp 0x4041b7
mov byte [ebp - 0x7d], 1
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x4041f8
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4041ee
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404268
push edx
push ecx
call fcn.004168f5
add esp, 8
xor eax, eax
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov al, byte [ebp - 0x7d]
mov dword [ebp - 0x14], 7
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004168b4
mov esp, ebp
pop ebp
ret 0xc
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
call fcn.0041a52f
int3