Function at 0x6c99ce10
Capabilities:
Get system information on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov edi, dword [esp + 0x50]
test edi, edi
je 0x6c99d001
mov eax, dword [0x6ca3e8b0]
lea ebx, [edi - 8]
test eax, eax
je 0x6c99d010
test byte [0x6ca3e894], 2
jne 0x6c99d0bd
mov ebp, dword [0x6ca3e6f0]
cmp ebp, ebx
ja 0x6c99d001
mov edx, dword [edi - 4]
test dl, 2
je 0x6c99cff0
mov eax, edx
and eax, 0xfffffffc
and edx, 1
lea esi, [ebx + eax]
jne 0x6c99ced0
mov ecx, dword [edi - 8]
test cl, 1
jne 0x6c99d330
sub ebx, ecx
add eax, ecx
cmp ebp, ebx
ja 0x6c99cff0
cmp dword [0x6ca3e6f4], ebx
je 0x6c99d304
shr ecx, 3
mov edx, dword [ebx + 0xc]
cmp ecx, 0x1f
ja 0x6c99d1d5
mov edi, dword [ebx + 8]
cmp edx, edi
je 0x6c99d465
lea ecx, [ecx*8 + 0x6ca3e704]
cmp ecx, edi
jne 0x6c99d5d0
cmp ebp, edx
ja 0x6c99ced0
lea esi, [esi]
nop
mov dword [edi + 0xc], edx
mov dword [edx + 8], edi
lea esi, [esi]
lea esi, [esi]
cmp ebx, esi
jae 0x6c99cff0
mov ecx, dword [esi + 4]
test cl, 1
je 0x6c99cff0
test cl, 2
jne 0x6c99d101
mov edi, dword [0x6ca3e6f4]
mov dword [esp + 0xc], edi
cmp dword [0x6ca3e6f8], esi
je 0x6c99d3d0
cmp esi, dword [esp + 0xc]
je 0x6c99d4c3
and ecx, 0xfffffffc
mov edx, dword [esi + 0xc]
add eax, ecx
shr ecx, 3
cmp ecx, 0x1f
ja 0x6c99cf50
mov esi, dword [esi + 8]
cmp esi, edx
je 0x6c99d453
lea ecx, [ecx*8 + 0x6ca3e704]
cmp ecx, esi
jne 0x6c99d5b4
cmp ebp, edx
ja 0x6c99cfd0
nop
mov dword [esi + 0xc], edx
mov dword [edx + 8], esi
jmp 0x6c99cfd0
mov edi, dword [esi + 0x18]
mov dword [esp + 0x10], edi
cmp esi, edx
je 0x6c99d410
mov ecx, dword [esi + 8]
cmp ebp, ecx
ja 0x6c99cf6c
mov dword [ecx + 0xc], edx
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x6c99cfd0
mov edi, dword [esi + 0x1c]
lea ecx, [edi + 0x48]
cmp dword [ecx*4 + 0x6ca3e6ec], esi
je 0x6c99d513
mov edi, dword [esp + 0x10]
cmp ebp, edi
ja 0x6c99cf9b
cmp dword [edi + 0x10], esi
je 0x6c99d57a
mov dword [edi + 0x14], edx
test edx, edx
je 0x6c99cfd0
cmp ebp, edx
ja 0x6c99cfd0
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x18], edi
test ecx, ecx
je 0x6c99cfbb
cmp ebp, ecx
ja 0x6c99cfbb
mov dword [edx + 0x10], ecx
mov dword [ecx + 0x18], edx
mov ecx, dword [esi + 0x14]
cmp ebp, ecx
ja 0x6c99cfd0
test ecx, ecx
je 0x6c99cfd0
mov dword [edx + 0x14], ecx
mov dword [ecx + 0x18], edx
lea esi, [esi]
mov edx, eax
or edx, 1
mov dword [ebx + 4], edx
mov dword [ebx + eax], eax
cmp ebx, dword [esp + 0xc]
jne 0x6c99d111
mov dword [0x6ca3e6e8], eax
lea esi, [esi]
test byte [0x6ca3e894], 2
je 0x6c99d001
xor eax, eax
xchg dword [0x6ca3e898], eax
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x6ca3e8b8], 0x40000
xor ebp, ebp
mov esi, 1
mov dword [0x6ca3e8bc], 0x200000
mov dword [0x6ca3e8c0], 7
jmp 0x6c99d050
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esp, 4
mov eax, ebp
lock cmpxchg dword [0x6ca3e8c4], esi
test eax, eax
jne 0x6c99d040
mov ebp, dword [0x6ca3e8ac]
test ebp, ebp
jne 0x6c99d086
mov eax, dword [0x6ca3e8c0]
mov dword [0x6ca3e8ac], 0x58585858
mov dword [0x6ca3e898], 0
mov dword [0x6ca3e894], eax
xor eax, eax
xchg dword [0x6ca3e8c4], eax
lea esi, [esp + 0x18]
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
sub esp, 4
mov eax, dword [esp + 0x1c]
mov dword [0x6ca3e8b0], eax
mov eax, dword [esp + 0x34]
mov dword [0x6ca3e8b4], eax
test byte [0x6ca3e894], 2
je 0x6c99ce40
xor ebp, ebp
mov esi, 1
jmp 0x6c99d0e0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esp, 4
mov eax, ebp
lock cmpxchg dword [0x6ca3e898], esi
test eax, eax
jne 0x6c99d0d0
mov ebp, dword [0x6ca3e6f0]
cmp ebp, ebx
jbe 0x6c99ce4e
jmp 0x6c99cff0
mov edx, eax
and ecx, 0xfffffffe
or edx, 1
mov dword [esi + 4], ecx
mov dword [ebx + 4], edx
mov dword [esi], eax
mov ecx, eax
shr ecx, 3
cmp ecx, 0x1f
ja 0x6c99d160
mov edx, 1
mov esi, dword [0x6ca3e6e0]
lea eax, [ecx*8 + 0x6ca3e704]
shl edx, cl
test esi, edx
jne 0x6c99d270
or edx, esi
mov dword [0x6ca3e6e0], edx
mov edx, eax
mov dword [eax + 8], ebx
mov dword [edx + 0xc], ebx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
test byte [0x6ca3e894], 2
je 0x6c99d001
jmp 0x6c99cff9
mov edx, eax
shr edx, 8
cmp edx, 0xffff
ja 0x6c99d2f0
bsr edx, edx
mov esi, eax
lea ecx, [edx + 7]
shr esi, cl
mov ecx, esi
and ecx, 1
lea ecx, [ecx + edx*2]
mov edx, 1
mov edi, edx
lea esi, [ecx*4 + 0x12c]
shl edi, cl
mov edx, dword [0x6ca3e6e4]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
test edx, edi
jne 0x6c99d281
or edx, edi
add esi, 0x6ca3e6e0
mov dword [ecx*4 + 0x6ca3e80c], ebx
mov dword [0x6ca3e6e4], edx
mov dword [ebx + 0x18], esi
mov dword [ebx + 0xc], ebx
mov dword [ebx + 8], ebx
jmp 0x6c99cff0
mov edi, dword [ebx + 0x18]
mov dword [esp + 0xc], edi
cmp edx, ebx
je 0x6c99d480
mov ecx, dword [ebx + 8]
cmp ebp, ecx
ja 0x6c99d1f1
mov dword [ecx + 0xc], edx
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x6c99ced0
mov ecx, dword [ebx + 0x1c]
lea edi, [ecx + 0x48]
cmp dword [edi*4 + 0x6ca3e6ec], ebx
je 0x6c99d540
mov edi, dword [esp + 0xc]
cmp ebp, edi
ja 0x6c99d224
cmp dword [edi + 0x10], ebx
je 0x6c99d582
mov dword [edi + 0x14], edx
test edx, edx
je 0x6c99ced0
cmp ebp, edx
ja 0x6c99ced0
mov edi, dword [esp + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [edx + 0x18], edi
test ecx, ecx
je 0x6c99d24c
cmp ebp, ecx
ja 0x6c99d24c
mov dword [edx + 0x10], ecx
mov dword [ecx + 0x18], edx
mov ecx, dword [ebx + 0x14]
cmp ebp, ecx
ja 0x6c99ced0
test ecx, ecx
je 0x6c99ced0
mov dword [edx + 0x14], ecx
mov dword [ecx + 0x18], edx
jmp 0x6c99ced0
mov edx, dword [eax + 8]
cmp edx, dword [0x6ca3e6f0]
cmovb edx, eax
jmp 0x6c99d141
mov esi, dword [ecx*4 + 0x6ca3e80c]
mov edi, eax
cmp ecx, 0x1f
je 0x6c99d2b7
shr ecx, 1
mov edx, 0x19
sub edx, ecx
mov ecx, edx
shl edi, cl
jmp 0x6c99d2b7
mov edx, edi
add edi, edi
shr edx, 0x1f
add edx, 4
mov ecx, dword [esi + edx*4]
test ecx, ecx
je 0x6c99d4e4
mov esi, ecx
mov edx, dword [esi + 4]
and edx, 0xfffffffc
cmp edx, eax
jne 0x6c99d2a0
mov eax, dword [esi + 8]
cmp ebp, esi
ja 0x6c99cff0
cmp ebp, eax
ja 0x6c99cff0
mov dword [eax + 0xc], ebx
mov dword [esi + 8], ebx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x18], 0
jmp 0x6c99cff0
mov edi, 0x80000000
mov esi, 0x1a8
mov ecx, 0x1f
jmp 0x6c99d193
mov edx, dword [esi + 4]
mov ecx, edx
and ecx, 3
cmp ecx, 3
jne 0x6c99ced0
and edx, 0xfffffffe
mov dword [0x6ca3e6e8], eax
mov dword [esi + 4], edx
mov edx, eax
or edx, 1
mov dword [ebx + 4], edx
mov dword [esi], eax
jmp 0x6c99cff0
and ecx, 0xfffffffe
lea eax, [eax + ecx + 0x10]
sub ebx, ecx
mov dword [esp + 0xc], eax
mov ebp, ebx
test eax, eax
je 0x6c99d504
mov ebx, eax
lea esi, [esp + 0x18]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualQuery]
jmp 0x6c99d3b3
cmp dword [esp + 0x18], ebp
jne 0x6c99cff0
cmp dword [esp + 0x1c], ebp
jne 0x6c99cff0
cmp dword [esp + 0x28], 0x1000
jne 0x6c99cff0
cmp ebx, dword [esp + 0x24]
jb 0x6c99cff0
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov dword [esp], ebp
call dword [sym.imp.KERNEL32.dll_VirtualFree]
sub esp, 0xc
test eax, eax
je 0x6c99cff0
mov eax, dword [esp + 0x24]
add ebp, eax
sub ebx, eax
je 0x6c99d504
mov dword [esp + 8], 0x1c
mov dword [esp + 4], esi
mov dword [esp], ebp
call edi
sub esp, 0xc
test eax, eax
jne 0x6c99d355
jmp 0x6c99cff0
add eax, dword [0x6ca3e6ec]
mov dword [0x6ca3e6f8], ebx
mov edx, eax
mov dword [0x6ca3e6ec], eax
or edx, 1
mov dword [ebx + 4], edx
cmp ebx, edi
je 0x6c99d561
cmp eax, dword [0x6ca3e6fc]
jbe 0x6c99cff0
xor eax, eax
call fcn.6c99b0e0
jmp 0x6c99cff0
mov ecx, dword [esi + 0x14]
lea edi, [esi + 0x14]
test ecx, ecx
je 0x6c99d58a
mov dword [esp + 0x14], ebx
mov ebx, edi
mov edx, ecx
mov ecx, dword [ecx + 0x14]
mov edi, ebx
lea ebx, [edx + 0x14]
test ecx, ecx
jne 0x6c99d424
mov ecx, dword [edx + 0x10]
lea ebx, [edx + 0x10]
test ecx, ecx
jne 0x6c99d424
mov ebx, dword [esp + 0x14]
cmp ebp, edi
ja 0x6c99cf6c
mov dword [edi], 0
jmp 0x6c99cf6c
mov edx, 0xfffffffe
rol edx, cl
and dword [0x6ca3e6e0], edx
jmp 0x6c99cfd0
mov edx, 0xfffffffe
rol edx, cl
and dword [0x6ca3e6e0], edx
jmp 0x6c99ced0
mov ecx, dword [ebx + 0x14]
lea edi, [ebx + 0x14]
test ecx, ecx
je 0x6c99d59f
mov dword [esp + 0x10], ebx
mov ebx, edi
mov edx, ecx
mov ecx, dword [ecx + 0x14]
mov edi, ebx
lea ebx, [edx + 0x14]
test ecx, ecx
jne 0x6c99d494
mov ecx, dword [edx + 0x10]
lea ebx, [edx + 0x10]
test ecx, ecx
jne 0x6c99d494
mov ebx, dword [esp + 0x10]
cmp ebp, edi
ja 0x6c99d1f1
mov dword [edi], 0
jmp 0x6c99d1f1
add eax, dword [0x6ca3e6e8]
mov dword [0x6ca3e6f4], ebx
mov edx, eax
mov dword [0x6ca3e6e8], eax
or edx, 1
mov dword [ebx + 4], edx
mov dword [ebx + eax], eax
jmp 0x6c99cff0
lea eax, [esi + edx*4]
cmp dword [0x6ca3e6f0], eax
ja 0x6c99cff0
mov dword [esi + edx*4], ebx
mov dword [ebx + 0x18], esi
mov dword [ebx + 0xc], ebx
mov dword [ebx + 8], ebx
jmp 0x6c99cff0
mov eax, dword [esp + 0xc]
sub dword [0x6ca3e88c], eax
jmp 0x6c99cff0
mov dword [ecx*4 + 0x6ca3e6ec], edx
test edx, edx
jne 0x6c99cf9f
mov edx, 0xfffffffe
mov ecx, edi
rol edx, cl
and dword [0x6ca3e6e4], edx
jmp 0x6c99cfd0
mov dword [edi*4 + 0x6ca3e6ec], edx
test edx, edx
jne 0x6c99d22c
mov edx, 0xfffffffe
rol edx, cl
and dword [0x6ca3e6e4], edx
jmp 0x6c99ced0
mov dword [0x6ca3e6f4], 0
mov dword [0x6ca3e6e8], 0
jmp 0x6c99d3f1
mov dword [edi + 0x10], edx
jmp 0x6c99cf9b
mov dword [edi + 0x10], edx
jmp 0x6c99d224
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x6c99d5e5
lea edi, [esi + 0x10]
mov dword [esp + 0x14], ebx
mov ebx, edi
jmp 0x6c99d424
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x6c99d621
lea edi, [ebx + 0x10]
mov dword [esp + 0x10], ebx
mov ebx, edi
jmp 0x6c99d494
cmp ebp, esi
ja 0x6c99cfd0
cmp ecx, edx
je 0x6c99cf40
jmp 0x6c99cf37
cmp ebp, edi
ja 0x6c99ced0
cmp ecx, edx
je 0x6c99cec0
jmp 0x6c99ceb4
mov edi, dword [esp + 0x10]
test edi, edi
je 0x6c99cfd0
mov edi, dword [esi + 0x1c]
lea edx, [edi + 0x48]
cmp dword [edx*4 + 0x6ca3e6ec], esi
je 0x6c99d65d
mov edi, dword [esp + 0x10]
cmp ebp, edi
ja 0x6c99cfd0
cmp esi, dword [edi + 0x10]
je 0x6c99d66d
mov esi, dword [esp + 0x10]
mov dword [esi + 0x14], 0
jmp 0x6c99cfd0
mov edi, dword [esp + 0xc]
test edi, edi
je 0x6c99ced0
mov ecx, dword [ebx + 0x1c]
lea edx, [ecx + 0x48]
cmp ebx, dword [edx*4 + 0x6ca3e6ec]
je 0x6c99d679
mov edi, dword [esp + 0xc]
cmp ebp, edi
ja 0x6c99ced0
cmp ebx, dword [edi + 0x10]
je 0x6c99d689
mov edi, dword [esp + 0xc]
mov dword [edi + 0x14], 0
jmp 0x6c99ced0
mov dword [edx*4 + 0x6ca3e6ec], 0
jmp 0x6c99d522
mov dword [edi + 0x10], 0
jmp 0x6c99cfd0
mov dword [edx*4 + 0x6ca3e6ec], 0
jmp 0x6c99d54f
mov dword [edi + 0x10], 0
jmp 0x6c99ced0