Function at 0x107404
Capabilities:
Get system information on windows

Disassembly:
add byte [eax], al
mov eax, dword [0x14a7d4]
mov edx, dword [ebp - 4]
mov dword [eax + 0x58], edx
mov eax, dword [0x14a7d4]
mov dword [eax + 0x5c], edi
mov eax, dword [0x14a7d4]
mov eax, dword [eax + 0x44]
mov edx, edi
call fcn.00023808
mov eax, dword [0x14a7d4]
mov eax, dword [eax + 0x44]
mov ecx, edi
xor edx, edx
call fcn.000236ec
mov eax, edi
mov edx, dword [0x50da4]
call fcn.000131bc
test al, al
je 0x5602b
mov eax, dword [0x14a7d4]
mov dword [eax + 0x60], edi
mov eax, dword [0x14a7d4]
mov eax, dword [eax + 0x40]
mov edx, edi
call fcn.00023808
mov eax, dword [0x14a7d4]
mov eax, dword [eax + 0x40]
mov ecx, edi
xor edx, edx
call fcn.000236ec
jmp 0x56035
mov eax, dword [0x14a7d4]
xor edx, edx
mov dword [eax + 0x60], edx
mov eax, dword [ebp - 4]
test byte [eax + 0x44], 0x20
jne 0x5620b
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x44]
or ax, word [0x56214]
mov edx, dword [ebp - 4]
mov word [edx + 0x44], ax
xor edx, edx
push ebp
push 0x561f8
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x14a7d4]
mov eax, dword [eax + 0x6c]
cmp edi, eax
je 0x560c5
test eax, eax
je 0x5609f
call fcn.00042e6c
mov esi, eax
mov eax, dword [0x14a7d4]
xor edx, edx
mov dword [eax + 0x6c], edx
mov dx, 0xb001
mov eax, esi
call fcn.00052070
test al, al
jne 0x5609f
call fcn.0001387c
jmp 0x5620b
mov eax, dword [0x14a7d4]
mov dword [eax + 0x6c], edi
mov eax, edi
call fcn.00042e6c
mov dx, 0xb000
call fcn.00052070
test al, al
jne 0x560c5
call fcn.0001387c
jmp 0x5620b
cmp dword [edi + 0x20c], 0
jne 0x560d4
mov dword [edi + 0x20c], edi
mov eax, dword [edi + 0x20c]
cmp eax, dword [ebp - 4]
je 0x561d3
jmp 0x5611a
mov eax, dword [edi + 0x20c]
call fcn.00042e6c
mov esi, eax
mov eax, dword [edi + 0x20c]
mov eax, dword [eax + 0x24]
mov dword [edi + 0x20c], eax
mov dx, 0xb01b
mov eax, esi
call fcn.00052070
test al, al
jne 0x5611a
call fcn.0001387c
jmp 0x5620b
mov esi, dword [edi + 0x20c]
test esi, esi
je 0x5616a
mov eax, esi
mov edx, dword [ebp - 4]
call fcn.0003fb80
test al, al
je 0x560e5
jmp 0x5616a
mov esi, dword [ebp - 4]
jmp 0x5613b
mov esi, eax
mov eax, dword [esi + 0x24]
cmp eax, dword [edi + 0x20c]
jne 0x56139
mov dword [edi + 0x20c], esi
mov eax, esi
call fcn.00042e6c
mov dx, 0xb01a
call fcn.00052070
test al, al
jne 0x5616a
call fcn.0001387c
jmp 0x5620b
mov eax, dword [edi + 0x20c]
cmp eax, dword [ebp - 4]
jne 0x56134
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x24]
test esi, esi
je 0x561a4
mov eax, esi
mov edx, dword [0x4fd3c]
call fcn.000131bc
test al, al
je 0x5619d
mov edx, dword [ebp - 4]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov esi, dword [esi + 0x24]
test esi, esi
jne 0x5617f
mov eax, dword [ebp - 4]
push eax
xor ecx, ecx
mov edx, 0xb007
mov eax, edi
call fcn.0003dd38
mov eax, dword [edi + 0x264]
test eax, eax
je 0x561d3
cmp eax, dword [ebp - 4]
je 0x561d3
push 0
xor ecx, ecx
mov edx, 0xb02a
call fcn.0003dd38
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x561ff
mov eax, dword [ebp - 4]
mov dx, word [0x56214]
not edx
and dx, word [eax + 0x44]
mov eax, dword [ebp - 4]
mov word [eax + 0x44], dx
ret
mov eax, ebx
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret
push ebp
mov ebp, esp
add esp, 0xffffff38
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0xa4]
mov ecx, 0x27
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x149c70]
mov eax, dword [eax]
mov edx, 0x10765c
call fcn.00065094
xor edx, edx
push ebp
push 0x107623
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.00086da4
neg al
sbb esi, esi
lea eax, [ebp - 0xc8]
xor ecx, ecx
mov edx, 0x24
call fcn.00012cd0
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetSystemInfo
lea eax, [ebp - 0xa4]
xor ecx, ecx
mov edx, 0x9c
call fcn.00012cd0
mov dword [ebp - 0xa4], 0x9c
lea eax, [ebp - 0xa4]
push eax
call sub.kernel32.dll_GetVersionExA
test eax, eax
je 0x10758c
call fcn.00080018
test al, al
je 0x1074a5
mov ebx, 0x576
jmp 0x1074aa
mov ebx, 0x562
push 0x10767c
call sub.kernel32.dll_LoadLibraryA
mov edi, eax
test edi, edi
je 0x10758c
push 0x10768c
push edi
call sub.kernel32.dll_GetProcAddress_1
mov edi, eax
test edi, edi
je 0x10758c
lea eax, [ebp - 8]
push eax
movzx eax, word [ebp - 0xe]
push eax
movzx eax, word [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0xa0]
push eax
call edi
test eax, eax
je 0x10758c
mov eax, dword [ebp - 8]
cmp eax, 0x30
jg 0x10750f
je 0x107549
sub eax, 4
je 0x10751b
sub eax, 0x17
je 0x107532
jmp 0x10758c
sub eax, 0x31
je 0x107577
sub eax, 0x14
je 0x107560
jmp 0x10758c
call fcn.00080018
test al, al
je 0x10752b
mov ebx, 0x57a
jmp 0x10758c
mov ebx, 0x560
jmp 0x10758c
call fcn.00080018
test al, al
je 0x107542
mov ebx, 0x57a
jmp 0x10758c
mov ebx, 0x560
jmp 0x10758c
call fcn.00080018
test al, al
je 0x107559
mov ebx, 0x578
jmp 0x10758c
mov ebx, 0x55e
jmp 0x10758c
call fcn.00080018
test al, al
je 0x107570
mov ebx, 0x578
jmp 0x10758c
mov ebx, 0x55e
jmp 0x10758c
call fcn.00080018
test al, al
je 0x107587
mov ebx, 0x578
jmp 0x10758c
mov ebx, 0x55e
test esi, esi
je case.0x1075a2.1374
mov eax, ebx
add eax, 0xfffffaa2
cmp eax, 0x1c
ja case.0x1075a2.1374
mov al, byte [eax + 0x1075a9]
jmp dword [eax*4 + 0x1075c6]
mov ebx, 0x55f
jmp case.0x1075a2.1374
mov ebx, 0x561
jmp case.0x1075a2.1374
mov ebx, 0x563
jmp case.0x1075a2.1374
mov ebx, 0x579
jmp case.0x1075a2.1374
mov ebx, 0x57b
jmp case.0x1075a2.1374
mov ebx, 0x577
mov dword [ebp - 4], ebx
mov eax, dword [0x149c70]
mov eax, dword [eax]
call fcn.000650e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x107647
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret