Function at 0x443f50
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfd8
mov eax, dword [0x4cd0e0]
push ebx
push ebp
xor ebp, ebp
xor ebx, ebx
cmp eax, ebp
push esi
push edi
mov dword [esp + 0x14], ebx
jne 0x443f7e
push 0x4cd0e0
call fcn.0045a1c9
add esp, 4
push str.KaseyaMonitorListSema
push ebp
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x2c], 0xc
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], 1
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edi, eax
cmp edi, ebp
mov dword [esp + 0x18], edi
jne 0x443fcc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:_Failed_to_create_list_mutex_in_updateSnmpCache__._Code:__d_n
call fcn.0043ed20
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0xffffffffffffffff
push edi
call esi
cmp eax, 0x80
jne 0x443fe3
push 0xffffffffffffffff
push edi
call esi
test eax, eax
je 0x44400f
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:_Failed_to_obtain_list_mutex_in_updateSnmpCache__._Code:__d_n
call fcn.0043ed20
add esp, 8
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [0x4cd0cc]
test edi, edi
je 0x4442fe
lea ecx, [ecx]
cmp dword [edi + 0x114], 4
jne 0x44428f
mov eax, dword [edi + 0x138]
test eax, eax
je 0x44428f
mov eax, dword [edi + 0x12c]
test eax, eax
jne 0x444053
mov eax, dword [edi + 0x130]
test eax, eax
jle 0x44428f
push 0x2b0
push 1
call fcn.00459dd1
mov esi, eax
add esp, 8
test esi, esi
je 0x44427d
push 0x103
lea ecx, [edi + 8]
push ecx
lea edx, [esi + 8]
push edx
call fcn.00458f80
mov eax, dword [edi + 0x10c]
mov dword [esi + 0x10c], eax
mov ecx, dword [edi + 0x110]
mov dword [esi + 0x110], ecx
mov edx, dword [edi + 0x114]
mov dword [esi + 0x114], edx
mov eax, dword [edi + 0x11c]
mov dword [esi + 0x11c], eax
mov ecx, dword [edi + 0x118]
mov dword [esi + 0x118], ecx
mov edx, dword [edi + 0x120]
mov dword [esi + 0x120], edx
mov eax, dword [edi + 0x124]
mov dword [esi + 0x124], eax
mov ecx, dword [edi + 0x128]
mov dword [esi + 0x128], ecx
mov edx, dword [edi + 0x164]
mov dword [esi + 0x164], edx
mov eax, dword [edi + 0x168]
mov dword [esi + 0x168], eax
mov ecx, dword [edi + 0x14c]
mov dword [esi + 0x14c], ecx
mov edx, dword [edi + 0x140]
mov dword [esi + 0x140], edx
mov eax, dword [edi + 0x16c]
mov dword [esi + 0x16c], eax
mov ecx, dword [edi + 0x12c]
mov dword [esi + 0x12c], ecx
mov edx, dword [edi + 0x130]
mov dword [esi + 0x130], edx
mov eax, dword [edi + 0x170]
mov dword [esi + 0x170], eax
mov ecx, dword [edi + 0x134]
mov dword [esi + 0x134], ecx
mov eax, dword [edi + 0x128]
add esp, 0xc
cmp eax, 0xa
jne 0x444170
fld qword [edi + 0x158]
fstp qword [esi + 0x158]
mov edx, dword [edi + 0x160]
mov dword [esi + 0x160], edx
mov eax, dword [edi + 0x138]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x444180
sub eax, edx
inc eax
push eax
push 1
call fcn.00459dd1
add esp, 8
test eax, eax
mov dword [esi + 0x138], eax
je 0x4441b1
mov edx, dword [edi + 0x138]
mov cl, byte [edx]
inc edx
mov byte [eax], cl
inc eax
test cl, cl
jne 0x4441a5
jmp 0x4441e0
mov eax, dword [edi + 0x138]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4441c0
sub eax, edx
inc eax
push eax
push str.ERROR:_Allocate__d_bytes_for_copy_of_SNMPget_command_in_updateSnmpCache___n
call fcn.0043ed20
push esi
call fcn.0043ec60
add esp, 0xc
xor esi, esi
mov eax, dword [edi + 0x13c]
test eax, eax
je 0x44421f
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4441f0
sub eax, edx
inc eax
push eax
push 1
call fcn.00459dd1
add esp, 8
test eax, eax
mov dword [esi + 0x13c], eax
je 0x444241
mov edx, dword [edi + 0x13c]
mov cl, byte [edx]
inc edx
mov byte [eax], cl
inc eax
test cl, cl
jne 0x444215
test esi, esi
je 0x44428f
mov eax, dword [esi + 0x170]
test eax, eax
mov dword [esi], 0
jle 0x444270
test ebp, ebp
mov dword [esi + 4], ebp
je 0x44423d
mov dword [ebp], esi
mov ebp, esi
jmp 0x44428f
mov eax, dword [edi + 0x13c]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x444250
sub eax, edx
inc eax
push eax
push str.ERROR:_Allocate__d_bytes_for_copy_of_alternate_SNMPget_command_in_updateSnmpCache___n
call fcn.0043ed20
push esi
call fcn.0043ec60
add esp, 0xc
jmp 0x44428f
test ebx, ebx
mov dword [esi + 4], ebx
je 0x444279
mov dword [ebx], esi
mov ebx, esi
jmp 0x44428f
push 0x2b0
push str.ERROR:_Allocate__d_bytes_for_copy_of_monitor_entry_in_updateSnmpCache___n
call fcn.0043ed20
add esp, 8
mov edi, dword [edi + 4]
test edi, edi
jne 0x444020
test ebp, ebp
mov dword [esp + 0x14], ebx
je 0x4442fe
mov esi, ebp
test ebx, ebx
mov edi, dword [esi + 4]
mov eax, ebx
je 0x4442d0
mov ecx, dword [esi + 0x170]
cmp dword [eax + 0x124], ecx
jne 0x4442c9
mov edx, dword [eax + 0x120]
cmp edx, dword [esi + 0x120]
je 0x444336
mov eax, dword [eax + 4]
test eax, eax
jne 0x4442b3
mov edx, dword [esi + 0x120]
mov eax, dword [esi + 0x124]
mov ecx, dword [esi + 0x170]
push edx
push eax
push ecx
push str.updateSnmpCache_____could_not_find_RefId_d__id_d__deviceId_d_is_dropped_
call fcn.00432720
push esi
call fcn.0043ec60
add esp, 0x14
test edi, edi
mov esi, edi
jne 0x4442a4
mov esi, dword [esp + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [esp + 0x2c]
push edx
call fcn.00467c8d
mov eax, dword [0x487184]
add esp, 4
cmp eax, 0x1f4
mov edx, eax
mov dword [esp + 0x18], edx
jle 0x444343
mov edx, 0x1f4
jmp 0x44434d
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [eax + 4], esi
jmp 0x4442f8
cmp eax, 1
jge 0x444351
mov edx, 1
mov dword [esp + 0x18], edx
test ebx, ebx
mov ebp, ebx
je 0x44444a
jmp 0x444361
mov edx, dword [esp + 0x18]
cmp dword [0x487180], 2
je 0x44444a
cmp edx, 1
jle 0x444423
xor eax, eax
mov ecx, 0x1f4
lea edi, [esp + 0x48]
xor esi, esi
test edx, edx
rep stosd dword es:[edi], eax
jle 0x4443cb
mov edi, dword [esp + 0x18]
mov edi, edi
test ebp, ebp
je 0x4443cb
cmp dword [0x487180], 2
je 0x4443cb
lea ecx, [esp + 0x44]
push ecx
push 0
lea eax, [esp + esi*4 + 0x820]
push eax
push 0x4409c0
push 0
push 0
mov dword [eax], ebp
call fcn.004599db
mov ebp, dword [ebp + 4]
add esp, 0x18
mov dword [esp + esi*4 + 0x48], eax
inc esi
cmp esi, edi
jl 0x444390
mov ebx, esi
xor esi, esi
test ebx, ebx
jle 0x44443e
mov edi, dword [esp + esi*4 + 0x48]
test edi, edi
je 0x44441c
lea edx, [esp + 0x1c]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x444415
jmp 0x4443f0
cmp dword [esp + 0x1c], 0x103
jne 0x444415
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x1c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
jne 0x4443f0
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, ebx
jl 0x4443d3
jmp 0x44443e
push ebp
call fcn.00440260
mov ebp, dword [ebp + 4]
add esp, 4
test ebp, ebp
je 0x44444a
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
test ebp, ebp
mov ebx, dword [esp + 0x14]
jne 0x44435d
push 0x4cd0e0
call fcn.0045a1c9
mov eax, dword [0x487180]
add esp, 4
cmp eax, 2
jne 0x4444ac
test ebx, ebx
mov esi, ebx
je 0x444479
mov eax, esi
mov esi, dword [esi + 4]
push eax
call fcn.0043ec60
add esp, 4
test esi, esi
jne 0x444467
mov esi, dword [0x4cd0d0]
test esi, esi
je 0x444495
mov eax, esi
mov esi, dword [esi + 4]
push eax
call fcn.0043ec60
add esp, 4
test esi, esi
jne 0x444483
mov dword [0x4cd0d0], 0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x38]
push ecx
call fcn.00467c8d
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
mov ax, word [esp + 0x40]
mov cx, word [esp + 0x34]
sub edx, edi
imul edx, edx, 0x3e8
add esp, 4
cmp ax, cx
movzx ecx, cx
movzx eax, ax
push str.KaseyaSnmpDataCacheSema
sub edx, ecx
push 0
lea ecx, [esp + 0x28]
add edx, eax
push ecx
mov dword [0x487178], edx
mov dword [esp + 0x2c], 0xc
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 1
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
test esi, esi
jne 0x44454f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:_Failed_to_create_data_mutex_in_updateSnmpCache__._Code:__d_n
call fcn.0043ed20
add esp, 8
test ebx, ebx
mov esi, ebx
je 0x444542
mov eax, esi
mov esi, dword [esi + 4]
push eax
call fcn.0043ec60
add esp, 4
test esi, esi
jne 0x444530
mov eax, 0xfffffffd
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0xffffffffffffffff
push esi
call edi
cmp eax, 0x80
jne 0x444566
push 0xffffffffffffffff
push esi
call edi
test eax, eax
je 0x44459b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:_Failed_to_obtain_data_mutex_in_updateSnmpCache__._Code:__d_n
call fcn.0043ed20
add esp, 8
lea edi, [esp + 0x14]
call fcn.0043f0f0
mov eax, 0xfffffffc
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x4cd0d0]
push ebx
mov dword [esp + 0x18], edx
mov dword [0x4cd0d0], ebx
call fcn.00443430
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x14]
call fcn.0043f0f0
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret