Function at 0x100d166c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov esi, ecx
test dl, dl
je 0x100d1958
mov eax, dword [esi + 0xd4]
and dword [esp + 0x70], 0
and dword [esp + 0x30], 0
and dword [esp + 0x38], 0
and dword [esp + 0x78], 0
and dword [esp + 0x80], 0
and dword [esp + 0xa0], 0
and dword [esp + 0x74], 0
and dword [esp + 0x34], 0
and dword [esp + 0x3c], 0
and dword [esp + 0x7c], 0
and dword [esp + 0x84], 0
and dword [esp + 0xa4], 0
mov dword [esp + 0x20], edx
test eax, eax
je 0x100d16f3
lea ecx, [esp + 0x38]
lea edx, [esp + 0x30]
lea edi, [esp + 0x70]
push ecx
push edx
push edi
push edi
push dword [eax + 8]
call sub.kernel32.dll_GetProcessTimes
lea ebx, [esp + 0xa0]
lea edi, [esp + 0x80]
lea eax, [esp + 0x78]
push ebx
push edi
push eax
call sub.kernel32.dll_GetSystemTimes
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x60]
mov edi, dword [esi + 0x64]
mov dword [esp + 0x5c], eax
cmp eax, edx
mov eax, ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [esi + 0x6c]
sbb eax, edi
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x2c], eax
mov eax, 0
mov dword [esp + 0x28], ebx
cmovb edx, eax
cmovb edi, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], edx
mov edx, dword [esi + 0x58]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x50]
mov dword [esp + 0x40], edx
mov edx, dword [esi + 0x54]
mov dword [esi + 0x58], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x5c]
mov dword [esp + 0x24], eax
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x60]
mov dword [esi + 0x54], eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x68], ecx
mov ebx, dword [esp + 0x50]
mov dword [esi + 0x64], edx
mov dword [esi + 0x60], eax
sub eax, dword [esp + 0x58]
sbb edx, edi
cmp ecx, ebx
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x54]
sbb edi, ecx
mov edi, 0
cmovb ecx, edi
cmovb ebx, edi
mov edi, dword [esp + 0x2c]
sub edi, ebx
mov ebx, dword [esp + 0x28]
sbb ebx, ecx
xor ecx, ecx
dec ecx
add edi, eax
adc ebx, edx
cmovb edi, ecx
cmovb ebx, ecx
mov eax, edi
or eax, ebx
je 0x100d1949
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x44]
movd xmm0, edi
movd xmm1, ebx
punpckldq xmm0, xmm1
cmp dword [esp + 0x10], ecx
sbb eax, edx
mov eax, 0
cmovb ecx, eax
cmovb edx, eax
mov eax, dword [esp + 0x24]
sub dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x4c]
sbb dword [esp + 0xc], edx
cmp dword [esp + 0x14], ecx
mov edx, dword [esp + 0x48]
sbb eax, edx
mov eax, 0
cmovb ecx, eax
cmovb edx, eax
sub dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x24]
movq qword [esp + 0x90], xmm0
fild qword [esp + 0x90]
fnstcw word [esp + 0xa]
movzx eax, word [esp + 0xa]
sbb ecx, edx
shr ebx, 0x1f
mov edx, 0xffffffff
or eax, 0x300
mov word [esp + 0x1e], ax
fldcw word [esp + 0x1e]
fadd dword [ebx*4 + 0x101665e0]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x10]
adc ecx, dword [esp + 0xc]
fldcw word [esp + 0xa]
cmovb ecx, edx
cmovb eax, edx
fstp dword [esp + 0x6c]
movd xmm0, ecx
movd xmm1, eax
shr ecx, 0x1f
punpckldq xmm1, xmm0
movq qword [esp + 0x98], xmm1
fild qword [esp + 0x98]
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0x300
mov word [esp + 0x1c], ax
mov eax, dword [ebp + 0xc]
fldcw word [esp + 0x1c]
movd xmm2, eax
shr eax, 0x1f
fadd dword [ecx*4 + 0x101665e0]
fldcw word [esp + 8]
mov ecx, dword [ebp + 8]
fstp dword [esp + 0x64]
movd xmm1, ecx
movss xmm0, dword [esp + 0x64]
punpckldq xmm1, xmm2
divss xmm0, dword [esp + 0x6c]
movq qword [esp + 0x88], xmm1
fild qword [esp + 0x88]
fnstcw word [esp + 6]
movzx ecx, word [esp + 6]
mulss xmm0, dword [0x101665e8]
or ecx, 0x300
mov word [esp + 0x1a], cx
fldcw word [esp + 0x1a]
fadd dword [eax*4 + 0x101665e0]
fldcw word [esp + 6]
fstp dword [esp + 0x68]
mulss xmm0, dword [esp + 0x68]
jmp 0x100d194c
xorps xmm0, xmm0
mov edx, dword [esp + 0x20]
movss dword [esi + 0xd8], xmm0
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
test dx, 0xff00
je 0x100d19cd
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x100d19cd
lea ecx, [esp + 0xa0]
push ecx
push dword [eax + 8]
call sub.kernel32.dll_GetProcessIoCounters
test eax, eax
je 0x100d19cd
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
movsd xmm0, qword [esp + 0xb8]
movq xmm1, qword [esp + 0xc0]
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
movq xmm2, qword [esi + 0x98]
movq qword [esi + 0x88], xmm2
movsd qword [esi + 0x90], xmm0
movq qword [esi + 0x98], xmm1
xor eax, eax
sub edi, dword [esi + 0x70]
sbb ebx, dword [esi + 0x74]
cmovb edi, eax
cmovb ebx, eax
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], edi
mov byte [esi + 0xdc], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret