Function at 0x41b270
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45ff10
mov eax, dword fs:[0]
push eax
sub esp, 0x5d4
mov eax, dword [0x4785c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x5b8], ecx
mov eax, dword [ebp - 0x5b8]
mov dword [eax + 0xa8], 0
push str.ft_abchina_detect_tools_single_instance_msgid
lea ecx, [ebp - 0x194]
call fcn.00402250
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x194]
call fcn.00402690
push eax
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
mov ecx, dword [ebp - 0x5b8]
mov dword [ecx + 0xa8], eax
mov edx, dword [ebp - 0x5b8]
cmp dword [edx + 0xa8], 0
jne 0x41b32a
push 0
push 0x10
push str.Can_not_initialize.
call fcn.00424970
mov dword [ebp - 0x490], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x490]
jmp 0x41be62
lea ecx, [ebp - 0x18c]
call fcn.00413170
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18c]
call fcn.00413480
movzx eax, al
test eax, eax
je 0x41b363
mov ecx, dword [ebp - 0x5b8]
mov edx, dword [ecx + 0xa8]
push edx
mov ecx, dword [ebp - 0x5b8]
call fcn.0041b1e0
push str.ft_abchina_detect_tools_single_instance
lea ecx, [ebp - 0x120]
call fcn.00402250
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x120]
call fcn.00402690
push eax
push 0
mov ecx, 0x484ee4
call fcn.004140f0
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ecx, dword [ebp - 0x5b8]
mov dword [ecx + 0xa4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41b423
mov edx, dword [ebp - 0x5b8]
mov eax, dword [edx + 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
mov ecx, dword [ebp - 0x5b8]
mov edx, dword [ecx + 0xa8]
push edx
push 0xffff
call dword [sym.imp.USER32.dll_PostMessageA]
mov dword [ebp - 0x494], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x494]
jmp 0x41be62
call fcn.0043a67a
mov dword [ebp - 0x1a0], 8
mov dword [ebp - 0x19c], 0xff
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, dword [ebp - 0x5b8]
call fcn.0042ff26
push 4
call fcn.00437206
mov dword [ebp - 0x49c], eax
cmp dword [ebp - 0x49c], 0
je 0x41b47d
mov ecx, dword [ebp - 0x49c]
call fcn.0041acb0
mov dword [ebp - 0x5bc], eax
jmp 0x41b487
mov dword [ebp - 0x5bc], 0
mov ecx, dword [ebp - 0x5bc]
mov dword [ebp - 0x498], ecx
mov edx, dword [ebp - 0x498]
mov dword [ebp - 0x190], edx
push 8
call fcn.004237d2
add esp, 4
mov dword [ebp - 0x4a4], eax
cmp dword [ebp - 0x4a4], 0
je 0x41b4cb
mov ecx, dword [ebp - 0x4a4]
call fcn.0041e070
mov dword [ebp - 0x5c0], eax
jmp 0x41b4d5
mov dword [ebp - 0x5c0], 0
mov eax, dword [ebp - 0x5c0]
mov dword [ebp - 0x4a0], eax
mov ecx, dword [ebp - 0x5b8]
mov edx, dword [ebp - 0x4a0]
mov dword [ecx + 0xc0], edx
mov eax, dword [ebp - 0x190]
push eax
call fcn.00438f4e
add esp, 4
lea ecx, [ebp - 0x468]
call fcn.00430575
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x468]
push ecx
mov ecx, dword [ebp - 0x5b8]
call fcn.0042fb54
push 1
push 4
mov ecx, 0x484ffc
call fcn.00415640
test eax, eax
jge 0x41b589
mov dword [ebp - 0x4a8], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.004305b9
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x4a8]
jmp 0x41be62
cmp dword [ebp - 0x460], 0
jne 0x41b59b
cmp dword [ebp - 0x45c], 0
je 0x41b5ef
mov dword [ebp - 0x4ac], 1
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.004305b9
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x4ac]
jmp 0x41be62
cmp dword [ebp - 0x454], 6
jne 0x41b661
push 0
call fcn.0041af70
push 0
push 1
mov ecx, 0x484ffc
call fcn.0041c1a0
mov dword [ebp - 0x4b0], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.004305b9
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x4b0]
jmp 0x41be62
cmp dword [ebp - 0x454], 5
jne 0x41b6d3
push 1
call fcn.0041af70
push 0
push 1
mov ecx, 0x484ffc
call fcn.0041c150
mov dword [ebp - 0x4b4], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.004305b9
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x4b4]
jmp 0x41be62
mov dword [ebp - 0x440], 0
mov byte [ebp - 0x11c], 0
push 0x103
push 0
lea edx, [ebp - 0x11b]
push edx
call fcn.00446170
add esp, 0xc
push 0x104
lea eax, [ebp - 0x11c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x5c4], ecx
mov edx, dword [ebp - 0x5c4]
add edx, 1
mov dword [ebp - 0x5c8], edx
mov eax, dword [ebp - 0x5c4]
mov cl, byte [eax]
mov byte [ebp - 0x5c9], cl
add dword [ebp - 0x5c4], 1
cmp byte [ebp - 0x5c9], 0
jne 0x41b729
mov edx, dword [ebp - 0x5c4]
sub edx, dword [ebp - 0x5c8]
mov dword [ebp - 0x5d0], edx
mov eax, dword [ebp - 0x5d0]
lea ecx, [ebp + eax - 0x11f]
mov dx, word [0x468c34]
mov word [ecx], dx
mov al, byte [0x468c36]
mov byte [ecx + 2], al
push 0
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x138]
call fcn.00415060
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x138]
push ecx
push 0x1022
lea edx, [ebp - 0x11c]
push edx
mov ecx, dword [ebp - 0x5b8]
add ecx, 0xac
mov eax, dword [ebp - 0x5b8]
mov edx, dword [eax + 0xac]
mov eax, dword [edx + 0x20]
call eax
test eax, eax
jne 0x41b7d1
mov ecx, dword [ebp - 0x5b8]
mov dword [ecx + 0xbc], 0
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x124], 1
lea edx, [ebp - 0x11c]
mov dword [ebp - 0x5d4], edx
mov eax, dword [ebp - 0x5d4]
add eax, 1
mov dword [ebp - 0x5d8], eax
mov ecx, dword [ebp - 0x5d4]
mov dl, byte [ecx]
mov byte [ebp - 0x5d9], dl
add dword [ebp - 0x5d4], 1
cmp byte [ebp - 0x5d9], 0
jne 0x41b7fd
mov eax, dword [ebp - 0x5d4]
sub eax, dword [ebp - 0x5d8]
mov dword [ebp - 0x5e0], eax
mov ecx, dword [ebp - 0x5e0]
lea edx, [ebp + ecx - 0x11f]
mov ax, word [0x468c38]
mov word [edx], ax
mov cl, byte [0x468c3a]
mov byte [edx + 2], cl
lea ecx, [ebp - 0x43c]
call fcn.00408d80
mov byte [ebp - 4], 5
lea edx, [ebp - 0x11c]
push edx
lea ecx, [ebp - 0x4d4]
call fcn.004069c0
mov byte [ebp - 4], 6
lea eax, [ebp - 0x4d4]
push eax
lea ecx, [ebp - 0x43c]
call fcn.00408ec0
movzx ecx, al
neg ecx
sbb ecx, ecx
add ecx, 1
mov byte [ebp - 0x4b5], cl
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x4d4]
call fcn.00406a40
movzx edx, byte [ebp - 0x4b5]
test edx, edx
je 0x41ba74
push 0x468c3c
lea eax, [ebp - 0x11c]
push eax
call fcn.0044440a
add esp, 8
mov dword [ebp - 0x46c], eax
cmp dword [ebp - 0x46c], 0
jne 0x41b8dd
mov dword [ebp - 0x10], 0
jmp 0x41b8ec
mov ecx, dword [ebp - 0x46c]
push ecx
call fcn.00443dbe
add esp, 4
lea edx, [ebp - 0x11c]
push edx
lea ecx, [ebp - 0x4f4]
call fcn.004069c0
mov byte [ebp - 4], 7
lea eax, [ebp - 0x4f4]
push eax
lea ecx, [ebp - 0x43c]
call fcn.00408ec0
movzx ecx, al
neg ecx
sbb ecx, ecx
add ecx, 1
mov byte [ebp - 0x4d5], cl
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x4f4]
call fcn.00406a40
movzx edx, byte [ebp - 0x4d5]
test edx, edx
je 0x41b948
mov dword [ebp - 0x124], 0
cmp dword [ebp - 0x124], 0
je 0x41ba74
push 0x468c40
lea ecx, [ebp - 0x510]
call fcn.004069c0
mov byte [ebp - 4], 8
lea eax, [ebp - 0x510]
push eax
lea ecx, [ebp - 0x43c]
call fcn.00409520
mov dword [ebp - 0x470], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x510]
call fcn.00406a40
cmp dword [ebp - 0x470], 0
jne 0x41b9a3
mov dword [ebp - 0x124], 0
cmp dword [ebp - 0x124], 0
je 0x41ba74
push 0x468c48
lea ecx, [ebp - 0x530]
call fcn.004069c0
mov byte [ebp - 4], 9
push 0x468c4c
lea ecx, [ebp - 0x54c]
call fcn.004069c0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x530]
push ecx
lea edx, [ebp - 0x54c]
push edx
mov eax, dword [ebp - 0x470]
push eax
lea ecx, [ebp - 0x43c]
call fcn.004096f0
movzx ecx, al
neg ecx
sbb ecx, ecx
add ecx, 1
mov byte [ebp - 0x511], cl
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x54c]
call fcn.00406a40
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x530]
call fcn.00406a40
movzx edx, byte [ebp - 0x511]
test edx, edx
je 0x41ba3d
mov dword [ebp - 0x124], 0
jmp 0x41ba74
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x568]
call fcn.004069c0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x568]
push ecx
lea ecx, [ebp - 0x43c]
call fcn.004097a0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x568]
call fcn.00406a40
mov dword [ebp - 0x1a4], 0
cmp dword [ebp - 0x124], 1
jne 0x41bd16
push str.config
lea ecx, [ebp - 0x588]
call fcn.004069c0
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0x588]
push edx
lea ecx, [ebp - 0x43c]
call fcn.004093b0
movzx eax, al
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x569], al
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x588]
call fcn.00406a40
movzx ecx, byte [ebp - 0x569]
test ecx, ecx
je 0x41bb75
mov ecx, 0x484f10
call fcn.004276fe
cmp eax, 2
jne 0x41bb60
mov dword [ebp - 0x58c], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x43c]
call fcn.00408db0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x138]
call fcn.00415120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.004305b9
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x58c]
jmp 0x41be62
mov ecx, 0x484f10
call fcn.004146f0
mov dword [ebp - 0x1a4], eax
jmp 0x41bd11
push str.KEYTYPE
lea ecx, [ebp - 0x5a8]
call fcn.004069c0
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x5a8]
push edx
lea ecx, [ebp - 0x43c]
call fcn.004093f0
push eax
lea ecx, [ebp - 0x48c]
call fcn.00406a00
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x5a8]
call fcn.00406a40
lea eax, [ebp - 0x48c]
push eax
push str.1234
call fcn.0041d6c0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x41bbe0
mov dword [ebp - 0x1a4], 0
jmp 0x41bd02
lea edx, [ebp - 0x48c]
push edx
push 0x468c68
call fcn.0041d6c0
add esp, 8
movzx eax, al
test eax, eax
je 0x41bc0a
mov dword [ebp - 0x1a4], 1
jmp 0x41bd02
lea ecx, [ebp - 0x48c]
push ecx
push 0x468c6c
call fcn.0041d6c0
add esp, 8
movzx edx, al
test edx, edx
je 0x41bc34
mov dword [ebp - 0x1a4], 2
jmp 0x41bd02
lea eax, [ebp - 0x48c]
push eax
push 0x468c70
call fcn.0041d6c0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x41bc5e
mov dword [ebp - 0x1a4], 3
jmp 0x41bd02
mov ecx, 0x484f10
call fcn.004276fe
cmp eax, 2
jne 0x41bcf2
mov dword [ebp - 0x5ac], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x48c]
call fcn.00406a40
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x43c]
call fcn.00408db0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x138]
call fcn.00415120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.004305b9
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x5ac]
jmp 0x41be62
mov ecx, 0x484f10
call fcn.004146f0
mov dword [ebp - 0x1a4], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x48c]
call fcn.00406a40
jmp 0x41bda7
mov ecx, 0x484f10
call fcn.004276fe
cmp eax, 2
jne 0x41bd97
mov dword [ebp - 0x5b0], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x43c]
call fcn.00408db0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x138]
call fcn.00415120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.004305b9
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x5b0]
jmp 0x41be62
mov ecx, 0x484f10
call fcn.004146f0
mov dword [ebp - 0x1a4], eax
push 0
mov edx, dword [ebp - 0x1a4]
push edx
lea ecx, [ebp - 0x434]
call fcn.0041e750
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x5b8]
lea ecx, [ebp - 0x434]
mov dword [eax + 0x20], ecx
lea ecx, [ebp - 0x434]
call fcn.004276fe
mov dword [ebp - 0x198], eax
push 0
call fcn.0043a5cb
mov dword [ebp - 0x5b4], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x434]
call fcn.0041be80
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x43c]
call fcn.00408db0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x138]
call fcn.00415120
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x468]
call fcn.004305b9
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x120]
call fcn.004022d0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18c]
call fcn.00413250
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x194]
call fcn.004022d0
mov eax, dword [ebp - 0x5b4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00441de6
mov esp, ebp
pop ebp
ret