Function at 0x43bd00
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50b2b5
mov eax, dword fs:[0]
push eax
mov eax, 0x1dd0
call fcn.004ef140
mov eax, dword [0x54f018]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov esi, edx
mov dword [ebp - 0x1d58], esi
mov dword [ebp - 0x1d50], eax
mov dword [ebp - 0x1d5c], ecx
mov dword [ebp - 0x1d54], ebx
mov dword [ebx + 0x24], 0
call dword [sym.imp.MSVCR100.dll_clock]
mov edi, eax
call dword [sym.imp.MSVCR100.dll_clock]
movzx edx, byte [ebx + 4]
sub eax, edi
push eax
push edx
push str.UpdateChCeModel_phyNo___d__time___d_r_n
call dword [sym.imp.MSVCR100.dll_printf]
mov eax, dword [ebp + 0x10]
add esp, 0xc
test eax, eax
jne 0x43bf91
movzx eax, byte [ebx + 4]
cmp dword [esi + eax*4 + 0x12c4], 0
lea eax, [esi + eax*4 + 0x12c4]
je 0x43bdbc
mov eax, dword [eax]
test eax, eax
je 0x43bdad
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
movzx ecx, byte [ebx + 4]
mov dword [esi + ecx*4 + 0x12c4], 0
movzx edx, byte [ebx + 4]
lea eax, [esi + edx*4 + 0x12c4]
push eax
mov ecx, ebx
call fcn.0044acf0
lea esi, [ebp - 0x1d44]
call fcn.00404170
mov ecx, dword [ebp - 0x1d58]
push ebx
push ecx
mov ebx, esi
call fcn.00436570
test eax, eax
je 0x43c31c
call fcn.0041f0a0
movzx edi, byte [ebp - 0x1d43]
imul edi, edi, 0xe98
add edi, dword [eax]
mov ecx, 0x3a6
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x1d58]
push esi
mov eax, ebx
call fcn.00436780
xor ebx, ebx
test eax, eax
je 0x43bf3d
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1d5c], esp
push ebx
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push 0x51d12c
mov byte [ecx], bl
call fcn.004016d0
mov ecx, dword [esi + 0x135c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x1d54]
mov edx, dword [edx + 8]
push eax
call edx
call dword [sym.imp.MSVCR100.dll_clock]
lea ecx, [ebp - 0x1d9c]
mov edi, eax
mov dword [ebp - 0x1dc4], ebx
mov dword [ebp - 0x1dc0], ebx
mov dword [ebp - 0x1dbc], ebx
call dword [sym.imp.mfc100.dll_Ordinal_316]
lea ecx, [ebp - 0x1d98]
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov dword [ebp - 4], ebx
push esi
lea edx, [ebp - 0x1dc8]
lea ecx, [ebp - 0x1d44]
mov dword [ebp - 0x1dac], 1
call fcn.0043c950
call dword [sym.imp.MSVCR100.dll_clock]
sub eax, edi
push eax
mov eax, dword [ebp - 0x1d54]
movzx ecx, byte [eax + 4]
push ecx
push str.GetDiskUIInfo_phyNo___d__time___d_r_n
call dword [sym.imp.MSVCR100.dll_printf]
mov edi, dword [ebp - 0x1d50]
add esp, 0xc
lea ecx, [ebp - 0x1dc8]
call fcn.0044b800
lea ecx, [ebp - 0x1d44]
mov edi, esi
call fcn.0043fbc0
mov eax, dword [esi + 0x12b4]
mov edx, dword [esi + 0x12b8]
movzx ecx, byte [ebp - 0x1d43]
sub edx, eax
sar edx, 2
cmp edx, ecx
jbe 0x43bf2b
mov edi, dword [eax + ecx*4]
call fcn.004514b0
movzx eax, byte [ebp - 0x1d43]
mov ecx, dword [esi + 0x12b4]
mov eax, dword [ecx + eax*4]
mov dl, byte [ebp - 0x1d44]
mov byte [eax + 0xb8], dl
lea edi, [ebp - 0x1dc8]
mov dword [ebp - 4], 0xffffffff
call fcn.00438310
call fcn.0041db00
mov esi, eax
mov ecx, dword [esi + 0x10]
mov al, byte [ebp - 0x1d43]
push 0xffffffffffffffff
push ecx
mov byte [ebp - 0x1d48], al
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x51d12c
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edi, eax
lea eax, [ebp - 0x1d48]
mov ecx, esi
mov ebx, 5
call fcn.0041df20
mov dword [eax], edi
mov dword [eax + 4], ebx
mov edx, dword [esi + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x43c31c
cmp eax, 2
jne 0x43c0fa
movzx eax, byte [ebx + 0x1f]
mov edi, dword [ebp - 0x1d5c]
mov dword [ebp - 0x1d50], eax
lea eax, [ebp - 0x1d50]
call fcn.0048ec30
mov edi, dword [esi + 0x12a4]
mov ecx, dword [esi + 0x12a8]
sub ecx, edi
mov eax, 0x8c55841d
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ebp - 0x1d4c], 0xff
je 0x43bff8
mov cl, byte [ebx + 4]
cmp byte [edi + 1], cl
jne 0x43bfef
mov dl, byte [edi]
mov byte [ebp - 0x1d4c], dl
add edi, 0xe98
dec eax
jne 0x43bfe2
mov al, byte [ebx + 4]
mov byte [ebp - 0x1d48], al
call fcn.0041f0a0
movzx ecx, byte [ebp - 0x1d48]
mov edx, dword [eax]
imul ecx, ecx, 0xe98
mov byte [ecx + edx + 1], 0xff
movzx eax, byte [ebx + 4]
push eax
lea ecx, [ebp - 0x1dd8]
push ecx
push esi
call fcn.00436810
mov eax, dword [ebp - 0x1dd8]
test eax, eax
je 0x43c040
push eax
call dword [sym.imp.mfc100.dll_Ordinal_1296]
add esp, 4
movzx edx, byte [ebx + 4]
mov eax, dword [esi + 0x11f0]
cmp dword [eax + edx*4], 0
lea eax, [eax + edx*4]
je 0x43c06f
mov eax, dword [eax]
mov eax, dword [eax + 0x944]
test eax, eax
je 0x43c062
mov eax, dword [eax + 0x20]
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x6c36b0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x6c37a8], 0
jne 0x43c0bc
push 0x14
call dword [sym.imp.mfc100.dll_Ordinal_1294]
add esp, 4
mov dword [ebp - 0x1d50], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x43c0ae
mov esi, eax
call fcn.0041db90
mov esi, dword [ebp - 0x1d58]
jmp 0x43c0b0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x6c37a8], eax
push 0x6c36b0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx ecx, byte [ebx + 4]
mov edi, dword [0x6c37a8]
push ecx
call fcn.0041de90
movzx edx, byte [ebx + 4]
push edx
call fcn.0041dd50
mov ecx, dword [esi + 0x135c]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x1d4c]
mov eax, dword [eax + 0xc]
push edx
call eax
jmp 0x43c31c
mov ecx, dword [esi + 0x12a8]
sub ecx, dword [esi + 0x12a4]
mov eax, 0x8c55841d
imul ecx
add edx, ecx
sar edx, 0xb
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0
mov dword [ebp - 0x1d4c], eax
je 0x43c31c
mov dword [ebp - 0x1d60], eax
mov al, byte [ebx + 4]
mov ecx, dword [esi + 0x12a4]
mov edx, dword [ebp - 0x1d60]
cmp byte [ecx + edx + 1], al
jne 0x43c176
test byte [esi + 0x1374], 0x80
jne 0x43c160
mov ecx, dword [esi + 0x135c]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x34]
call eax
test eax, eax
jne 0x43c176
mov ecx, dword [esi + 0x135c]
movzx eax, byte [ebx + 4]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
push eax
call edx
test eax, eax
jne 0x43c196
mov eax, dword [ebp - 0x1d4c]
add dword [ebp - 0x1d60], 0xe98
inc eax
mov dword [ebp - 0x1d4c], eax
cmp eax, edi
jb 0x43c130
jmp 0x43c31c
lea esi, [ebp - 0xeac]
call fcn.00404170
mov eax, dword [ebp - 0x1d58]
push ebx
push eax
mov ebx, esi
call fcn.00436570
test eax, eax
je 0x43c31c
mov esi, dword [ebp - 0x1d4c]
mov ebx, dword [ebp - 0x1d58]
imul esi, esi, 0xe98
mov ecx, dword [ebx + 0x12a4]
mov al, byte [esi + ecx]
mov edx, dword [ebp - 0x1d54]
cmp al, byte [edx + 0x1f]
je 0x43c1f8
mov edi, dword [ebp - 0x1d5c]
movzx eax, al
mov dword [ebp - 0x1d4c], eax
lea eax, [ebp - 0x1d4c]
call fcn.0048ec30
xor eax, eax
lea ecx, [ebp - 0x1d68]
mov dword [ebp - 0x1d90], eax
mov dword [ebp - 0x1d8c], eax
mov dword [ebp - 0x1d88], eax
call dword [sym.imp.mfc100.dll_Ordinal_316]
lea ecx, [ebp - 0x1d64]
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov dword [ebp - 4], 2
push ebx
lea edx, [ebp - 0x1d94]
lea ecx, [ebp - 0xeac]
mov dword [ebp - 0x1d78], 1
call fcn.0043c950
mov ecx, dword [ebx + 0x12a4]
mov dl, byte [esi + ecx]
mov eax, dword [ebp - 0x1d54]
cmp dl, byte [eax + 0x1f]
je 0x43c26c
mov edi, dword [ebp - 0x1d50]
lea ecx, [ebp - 0x1d94]
call fcn.0044b800
mov edx, dword [ebx + 0x12a4]
push 0xe98
lea ecx, [ebp - 0xeac]
push ecx
add edx, esi
push 0xe98
push edx
call dword [sym.imp.MSVCR100.dll_memcpy_s]
add esp, 0x10
call fcn.0041f0a0
movzx edi, byte [ebp - 0xeab]
mov edx, dword [ebp - 0x1d54]
imul edi, edi, 0xe98
add edi, dword [eax]
mov ecx, 0x3a6
lea esi, [ebp - 0xeac]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x135c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
push edx
call eax
lea ecx, [ebp - 0xeac]
mov edi, ebx
call fcn.0043fbc0
mov eax, dword [ebx + 0x12b4]
mov edx, dword [ebx + 0x12b8]
movzx ecx, byte [ebp - 0xeab]
sub edx, eax
sar edx, 2
cmp ecx, edx
jae 0x43c311
mov edi, dword [eax + ecx*4]
call fcn.004514b0
movzx eax, byte [ebp - 0xeab]
mov ecx, dword [ebx + 0x12b4]
mov edx, dword [ecx + eax*4]
mov al, byte [ebp - 0xeac]
mov byte [edx + 0xb8], al
lea edi, [ebp - 0x1d94]
call fcn.00438310
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004e8d32
mov esp, ebp
pop ebp
ret 0xc