Function at 0x10038850
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x1008a770
mov eax, dword fs:[0]
push eax
sub esp, 0x1bc
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x1b8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [section..data]
xor eax, esp
push eax
lea eax, [esp + 0x1d0]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x1e0]
mov edi, dword [esp + 0x1e4]
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
cmp dword [ebx + 0x70], 0
je 0x10038980
lea eax, [ebx + 0x60]
xorps xmm0, xmm0
push eax
lea ecx, [esp + 0x38]
movdqu xmmword [esp + 0x38], xmm0
call fcn.10019a20
test al, al
je 0x10038980
xor eax, eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x78], 7
mov dword [esp + 0x74], 0
mov word [esp + 0x64], ax
mov dword [esp + 0x1d8], eax
lea eax, [esp + 0x64]
push dword [esp + 0x38]
push dword [esp + 0x38]
push str._u._u
push eax
call fcn.1000a7d0
lea eax, [esp + 0x74]
add esp, 0x10
cmp edi, eax
je 0x10038923
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.10003100
push dword [esp + 0x40]
lea eax, [esp + 0x68]
push 0x10095a08
push eax
call fcn.1000a7d0
lea ecx, [edi + 0x18]
add esp, 0xc
lea eax, [esp + 0x64]
cmp ecx, eax
je 0x1003894e
push 0xffffffffffffffff
push 0
push eax
call fcn.10003100
mov dword [esp + 0x1d8], 0xffffffff
cmp dword [esp + 0x78], 8
jb 0x10038969
push dword [esp + 0x64]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x78], 7
mov dword [esp + 0x74], 0
mov word [esp + 0x64], ax
push 0xd
push str.check_version
lea ecx, [edi + 0x30]
call fcn.10003000
xor eax, eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
mov dword [esp + 0x1d8], 2
add ebx, 0x30
lea eax, [esp + 0x4c]
cmp eax, ebx
je 0x100389d8
push 0xffffffffffffffff
push 0
push ebx
mov ecx, eax
call fcn.10003100
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x50]
call fcn.1004c590
mov ebp, eax
mov byte [esp + 0x1d8], 3
lea ebx, [edi + 0x48]
cmp ebx, ebp
je 0x10038a1f
cmp dword [ebx + 0x14], 8
jb 0x10038a04
push dword [ebx]
call esi
add esp, 4
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov ecx, ebx
push ebp
mov word [ebx], ax
call fcn.10004a60
mov byte [esp + 0x1d8], 2
cmp dword [esp + 0x2c], 8
jb 0x10038a37
push dword [esp + 0x18]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov word [esp + 0x18], ax
lea ecx, [esp + 0x4c]
lea eax, [esp + 0x18]
mov dword [esp + 0x28], 0
push eax
call fcn.1004c870
mov ebp, eax
mov byte [esp + 0x1d8], 4
lea ebx, [edi + 0x60]
cmp ebx, ebp
je 0x10038a95
cmp dword [ebx + 0x14], 8
jb 0x10038a7a
push dword [ebx]
call esi
add esp, 4
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov ecx, ebx
push ebp
mov word [ebx], ax
call fcn.10004a60
mov byte [esp + 0x1d8], 2
cmp dword [esp + 0x2c], 8
jb 0x10038aad
push dword [esp + 0x18]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
call fcn.1004cb40
test eax, eax
mov ecx, 1
cmove eax, ecx
push eax
lea eax, [edi + 0xd8]
push 0x10095a08
push eax
call fcn.1000a7d0
add esp, 0xc
lea eax, [esp + 0x18]
push eax
call fcn.1004cdf0
mov ebp, eax
mov byte [esp + 0x1d8], 5
lea ebx, [edi + 0x138]
cmp ebx, ebp
je 0x10038b32
cmp dword [ebx + 0x14], 8
jb 0x10038b17
push dword [ebx]
call esi
add esp, 4
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov ecx, ebx
push ebp
mov word [ebx], ax
call fcn.10004a60
mov byte [esp + 0x1d8], 2
cmp dword [esp + 0x2c], 8
jb 0x10038b4a
push dword [esp + 0x18]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov word [esp + 0x18], ax
lea ecx, [esp + 0x4c]
lea eax, [esp + 0x18]
mov dword [esp + 0x28], 0
push eax
call fcn.1004cfa0
mov ebp, eax
mov byte [esp + 0x1d8], 6
lea ebx, [edi + 0x150]
cmp ebx, ebp
je 0x10038bab
cmp dword [ebx + 0x14], 8
jb 0x10038b90
push dword [ebx]
call esi
add esp, 4
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov ecx, ebx
push ebp
mov word [ebx], ax
call fcn.10004a60
mov byte [esp + 0x1d8], 2
cmp dword [esp + 0x2c], 8
jb 0x10038bc3
push dword [esp + 0x18]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov word [esp + 0x18], ax
lea eax, [edi + 0x108]
push eax
lea eax, [edi + 0xc0]
mov dword [esp + 0x2c], 0
push eax
lea eax, [edi + 0xa8]
push eax
lea eax, [edi + 0x90]
push eax
lea eax, [edi + 0x78]
push eax
call fcn.10039070
lea eax, [esp + 0x18]
push eax
call fcn.10058f80
mov ebp, eax
mov byte [esp + 0x1d8], 7
lea ebx, [edi + 0x168]
cmp ebx, ebp
je 0x10038c45
cmp dword [ebx + 0x14], 8
jb 0x10038c2a
push dword [ebx]
call esi
add esp, 4
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov ecx, ebx
push ebp
mov word [ebx], ax
call fcn.10004a60
mov byte [esp + 0x1d8], 2
cmp dword [esp + 0x2c], 8
jb 0x10038c5d
push dword [esp + 0x18]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov word [esp + 0x18], ax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x2c], 0
call fcn.10058b90
mov ebp, eax
mov byte [esp + 0x1d8], 8
lea ebx, [edi + 0x198]
cmp ebx, ebp
je 0x10038cba
cmp dword [ebx + 0x14], 8
jb 0x10038c9f
push dword [ebx]
call esi
add esp, 4
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov ecx, ebx
push ebp
mov word [ebx], ax
call fcn.10004a60
mov byte [esp + 0x1d8], 2
cmp dword [esp + 0x2c], 8
jb 0x10038cd2
push dword [esp + 0x18]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
cmp dword [edi + 0x1c4], 8
mov word [esp + 0x18], ax
lea eax, [edi + 0x1b0]
mov dword [esp + 0x28], 0
mov dword [eax + 0x10], 0
jb 0x10038d03
mov ecx, dword [eax]
jmp 0x10038d05
mov ecx, eax
xor edx, edx
push eax
mov word [ecx], dx
call fcn.10058d90
cmp dword [edi + 0x1dc], 8
lea ebx, [edi + 0x1c8]
mov dword [ebx + 0x10], 0
jb 0x10038d2a
mov eax, dword [ebx]
jmp 0x10038d2c
mov eax, ebx
xor ecx, ecx
mov word [eax], cx
xor eax, eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x90], 7
mov dword [esp + 0x8c], ecx
mov word [esp + 0x7c], ax
mov byte [esp + 0x1d8], 9
lea ecx, [esp + 0x34]
push 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
push str.http
mov dword [esp + 0x50], 7
mov dword [esp + 0x4c], eax
mov word [esp + 0x3c], ax
call fcn.10003000
mov byte [esp + 0x1d8], 0xa
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.100580f0
mov byte [esp + 0x1d8], 0xc
cmp dword [esp + 0x48], 8
jb 0x10038dc0
push dword [esp + 0x34]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
cmp dword [esp + 0xa4], eax
je 0x10038edd
cmp dword [esp + 0x8c], eax
je 0x10038edd
lea edx, [esp + 0x94]
lea ecx, [esp + 0x18]
call fcn.1000c890
mov byte [esp + 0x1d8], 0xd
lea edx, [esp + 0x94]
lea ecx, [esp + 0x34]
call fcn.1000b320
mov byte [esp + 0x1d8], 0xe
lea eax, [esp + 0x7c]
cmp ebx, eax
je 0x10038e35
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
call fcn.10003100
push 1
push 0x100957e0
mov ecx, ebx
call fcn.100067e0
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x20]
mov ecx, ebx
push eax
call fcn.10006720
push 1
push 0x100957e0
mov ecx, ebx
call fcn.100067e0
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x3c]
mov ecx, ebx
push eax
call fcn.10006720
push 1
push 0x100957e0
mov ecx, ebx
call fcn.100067e0
mov byte [esp + 0x1d8], 0xd
cmp dword [esp + 0x48], 8
jb 0x10038e97
push dword [esp + 0x34]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov byte [esp + 0x1d8], 0xc
cmp dword [esp + 0x2c], 8
jb 0x10038ec6
push dword [esp + 0x18]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
push 1
lea ebx, [edi + 0x180]
push 0x10093a3c
mov ecx, ebx
call fcn.10003000
push 1
mov dword [esp + 0x34], 0
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0x30], eax
mov byte [eax], 0
lea eax, [esp + 0xac]
push 0x11c
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [esp + 0xac], 0x11c
lea eax, [esp + 0xac]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x10038f50
cmp dword [esp + 0xb0], 6
mov eax, dword [esp + 0x30]
setae cl
mov byte [eax], cl
mov byte [esp + 0x1d8], 0xf
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
call edi
push eax
lea ecx, [esp + 0x34]
call fcn.10026f90
test al, al
jne 0x10038f7e
call edi
push eax
lea ecx, [esp + 0x34]
call fcn.100272d0
test al, al
je 0x10038f8c
push 1
push 0x10094114
mov ecx, ebx
call fcn.10003000
mov byte [esp + 0x1d8], 0xc
lea ecx, [esp + 0x30]
call fcn.10025b80
mov byte [esp + 0x1d8], 9
cmp dword [esp + 0xa8], 8
jb 0x10038fbb
push dword [esp + 0x94]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0xa8], 7
mov dword [esp + 0xa4], 0
mov word [esp + 0x94], ax
mov byte [esp + 0x1d8], 2
cmp dword [esp + 0x90], 8
jb 0x10038ff6
push dword [esp + 0x7c]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x90], 7
mov dword [esp + 0x8c], 0
mov word [esp + 0x7c], ax
mov dword [esp + 0x1d8], 0xffffffff
cmp dword [esp + 0x60], 8
jb 0x1003902e
push dword [esp + 0x4c]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
mov ecx, dword [esp + 0x1d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1b8]
xor ecx, esp
call fcn.10081b94
add esp, 0x1c8
ret 8