Function at 0x407486
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
add eax, 0x20c
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 0x1d]
add eax, 0x1c
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
movzx eax, word [eax + 0x153]
test eax, eax
jne 0x4074f8
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov eax, dword [ebp + 8]
add eax, 0x155
push eax
mov eax, dword [ebp + 8]
add eax, 0x153
push eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToDosDateTime]
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x197]
cmp eax, 1
jne 0x40757d
lea eax, [ebp - 0x128]
push eax
mov eax, dword [ebp + 8]
add eax, 0x31
push eax
call dword [sym.imp.USER32.dll_CharToOemA]
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov eax, dword [ebp + 8]
add eax, 0x31
push eax
lea eax, [ebp - 0x128]
push eax
call dword [0x4205d0]
test eax, eax
jne 0x40757d
mov eax, dword [ebp + 8]
add eax, 0x31
push eax
mov eax, dword [ebp + 8]
add eax, 0x31
push eax
call dword [sym.imp.USER32.dll_CharToOemA]
mov eax, dword [ebp + 8]
add eax, 0x135
push eax
mov eax, dword [ebp + 8]
add eax, 0x135
push eax
call dword [sym.imp.USER32.dll_CharToOemA]
mov eax, dword [ebp + 8]
mov byte [eax + 0x197], 2
mov eax, dword [ebp - 0x130]
movzx eax, word [eax + 0x148]
cmp eax, 0xffff
jne 0x4075d4
mov eax, dword [ebp - 0x130]
mov ax, word [eax + 0x14a]
mov word [ebp - 4], ax
movzx eax, word [ebp - 4]
imul eax, eax, 0x1af
mov ecx, dword [ebp - 8]
add ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0x130]
mov ax, word [eax + 0x14a]
add ax, 1
mov ecx, dword [ebp - 0x130]
mov word [ecx + 0x14a], ax
jmp 0x40760a
mov eax, dword [ebp - 0x130]
mov ax, word [eax + 0x148]
mov word [ebp - 4], ax
movzx eax, word [ebp - 4]
imul eax, eax, 0x1af
mov ecx, dword [ebp - 8]
add ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0xc]
mov cx, word [ecx]
mov word [eax + 0x148], cx
push 0x1af
push dword [ebp + 8]
push dword [ebp - 0xc]
call fcn.0040ea40
add esp, 0xc
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x130]
mov cx, word [ecx + 0x152]
mov word [eax + 2], cx
mov eax, dword [ebp - 0xc]
or word [eax], 0xffff
mov eax, dword [ebp - 0x130]
movzx eax, word [eax + 0x150]
cmp eax, 0xffff
je 0x40767e
mov eax, dword [ebp - 0x130]
movzx eax, word [eax + 0x152]
imul eax, eax, 0x1af
mov ecx, dword [ebp - 8]
mov dx, word [ebp - 4]
mov word [ecx + eax], dx
mov eax, dword [ebp - 0x130]
mov cx, word [ebp - 4]
mov word [eax + 0x152], cx
jmp 0x4076a0
mov eax, dword [ebp - 0x130]
mov cx, word [ebp - 4]
mov word [eax + 0x152], cx
mov eax, dword [ebp - 0x130]
mov cx, word [ebp - 4]
mov word [eax + 0x150], cx
push dword [ebp + 8]
mov ecx, dword [ebp - 0x130]
call fcn.00406c70
mov ecx, dword [ebp - 0x130]
mov ecx, dword [ecx + 0x154]
add ecx, eax
mov eax, dword [ebp - 0x130]
mov dword [eax + 0x154], ecx
mov eax, dword [ebp - 0x130]
mov ax, word [eax + 0x158]
add ax, 1
mov ecx, dword [ebp - 0x130]
mov word [ecx + 0x158], ax
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 0x22c]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x40773b
mov eax, dword [ebp + 8]
add eax, 0x157
push eax
mov eax, dword [ebp - 0x130]
add eax, 0x234
push eax
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
je 0x407739
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 0x230]
inc eax
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 0x230], eax
jmp 0x407754
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 0x230]
inc eax
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 0x230], eax
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 0x14c]
cmp eax, dword [ecx + 0x14f]
ja 0x407781
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14f]
inc eax
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 0x14c], eax
mov ecx, dword [ebp - 0x130]
call fcn.00406ced
mov eax, dword [ebp - 0x130]
add eax, 0x20c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 1
pop eax
leave
ret 4