Function at 0x10014170
Capabilities:
Check mutex on windows
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x324
mov eax, dword [0x100911c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
lea ecx, [ebp - 0x23d]
xor eax, eax
push edi
mov dword [ebp - 0x244], eax
call fcn.10030c50
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x250]
mov dword [ebp - 0x250], 8
push eax
mov dword [ebp - 0x24c], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov eax, dword [0x100b9564]
test eax, eax
mov ecx, dword [ebp + 8]
push 0
cmovne ecx, eax
push ecx
push 0
mov ecx, 0x100b956c
call fcn.1000f9a0
cmp dword [0x100b9564], 0
mov ecx, str.helper
mov eax, str.helper_1
push 0
cmove eax, ecx
push eax
push 1
call fcn.1000f610
mov ecx, eax
call fcn.100222c0
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.1004a6f0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str.commonhelpercommonhelper.log
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x20c]
push eax
call fcn.1002ee90
mov ecx, esi
mov dword [ebp - 0x214], 0
xor eax, eax
mov dword [ebp - 0x210], 7
mov word [ebp - 0x224], ax
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10014280
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x224]
call fcn.1000b1a0
lea eax, [ebp - 0x224]
push eax
call fcn.1000f830
mov ecx, eax
call fcn.1000caa0
mov edx, dword [ebp - 0x210]
cmp edx, 8
jb 0x100142ef
mov ecx, dword [ebp - 0x224]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x100142e5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100151c4
push edx
push ecx
call fcn.1002fce8
add esp, 8
push 0
push 0
push 1
push 0
push str.pre_run_0
call fcn.1000f610
mov ecx, eax
call fcn.100222e0
mov ecx, dword [0x100b95bc]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ecx, ecx
jne 0x10014375
push 0x10091088
call esi
cmp dword [0x100b95bc], 0
jne 0x10014360
push 0x1c
call fcn.1002fcb8
mov esi, eax
add esp, 4
test esi, esi
je 0x10014352
lea ecx, [esi + 4]
mov dword [esi], vtable._BaseModule::CCriticalSection.0
push ecx
call edi
jmp 0x10014354
xor esi, esi
mov dword [0x100b95bc], esi
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x10091088
call ebx
mov ecx, dword [0x100b95bc]
test ecx, ecx
jne 0x10014375
xor eax, eax
jmp 0x100143c3
mov eax, dword [0x100b95b8]
test eax, eax
jne 0x100143c3
mov eax, dword [ecx]
push ecx
call dword [eax]
cmp dword [0x100b95b8], 0
jne 0x100143b3
push 0x30
call fcn.1002fcb8
add esp, 4
test eax, eax
je 0x100143a5
mov ecx, eax
call fcn.1000cc70
mov ecx, eax
jmp 0x100143a7
xor ecx, ecx
xchg dword [ebp - 0x24c], eax
mov dword [0x100b95b8], ecx
mov eax, dword [0x100b95bc]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov eax, dword [0x100b95b8]
mov ecx, eax
call fcn.1000cfa0
test eax, eax
jne 0x100144c3
call fcn.1002eb90
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x100144a1
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xa5
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.Init_common_data_fail___exit
push esi
call fcn.10005750
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x9c]
call fcn.10005880
lea ecx, [ebp - 0x23c]
call fcn.10004b30
lea ecx, [ebp - 0x224]
call fcn.10004b30
xor esi, esi
lea ecx, [ebp - 0x23d]
call fcn.10030cd0
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10030059
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [0x100b95c4]
test ecx, ecx
jne 0x10014518
push 0x100910a4
call esi
cmp dword [0x100b95c4], 0
jne 0x10014503
push 0x1c
call fcn.1002fcb8
mov esi, eax
add esp, 4
test esi, esi
je 0x100144fb
lea ecx, [esi + 4]
mov dword [esi], vtable._BaseModule::CCriticalSection.0
push ecx
call edi
jmp 0x100144fd
xor esi, esi
mov dword [0x100b95c4], esi
push 0x100910a4
call ebx
mov ecx, dword [0x100b95c4]
test ecx, ecx
jne 0x10014518
xor eax, eax
jmp 0x10014566
mov eax, dword [0x100b95c0]
test eax, eax
jne 0x10014566
mov eax, dword [ecx]
push ecx
call dword [eax]
cmp dword [0x100b95c0], 0
jne 0x10014556
push 0x50
call fcn.1002fcb8
add esp, 4
test eax, eax
je 0x10014548
mov ecx, eax
call fcn.1000ca60
mov ecx, eax
jmp 0x1001454a
xor ecx, ecx
xchg dword [ebp - 0x24c], eax
mov dword [0x100b95c0], ecx
mov eax, dword [0x100b95c4]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov eax, dword [0x100b95c0]
mov edi, dword [eax + 0x30]
or ebx, 0xffffffff
cmp dword [0x100b9564], 0
jne 0x10014631
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.1004a6f0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x24c]
call fcn.10003bb0
lea eax, [ebp - 0x254]
push eax
call fcn.1000f720
mov ecx, eax
call fcn.1000ce70
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x100151c9
push eax
push dword [ebp - 0x24c]
call fcn.1004df96
mov edx, dword [ebp - 0x254]
add esp, 8
mov esi, eax
mov ecx, ebx
neg esi
sbb esi, esi
add edx, 0xfffffff0
inc esi
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x10014610
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x24c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001462d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x10014694
call fcn.10008da0
mov ecx, eax
test ecx, ecx
je 0x100151d3
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x248]
push str.HELPERFUZZYMODE_BCB0A953_7579_48b3_84DC_79A9438F3D79
mov dword [ebp - 0x248], eax
call fcn.100084a0
test al, al
jne 0x10014674
push 0x34
push str.HELPERFUZZYMODE_BCB0A953_7579_48b3_84DC_79A9438F3D79
lea ecx, [ebp - 0x248]
call fcn.10009770
lea eax, [ebp - 0x248]
push eax
call fcn.1001b780
add esp, 4
test eax, eax
mov eax, 1
jne 0x1001469a
test edi, edi
jne 0x1001469a
mov bl, al
jmp 0x1001469c
mov eax, dword [ebp - 0x244]
xor bl, bl
test al, 1
je 0x100146be
mov edx, dword [ebp - 0x248]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100146be
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.1002eb90
mov ecx, eax
push 1
mov edx, dword [eax]
test bl, bl
je 0x1001479a
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10014bca
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xad
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.Use_origin_mode_without_fuzzy
push esi
call fcn.10005750
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x9c]
call fcn.10005880
lea ecx, [ebp - 0x23c]
call fcn.10004b30
lea ecx, [ebp - 0x224]
call fcn.10004b30
jmp 0x10014bca
mov edx, dword [edx + 8]
call edx
movzx eax, al
test edi, edi
je 0x10014a88
sub eax, 1
jne 0x10014866
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xb3
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.force_fuzzy_mode_
push esi
call fcn.10005750
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x9c]
call fcn.10005880
lea ecx, [ebp - 0x23c]
call fcn.10004b30
lea ecx, [ebp - 0x224]
call fcn.10004b30
lea eax, [ebp - 0x244]
push eax
call fcn.1000f720
mov ecx, eax
call fcn.1000cef0
push eax
call fcn.1001b780
mov edx, dword [ebp - 0x244]
mov esi, eax
add esp, 4
add edx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100148a2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x1001494c
call fcn.1002eb90
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x100144a1
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xb6
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.error_to_try_fuzzy_mode_by_command__FFM__mutex___exit
jmp 0x1001446f
call fcn.10011dd0
mov esi, eax
call fcn.1002eb90
push 1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
mov ecx, eax
call edx
movzx eax, al
test esi, esi
jne 0x100149f9
sub eax, 1
jne 0x100144a1
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], esi
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xbb
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.error_to_try_fuzzy_mode_by_command__FFM__runapp___exit
jmp 0x1001446f
sub eax, 1
jne 0x100144a1
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xbf
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.force_fuzzy_mode_prepare_end_
jmp 0x1001446f
sub eax, 1
jne 0x10014bbd
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xc3
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.10004100
mov esi, eax
push str.IN_Fuzzy_mode.
push esi
call fcn.10005750
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x9c]
call fcn.10005880
mov edx, dword [ebp - 0x210]
cmp edx, 0x10
jb 0x10014b68
mov ecx, dword [ebp - 0x224]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10014b5e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100151dd
push edx
push ecx
call fcn.1002fce8
add esp, 8
mov edx, dword [ebp - 0x228]
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], 0
cmp edx, 0x10
jb 0x10014bbd
mov ecx, dword [ebp - 0x23c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10014bb3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100151dd
push edx
push ecx
call fcn.1002fce8
add esp, 8
call fcn.1000fb10
test eax, eax
je 0x100144a1
cmp dword [0x100b9564], 0
jne 0x10014da0
call fcn.1002eb90
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10014ca6
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xd0
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.re_create_self_mutex
push esi
call fcn.10005750
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x9c]
call fcn.10005880
lea ecx, [ebp - 0x23c]
call fcn.10004b30
lea ecx, [ebp - 0x224]
call fcn.10004b30
lea eax, [ebp - 0x244]
push eax
call fcn.1000f720
mov ecx, eax
call fcn.1000cef0
push dword [eax]
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edx, dword [ebp - 0x244]
mov esi, eax
add edx, 0xfffffff0
or ecx, 0xffffffff
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x10014ce5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x100144a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x10014da0
call fcn.1002eb90
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x100144a1
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xda
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.Instance_break._exit
jmp 0x1001446f
call fcn.1002eb90
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10014e6f
push 0x49
push str.d:jenkins.jenkinsworkspacemouse_helperccmousehelpercommonhelper.cpp
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], 0xf
mov byte [ebp - 0x224], al
call fcn.1000b0b0
push 3
push 0x10073b14
lea ecx, [ebp - 0x23c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
call fcn.1000b0b0
call fcn.1002eb90
mov edi, eax
lea ecx, [ebp - 0x9c]
push 0xdf
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.10004100
mov esi, eax
push str.ready_to_do_work
push esi
call fcn.10005750
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x9c]
call fcn.10005880
lea ecx, [ebp - 0x23c]
call fcn.10004b30
lea ecx, [ebp - 0x224]
call fcn.10004b30
push 0
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0x2a0], 1
push eax
lea eax, [ebp - 0x258]
mov dword [ebp - 0x29c], 0
push eax
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 0
call sub.gdiplus.dll_GdiplusStartup
test eax, eax
je 0x10014eba
mov esi, 1
jmp 0x100144a3
push 0
push 0
push 1
push 0
push str.pre_run_1
call fcn.1000f610
mov ecx, eax
call fcn.100222e0
mov ebx, dword [0x100b90e4]
xorps xmm0, xmm0
add ebx, 0x10
mov dword [ebp - 0x290], 0x100747d0
push ebx
movups xmmword [ebp - 0x28c], xmm0
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x278], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [0x100b95a0]
mov edi, eax
push 4
mov ecx, dword [esi + 8]
inc ecx
push ecx
push dword [esi]
call fcn.10051c73
add esp, 0xc
test eax, eax
je 0x10014f6d
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call fcn.10051c73
add esp, 0xc
test eax, eax
je 0x10014f6d
mov ecx, dword [esi + 8]
mov dword [esi + 4], eax
lea edx, [ecx*4]
mov ecx, dword [esi]
add ecx, edx
je 0x10014f5e
mov dword [ecx], edi
mov eax, dword [esi + 4]
add eax, edx
je 0x10014f6a
lea ecx, [ebp - 0x290]
mov dword [eax], ecx
inc dword [esi + 8]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push ebx
call edi
lea ecx, [ebp - 0x324]
call fcn.10016710
push dword [ebp - 0x258]
lea eax, [ebp - 0x304]
push eax
push 0x100910c0
push 0x10091028
push 0x100b9630
call fcn.1000dac0
movzx esi, ax
add esp, 0x14
mov eax, dword [ebp - 0x310]
test eax, eax
jne 0x10014fce
call fcn.1001c4f6
mov dword [ebp - 0x310], eax
test eax, eax
jne 0x10014fce
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x10015057
push 0
push 0
push eax
call fcn.1001c5f8
test si, si
je 0x10015057
lea eax, [ebp - 0x324]
mov dword [ebp - 0x31c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x1009102c
mov dword [ebp - 0x318], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x10091044]
mov dword [ebp - 0x314], eax
lea eax, [ebp - 0x31c]
push 0x1009102c
mov dword [0x10091044], eax
call edi
mov ecx, dword [0x10091078]
mov eax, dword [0x10091080]
mov edx, dword [0x10091074]
sub eax, ecx
push 0
push dword [0x100b9634]
push 0
push 0
push eax
mov eax, dword [0x1009107c]
sub eax, edx
push eax
push ecx
push edx
push 0x86020000
push 0
push esi
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov ebx, 1
xor esi, esi
test ebx, ebx
je 0x10015094
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x274]
push eax
call edi
test eax, eax
jne 0x10015094
mov eax, dword [ebp - 0x290]
lea ecx, [ebp - 0x290]
push esi
call dword [eax + 4]
inc esi
test eax, eax
jne 0x10015068
xor ebx, ebx
push 0
push 0
push 0
lea eax, [ebp - 0x274]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, 0xffffffff
je 0x10015064
test eax, eax
je 0x1001512a
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp - 0x290]
lea ecx, [ebp - 0x290]
call dword [eax]
test eax, eax
jne 0x100150e3
lea eax, [ebp - 0x274]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x274]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [ebp - 0x270]
cmp eax, 0x118
ja 0x100150fe
je 0x1001511a
cmp eax, 0xf
je 0x1001511a
cmp eax, 0xa0
jmp 0x10015103
cmp eax, 0x200
je 0x1001511a
mov ecx, 1
xor eax, eax
test ecx, ecx
mov ebx, ecx
cmove eax, esi
mov esi, eax
jmp 0x10015064
xor ecx, ecx
xor eax, eax
test ecx, ecx
cmove eax, esi
mov esi, eax
jmp 0x10015064
mov ecx, 0x100b956c
call fcn.10011740
lea ecx, [ebp - 0x2a4]
xor esi, esi
call fcn.1000a940
lea ecx, [ebp - 0x2ac]
call fcn.10019870
mov edx, dword [ebp - 0x2b4]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1001516a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x324]
call fcn.1000e070
mov eax, dword [ebp - 0x280]
test eax, eax
je 0x1001518e
push eax
call fcn.1004dc30
add esp, 4
mov dword [ebp - 0x280], esi
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x27c], esi
mov dword [ebp - 0x278], esi
test eax, eax
je 0x100151b3
push eax
call fcn.1004dc30
add esp, 4
mov dword [ebp - 0x28c], esi
mov dword [ebp - 0x288], esi
mov dword [ebp - 0x284], esi
jmp 0x100144a3
call fcn.1004db49
push 0x80004005
call fcn.10008480
push 0x80004005
call fcn.10008480
call fcn.1004db49
int3