Function at 0x100034e0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10f4
call fcn.1001ce70
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [0x10029698]
xor ecx, ecx
mov dword [ebp - 0x1014], ebx
push esi
push edi
test ebx, ebx
je 0x10003591
cmp ebx, 0x10
jb 0x10003591
movaps xmm1, xmmword [0x10024ba0]
lea esi, [ebp - 0x10f0]
mov edx, ebx
lea edi, [ebp - 0x10d0]
and edx, 0xfffffff0
lea ebx, [ebp - 0x10c0]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [esi + ecx*4], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [ebp + ecx*4 - 0x10e0], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edi + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [ebx + ecx*4], xmm0
add ecx, 0x10
cmp ecx, edx
jb 0x10003533
mov ebx, dword [ebp - 0x1014]
cmp ecx, ebx
jae 0x100035a1
mov dword [ebp + ecx*4 - 0x10f0], ecx
inc ecx
cmp ecx, ebx
jb 0x10003595
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0
mov dword [0x100296a0], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x10003631
mov dword [ebp - 0x1018], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x100035e6
push 0
push 0
lea ecx, [ebp - 0x1018]
push ecx
push 0x409
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x1018]
push str.Failed_to_get_main_module_handle.
push str._s__s
lea eax, [ebp - 0x808]
push 0x400
push eax
call fcn.10003420
add esp, 0x14
lea eax, [ebp - 0x808]
push 0
push str._V_PATCH__Error_while_initializing_patch_
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10004349
mov esp, ebp
pop ebp
ret
push 0xc
lea ecx, [ebp - 0x1040]
push ecx
push eax
push dword [0x100296a0]
call dword [sym.imp.KERNEL32.dll_K32GetModuleInformation]
test eax, eax
jne 0x10003689
mov dword [ebp - 0x1018], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10003679
push 0
push 0
lea ecx, [ebp - 0x1018]
push ecx
push 0x409
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x1018]
push str.Failed_to_get_module_information.
jmp 0x100035f1
mov esi, dword [ebp - 0x1040]
mov eax, dword [ebp - 0x103c]
add eax, esi
mov dword [ebp - 0x1018], esi
mov dword [ebp - 0x1078], eax
cmp esi, eax
jae 0x10003864
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
push 0x1c
lea eax, [ebp - 0x1034]
push eax
push esi
push dword [0x100296a0]
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
test eax, eax
je 0x10003955
mov eax, dword [ebp - 0x1020]
test al, 0xf0
jne 0x100036e4
add esi, dword [ebp - 0x1028]
jmp 0x10003852
mov byte [ebp - 0x1065], 0
test al, 0x20
jne 0x1000371b
lea eax, [ebp - 0x1010]
mov byte [ebp - 0x1065], 1
push eax
push 0x20
push dword [ebp - 0x1028]
push dword [ebp - 0x1034]
push dword [0x100296a0]
call edi
test eax, eax
je 0x100038d1
mov edi, dword [ebp - 0x1034]
mov eax, dword [ebp - 0x1028]
lea ecx, [edi + eax]
mov dword [ebp - 0x1070], ecx
cmp edi, ecx
jae 0x10003814
nop dword [eax + eax]
xor eax, eax
mov dword [ebp - 0x1074], eax
test ebx, ebx
je 0x100037f9
mov eax, dword [ebp + eax*4 - 0x10f0]
lea ebx, [eax + eax*2]
mov esi, dword [ebx*8 + 0x10028624]
lea eax, [esi + edi]
cmp eax, ecx
ja 0x100037de
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [ebp - 0x106c], ecx
test esi, esi
je 0x100037b2
nop dword [eax + eax]
mov ecx, dword [ebx*8 + 0x10028620]
mov ecx, dword [ecx + edx*4]
cmp ecx, 0xdddddddd
jne 0x1000379c
mov ecx, eax
mov dword [ebp - 0x106c], ecx
jmp 0x100037ad
cmp ecx, 0xffffffff
je 0x100037a6
cmp byte [eax + edi], cl
jne 0x100037d8
mov ecx, dword [ebp - 0x106c]
inc eax
inc edx
cmp edx, esi
jb 0x10003780
mov eax, dword [ebx*8 + 0x10028628]
lea esi, [ecx + edi]
test eax, eax
je 0x100037ca
push esi
call eax
add esp, 4
test al, al
je 0x100037d8
inc dword [ebx*8 + 0x10028630]
mov dword [ebx*8 + 0x10028634], esi
mov ecx, dword [ebp - 0x1070]
mov eax, dword [ebp - 0x1074]
mov ebx, dword [ebp - 0x1014]
inc eax
mov dword [ebp - 0x1074], eax
cmp eax, ebx
jb 0x10003750
inc edi
cmp edi, ecx
jb 0x10003740
mov eax, dword [ebp - 0x1028]
mov edi, dword [ebp - 0x1034]
mov esi, dword [ebp - 0x1018]
cmp byte [ebp - 0x1065], 0
je 0x1000384a
lea ecx, [ebp - 0x1010]
push ecx
push dword [ebp - 0x1010]
push eax
push edi
push dword [0x100296a0]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
call edi
test eax, eax
je 0x10003913
mov eax, dword [ebp - 0x1028]
jmp 0x10003850
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
add esi, eax
mov dword [ebp - 0x1018], esi
cmp esi, dword [ebp - 0x1078]
jb 0x100036b1
lea eax, [ebp - 0x1064]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 4
push 0x1000
push dword [ebp - 0x1060]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov esi, eax
mov dword [0x10029690], esi
test esi, esi
jne 0x10003997
mov dword [ebp - 0x1010], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x100038c1
push esi
push esi
lea ecx, [ebp - 0x1010]
push ecx
push 0x409
push eax
push esi
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x1010]
push str.Could_not_allocate_instruction_buffer.
jmp 0x100035f1
mov dword [ebp - 0x1014], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10003903
push 0
push 0
lea ecx, [ebp - 0x1014]
push ecx
push 0x409
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x1014]
push str.Failed_to_change_memory_protection.
jmp 0x100035f1
mov dword [ebp - 0x1014], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10003945
push 0
push 0
lea ecx, [ebp - 0x1014]
push ecx
push 0x409
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x1014]
push str.Failed_to_restore_memory_protection.
jmp 0x100035f1
mov dword [ebp - 0x1014], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10003987
push 0
push 0
lea ecx, [ebp - 0x1014]
push ecx
push 0x409
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x1014]
push str.Failed_to_query_virtual_memory.
jmp 0x100035f1
movups xmm0, xmmword [str.Failed_to_apply_the_following_patches:_n]
mov eax, dword [ebp - 0x1060]
add eax, esi
mov dword [0x100296a4], esi
movups xmmword [ebp - 0x1008], xmm0
push 0x7b0
movups xmm0, xmmword [0x100249d8]
mov dword [0x1002969c], eax
lea eax, [ebp - 0xfb8]
push 0
movups xmmword [ebp - 0xff8], xmm0
push eax
movups xmm0, xmmword [0x100249e8]
mov byte [ebp - 0x1066], 1
movups xmmword [ebp - 0xfe8], xmm0
movups xmm0, xmmword [0x100249f8]
movups xmmword [ebp - 0xfd8], xmm0
movups xmm0, xmmword [0x10024a08]
movups xmmword [ebp - 0xfc8], xmm0
call fcn.10005980
mov ebx, dword [sym.imp.USER32.dll_MessageBoxW]
add esp, 0xc
cmp dword [0x10029694], 0
mov dword [ebp - 0x1010], 0
jbe 0x10003b6c
mov ebx, 0x10029778
nop
xor edx, edx
cmp dword [ebx], edx
jbe 0x10003a8c
lea ecx, [ebx - 0x28]
nop dword [eax]
mov eax, dword [ecx - 0x28]
mov edi, dword [ecx]
lea eax, [eax + eax*2]
mov esi, dword [eax*8 + 0x10028630]
lea eax, [edi + edi*2]
cmp edi, 0xffffffff
je 0x10003a5e
add esi, dword [eax*8 + 0x10028630]
cmp esi, 1
jne 0x10003bc1
cmp edi, 0xffffffff
je 0x10003a7e
cmp dword [eax*8 + 0x10028630], esi
jne 0x10003a7e
mov dword [ecx - 0x28], 0xffffffff
jmp 0x10003a84
mov dword [ecx], 0xffffffff
inc edx
add ecx, 4
cmp edx, dword [ebx]
jb 0x10003a40
lea eax, [ebx - 0xd0]
push eax
mov eax, dword [ebx + 4]
call eax
add esp, 4
mov byte [ebp - 0x1065], al
test al, al
jne 0x10003b1d
lea ecx, [ebp - 0x1008]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10003ab0
sub ecx, edx
mov eax, 0x400
sar ecx, 1
sub eax, ecx
push str._n
push eax
lea eax, [ebp - 0x1008]
lea eax, [eax + ecx*2]
push eax
call fcn.1000b333
lea ecx, [ebp - 0x1008]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10003ae7
lea eax, [ebx - 0xd0]
sub ecx, edx
push eax
sar ecx, 1
mov eax, 0x400
sub eax, ecx
push eax
lea eax, [ebp - 0x1008]
lea eax, [eax + ecx*2]
push eax
call fcn.1000b333
mov al, byte [ebp - 0x1065]
add esp, 0xc
mov cl, byte [ebp - 0x1066]
add ebx, 0xd8
and cl, al
mov eax, dword [ebp - 0x1010]
inc eax
mov byte [ebp - 0x1066], cl
mov dword [ebp - 0x1010], eax
cmp eax, dword [0x10029694]
jb 0x10003a30
mov ebx, dword [sym.imp.USER32.dll_MessageBoxW]
test cl, cl
jne 0x10003b66
push 0
push str._V_PATCH__Error_while_initializing_patch_
lea eax, [ebp - 0x1008]
push eax
push 0
call ebx
mov esi, dword [0x10029690]
lea eax, [ebp - 0x100c]
push eax
push 0x20
push dword [ebp - 0x1060]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x10003bcd
mov dword [ebp - 0x1010], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10003bb4
push 0
push 0
lea ecx, [ebp - 0x1010]
push ecx
push 0x409
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x1010]
push str.Failed_to_change_memory_protection_on_instruction_buffer.
jmp 0x10003c22
mov byte [ebp - 0x1065], 0
jmp 0x10003aa5
push dword [ebp - 0x1060]
push dword [0x10029690]
push dword [0x100296a0]
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
test eax, eax
jne 0x10003c4d
mov dword [ebp - 0x1010], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10003c17
push 0
push 0
lea ecx, [ebp - 0x1010]
push ecx
push 0x409
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [ebp - 0x1010]
push str.Failed_to_flush_instruction_cache_on_instruction_buffer.
push str._s__s
lea eax, [ebp - 0x808]
push 0x400
push eax
call fcn.10003420
add esp, 0x14
lea eax, [ebp - 0x808]
push 0
push str._V_PATCH__Error_while_initializing_patch_
push eax
push 0
call ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10004349
mov esp, ebp
pop ebp
ret