Function at 0x10351494
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xb0
push ebx
push esi
push edi
mov edi, dword [ebp + 0x78]
xor ebx, ebx
cmp edi, ebx
je 0x10351d1c
mov esi, dword [ebp + 0x7c]
cmp esi, ebx
je 0x10351d1c
push 0x9c
push ebx
push edi
call fcn.103a1db0
add esp, 0xc
push edi
mov dword [edi], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x103514fe
push 0x9c
push ebx
push edi
call fcn.103a1db0
add esp, 0xc
push edi
mov dword [edi], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x10351d1c
lea eax, [ebp + 0x78]
push eax
push 0x20019
push ebx
push 0x104223d0
mov dword [ebp + 0x78], ebx
mov dword [ebp + 0x64], ebx
call fcn.1005d5c2
pop ecx
push eax
push connect
call fcn.103525be
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x10351588
lea eax, [ebp + 0x6c]
push eax
lea eax, [ebp - 0x40]
push eax
push ebx
push ebx
push 0x104223bc
mov dword [ebp + 0x6c], 0x20
call fcn.1005d5c2
pop ecx
push eax
push dword [ebp + 0x78]
call fcn.10352682
test eax, eax
jne 0x1035155b
mov dword [ebp + 0x64], 1
lea eax, [ebp + 0x6c]
push eax
lea eax, [ebp - 0x20]
push eax
push ebx
push ebx
push 0x104223a4
mov dword [ebp + 0x6c], 0x20
call fcn.1005d5c2
pop ecx
push eax
push dword [ebp + 0x78]
call fcn.10352682
push dword [ebp + 0x78]
call fcn.10352746
cmp dword [ebp + 0x68], 0x542
jne 0x103515c4
push 0x20
lea eax, [ebp - 0x40]
push ebx
push eax
call fcn.103a1db0
push 0x20
lea eax, [ebp - 0x20]
push ebx
push eax
call fcn.103a1db0
push dword [edi + 0xc]
lea eax, [ebp - 0x20]
push 0x1040e710
push eax
call fcn.103a11ec
add esp, 0x24
mov dword [ebp + 0x64], 1
push 0x10422390
mov dword [ebp + 0x6c], ebx
call fcn.1005d5c2
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [ebp + 0x68], eax
je 0x10351601
push 0x10422380
call fcn.1005d5c2
pop ecx
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [ebp + 0x68]
mov dword [ebp + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp + 0x64], ebx
jne 0x103516c6
cmp dword [ebp + 0x6c], ebx
je 0x10351d1c
push 0x9c
push edi
push esi
call fcn.103a1a70
mov eax, dword [esi + 8]
add esp, 0xc
cmp eax, ebx
je 0x103516a0
cmp eax, 0xa
je 0x1035166b
cmp eax, 0x5a
je 0x10351664
push dword [esi + 0xc]
push eax
push dword [esi + 4]
push 0x10422360
call fcn.1005d5c2
pop ecx
push eax
lea eax, [ebp]
push eax
call fcn.103a11ec
lea eax, [ebp]
add esi, 0x14
push eax
push esi
call fcn.103a1e10
add esp, 0x1c
jmp 0x10351d17
push 0x1042234c
jmp 0x103516a5
push 0x10422338
lea ebx, [esi + 0x14]
call fcn.1005d5c2
push eax
push ebx
call fcn.103a1e10
add esp, 0xc
cmp word [esi + 0xc], 0x8ae
jne 0x10351835
push 0x10422334
push ebx
call fcn.103a1e20
pop ecx
pop ecx
jmp 0x10351d17
push 0x10422320
add esi, 0x14
call fcn.1005d5c2
push eax
push esi
call fcn.103a1e10
add edi, 0x14
push edi
push esi
call fcn.103a1e20
add esp, 0x14
jmp 0x10351d17
cmp dword [ebp + 0x6c], ebx
jne 0x10351d1c
mov eax, dword [edi + 0x10]
cmp eax, 2
jne 0x10351b65
lea eax, [ebp - 0x20]
push eax
call fcn.103a161d
cmp dword [edi + 0xc], eax
pop ecx
push dword [edi]
jne 0x10351909
push edi
push esi
call fcn.103a1a70
mov eax, dword [esi + 4]
mov ecx, eax
add esp, 0xc
sub ecx, 4
je 0x103518ff
dec ecx
je 0x103517ee
dec ecx
je 0x1035171e
push dword [esi + 0xc]
push dword [esi + 8]
push eax
jmp 0x103518f5
mov eax, dword [esi + 8]
cmp eax, ebx
jne 0x103517a0
call fcn.10351349
test eax, eax
lea ebx, [esi + 0x14]
je 0x10351748
cmp byte [esi + 0x9a], 1
jne 0x10351741
push 0x10422300
jmp 0x1035175d
push 0x104222d4
jmp 0x1035175d
cmp byte [esi + 0x9a], 1
jne 0x10351758
push 0x104222b4
jmp 0x1035175d
push 0x10422288
call fcn.1005d5c2
push eax
push ebx
call fcn.103a1e10
add esp, 0xc
add edi, 0x14
push edi
push ebx
call fcn.103a1e20
mov edx, dword [esi + 0xc]
pop ecx
pop ecx
call fcn.1035138c
push eax
push 0x10422280
call fcn.1005d5c2
pop ecx
push eax
lea eax, [ebp]
push eax
call fcn.103a11ec
lea eax, [ebp]
push eax
push ebx
jmp 0x103516b9
push eax
push 6
push 0x10422264
call fcn.1005d5c2
pop ecx
push eax
lea eax, [ebp]
push eax
call fcn.103a11ec
lea eax, [ebp]
push eax
lea edi, [esi + 0x14]
push edi
call fcn.103a1e10
mov edx, dword [esi + 0xc]
call fcn.1035138c
push eax
lea eax, [ebp]
push 0x10422260
push eax
call fcn.103a11ec
lea eax, [ebp]
push eax
push edi
call fcn.103a1e20
add esp, 0x2c
jmp 0x10351d17
mov eax, dword [esi + 8]
cmp eax, ebx
jne 0x1035183e
push 0x10422248
lea ebx, [esi + 0x14]
call fcn.1005d5c2
push eax
push ebx
call fcn.103a1e10
mov al, byte [esi + 0x9a]
add esp, 0xc
cmp al, 1
jne 0x1035181d
push 0x10422234
jmp 0x10351826
cmp al, 3
jne 0x10351835
push 0x10422228
call fcn.1005d5c2
push eax
push ebx
call fcn.103a1e20
add esp, 0xc
add edi, 0x14
push edi
jmp 0x10351693
cmp eax, 1
jne 0x1035184d
push 0x10422210
jmp 0x103516a5
cmp eax, 2
jne 0x103518ef
push 0x24
lea eax, [ebp + 0x40]
push ebx
push eax
call fcn.103a1db0
push 0x10422390
call fcn.1005d5c2
add esp, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x104221f8
mov dword [ebp + 0x68], eax
call fcn.1005d5c2
pop ecx
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x1035189a
lea ecx, [ebp + 0x40]
push ecx
call eax
jmp 0x103518a4
lea eax, [ebp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x103518b7
push 0x104221d4
jmp 0x103518d3
cmp byte [esi + 0x9a], 1
jne 0x103518ce
cmp word [ebp + 0x40], 9
jne 0x103518ce
push 0x104221ac
jmp 0x103518d3
push 0x1042218c
add esi, 0x14
call fcn.1005d5c2
push eax
push esi
call fcn.103a1e10
add esp, 0xc
add edi, 0x14
push edi
push esi
jmp 0x10351694
push dword [esi + 0xc]
push eax
push 5
push 0x10422168
jmp 0x1035163f
push 0x10422150
jmp 0x103516a5
push ebx
push esi
call fcn.103a1db0
lea eax, [ebp - 0x20]
push eax
mov dword [esi + 0x10], 2
call fcn.103a161d
mov ecx, 0x13f8
add esp, 0x10
cmp eax, ecx
mov dword [esi + 0xc], eax
ja 0x10351a59
je 0x10351b25
mov ecx, eax
sub ecx, 0x565
je 0x10351a12
sub ecx, 0x32e
je 0x10351a33
sub ecx, 0x195
je 0x103519ae
sub ecx, 0x4a6
je 0x10351983
sub ecx, 0x109
je 0x10351b25
sub ecx, 0x13
je 0x10351b25
sub ecx, 0x3ce
jmp 0x10351a9a
mov dword [esi + 4], 5
mov dword [esi + 8], 2
call fcn.10351349
test eax, eax
je 0x103519a4
push 0x10422124
jmp 0x10351a42
push 0x104220fc
jmp 0x10351a42
mov dword [esi + 4], 5
mov dword [esi + 8], 1
push 0x10422210
add esi, 0x14
call fcn.1005d5c2
push eax
push esi
call fcn.103a1e10
add esp, 0xc
cmp dword [edi], 0x9c
jne 0x10351d17
mov di, word [edi + 0x94]
cmp di, 1
jb 0x10351d17
movzx eax, di
push eax
push 0x104220e8
call fcn.1005d5c2
pop ecx
push eax
lea eax, [ebp]
push eax
call fcn.103a11ec
lea eax, [ebp]
push eax
jmp 0x103516b8
push 0x104220d0
mov dword [esi + 4], 4
mov dword [esi + 8], ebx
call fcn.1005d5c2
push eax
lea eax, [esi + 0x14]
push eax
call fcn.103a1e10
add esp, 0xc
mov dword [esi + 4], 5
mov dword [esi + 8], ebx
push 0x10422248
call fcn.1005d5c2
push eax
add esi, 0x14
push esi
call fcn.103a1e10
add esp, 0xc
jmp 0x10351d17
mov ecx, eax
sub ecx, 0x1463
je 0x10351b25
sub ecx, 0xc
je 0x10351b25
sub ecx, 0x4d
je 0x10351b25
sub ecx, 0x39
je 0x10351b25
sub ecx, 0x13
je 0x10351b25
sub ecx, 0x58
je 0x10351b25
sub ecx, 0x80
je 0x10351b25
cmp eax, 0x1518
jb 0x10351ad5
cmp eax, 0x1643
ja 0x10351ad5
mov dword [esi + 4], 6
mov dword [esi + 8], ebx
call fcn.10351349
test eax, eax
je 0x10351acb
push 0x104220a4
jmp 0x10351a42
push 0x10422078
jmp 0x10351a42
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
push 0x1042205c
mov dword [esi + 8], eax
lea edi, [esi + 0x14]
call fcn.1005d5c2
push eax
push edi
call fcn.103a1e10
add esp, 0xc
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push 0x10422048
call fcn.1005d5c2
pop ecx
push eax
lea eax, [ebp]
push eax
call fcn.103a11ec
lea eax, [ebp]
push eax
push edi
call fcn.103a1e20
jmp 0x1035165c
mov dword [esi + 4], 6
mov dword [esi + 8], ebx
call fcn.10351349
test eax, eax
lea edi, [esi + 0x14]
je 0x10351b42
push 0x10422024
jmp 0x10351b47
push 0x10422000
call fcn.1005d5c2
push eax
push edi
call fcn.103a1e10
mov edx, dword [esi + 0xc]
add esp, 0xc
call fcn.1035138c
push eax
push edi
jmp 0x10351694
cmp eax, 1
jne 0x10351d1c
push dword [edi]
push ebx
push esi
call fcn.103a1db0
add esp, 0xc
lea eax, [ebp + 0x78]
push eax
push 0x20019
push ebx
push 0x104223d0
mov dword [esi + 0x10], 2
call fcn.1005d5c2
pop ecx
push eax
push connect
call fcn.103525be
test eax, eax
jne 0x10351d17
push 0x20
pop edi
lea eax, [ebp + 0x6c]
push eax
lea eax, [ebp + 0x44]
push eax
push ebx
push ebx
push 0x104223bc
mov dword [ebp + 0x6c], edi
call fcn.1005d5c2
pop ecx
push eax
push dword [ebp + 0x78]
call fcn.10352682
test eax, eax
jne 0x10351d0f
cmp dword [ebp + 0x6c], 2
jb 0x10351bef
movsx eax, byte [ebp + 0x44]
sub eax, 0x30
mov dword [esi + 4], eax
movsx eax, byte [ebp + 0x46]
sub eax, 0x30
mov dword [esi + 8], eax
lea eax, [ebp + 0x6c]
push eax
lea eax, [ebp + 0x44]
push eax
push ebx
push ebx
push 0x104223a4
mov dword [ebp + 0x6c], edi
call fcn.1005d5c2
pop ecx
push eax
push dword [ebp + 0x78]
call fcn.10352682
test eax, eax
jne 0x10351d0f
lea eax, [ebp + 0x44]
push eax
call fcn.103a161d
pop ecx
mov dword [esi + 0xc], eax
lea eax, [ebp + 0x6c]
push eax
lea eax, [ebp + 0x44]
push eax
push ebx
push ebx
push 0x10421ff0
mov dword [ebp + 0x6c], edi
call fcn.1005d5c2
pop ecx
push eax
push dword [ebp + 0x78]
call fcn.10352682
test eax, eax
jne 0x10351d0f
mov eax, dword [esi + 4]
mov ecx, eax
sub ecx, 4
je 0x10351cee
dec ecx
je 0x10351caf
dec ecx
je 0x10351c90
push dword [esi + 0xc]
push dword [esi + 8]
push eax
push 0x10422168
call fcn.1005d5c2
pop ecx
push eax
lea eax, [ebp]
push eax
call fcn.103a11ec
lea eax, [ebp]
push eax
add esi, 0x14
push esi
call fcn.103a1e10
add esp, 0x1c
jmp 0x10351d0f
cmp dword [esi + 8], ebx
jne 0x10351d0f
call fcn.10351349
add esi, 0x14
test eax, eax
je 0x10351ca8
push 0x10422024
jmp 0x10351cf6
push 0x10422000
jmp 0x10351cf6
mov eax, dword [esi + 8]
cmp eax, ebx
jne 0x10351cbd
push 0x10422248
jmp 0x10351cf3
cmp eax, 1
jne 0x10351cc9
push 0x10422210
jmp 0x10351cf3
cmp eax, 2
jne 0x10351cd5
push 0x10421fc4
jmp 0x10351cf3
push 0x10422168
call fcn.1005d5c2
push eax
add esi, 0x14
push esi
call fcn.103a1e10
add esp, 0xc
jmp 0x10351d0f
push 0x10422150
add esi, 0x14
call fcn.1005d5c2
push eax
push esi
call fcn.103a1e10
lea eax, [ebp + 0x44]
push eax
push esi
call fcn.103a1e20
add esp, 0x14
push dword [ebp + 0x78]
call fcn.10352746
xor eax, eax
inc eax
jmp 0x10351d1e
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret