Function at 0x404130
Capabilities:
Check if file exists
Check mutex on windows
Create thread
Get common file path
Get file attributes
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4607a2
mov eax, dword fs:[0]
push eax
sub esp, 0x658
mov eax, dword [0x478354]
xor eax, esp
mov dword [esp + 0x650], eax
push ebx
push esi
push edi
mov eax, dword [0x478354]
xor eax, esp
push eax
lea eax, [esp + 0x668]
mov dword fs:[0], eax
push 0x4031c0
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
push 0x29
xor edi, edi
push str.d1318ca0_db4a_4847_9bfa_4643086c163e_aa
lea ecx, [esp + 0x21c]
mov dword [esp + 0x234], 0xf
mov dword [esp + 0x230], edi
mov byte [esp + 0x220], 0
call fcn.00406100
mov dword [esp + 0x670], edi
mov eax, dword [esp + 0x218]
mov esi, 0x10
cmp dword [esp + 0x22c], esi
jae 0x4041cd
lea eax, [esp + 0x218]
push eax
push 1
push 1
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
cmp eax, edi
mov dword [0x47de74], eax
je 0x4041f4
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x22c], esi
jmp 0x405d86
cmp dword [esp + 0x22c], esi
mov eax, dword [esp + 0x218]
jae 0x40420b
lea eax, [esp + 0x218]
push eax
push 1
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x47de74], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40424e
mov ecx, dword [0x47de74]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x22c], esi
jb 0x405d98
mov edx, dword [esp + 0x218]
push edx
jmp 0x405d90
push edi
push edi
push 3
push edi
push 3
push 0xc0000000
push str.._KI_Process_Protect__
mov byte [esp + 0x68c], 1
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x20], esi
mov ebx, 4
je 0x40450a
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push edi
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1c]
push eax
push edi
push edi
push ebx
lea ecx, [esp + 0x3c]
push ecx
push 0x222004
push esi
mov dword [esp + 0x38], edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push 0x464058
call fcn.004014f0
add esp, 4
cmp esi, edi
je 0x4042c1
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0x403270
push edi
push edi
call fcn.0043c645
add esp, 0x18
lea eax, [esp + 0x36c]
call fcn.00405dc0
mov eax, 0xf
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], edi
mov byte [esp + 0x250], 0
mov dword [esp + 0x280], eax
mov dword [esp + 0x27c], edi
mov byte [esp + 0x26c], 0
lea edx, [esp + 0x24c]
push edx
lea ecx, [esp + 0x26c]
mov byte [esp + 0x674], bl
call fcn.0040fc50
add esp, 4
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x254]
push eax
lea ecx, [esp + 0x378]
call fcn.00406a20
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x270]
push ecx
lea ecx, [esp + 0x394]
call fcn.00406a20
push 1
push 0x464060
lea ecx, [esp + 0x3ac]
call fcn.00406100
push edi
push 0x463d0b
lea ecx, [esp + 0x3c8]
call fcn.00406100
lea esi, [esp + 0x1c0]
call fcn.0040fb80
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0x404]
mov byte [esp + 0x67c], 5
call fcn.00406a20
mov byte [esp + 0x670], bl
cmp dword [esp + 0x1d8], 0x10
jb 0x4043cc
mov edx, dword [esp + 0x1c4]
push edx
call fcn.0043c992
add esp, 4
push 1
push 0x464060
lea ecx, [esp + 0x41c]
call fcn.00406100
lea esi, [esp + 0x5c]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
call fcn.00431530
push str.start...
call fcn.004014f0
add esp, 4
mov byte [esp + 0x16], 0
mov dword [esp + 0x210], 0xf
mov dword [esp + 0x20c], edi
mov byte [esp + 0x1fc], 0
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
push edi
push edi
push edi
push 0x403660
push edi
push edi
mov byte [esp + 0x688], 9
call fcn.0043c645
add esp, 0x18
cmp eax, edi
je 0x4046d9
push 0x104
xor ebx, ebx
lea eax, [esp + 0x451]
push ebx
push eax
mov byte [esp + 0x458], 0
call fcn.0043eb30
add esp, 0xc
push 0x104
lea ecx, [esp + 0x450]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x44c]
push 0x5c
push edx
call fcn.0043c8a0
mov byte [eax], bl
lea eax, [esp + 0x454]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4044b7
sub eax, edx
push eax
lea eax, [esp + 0x450]
push eax
mov ecx, 0x4798d0
call fcn.00406100
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
lea ecx, [ecx]
call fcn.00409820
test al, al
jne 0x40451c
push str.0...
call fcn.004014f0
add esp, 4
push 0x3e8
call edi
add esi, 1
cmp esi, 0x3c
jl 0x4044e0
jmp 0x4046d9
push 0x46405c
call fcn.004014f0
add esp, 4
jmp 0x4042ba
push str.1...
call fcn.004014f0
mov esi, 0xf
add esp, 4
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x1b8], ebx
mov byte [esp + 0x1a8], bl
push 9
push str.dkpin.cfg
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x678], 0xa
call fcn.00406100
mov dword [esp + 0x184], esi
mov dword [esp + 0x180], ebx
mov byte [esp + 0x170], 0
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], 0
lea ecx, [esp + 0x1a4]
push ecx
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + 0x174]
mov byte [esp + 0x678], 0xb
call fcn.00413100
add esp, 8
mov byte [esp + 0x670], 0xc
cmp dword [esp + 0xbc], ebx
jne 0x40482f
push 5
push str.LED01
lea ecx, [esp + 0x200]
mov byte [esp + 0x1e], 1
call fcn.00406100
push 0x13
push str.error:dkpin.cfg_cfg
lea ecx, [esp + 0x438]
call fcn.00406100
mov edi, 0x10
cmp dword [esp + 0xd8], edi
jb 0x40460f
mov eax, dword [esp + 0xc4]
push eax
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x1a0], edi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], 0
jb 0x40463e
mov ecx, dword [esp + 0x18c]
push ecx
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x184], edi
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], 0
jb 0x40466d
mov edx, dword [esp + 0x170]
push edx
call fcn.0043c992
add esp, 4
mov byte [esp + 0x670], 9
cmp dword [esp + 0x1bc], edi
mov dword [esp + 0x184], esi
mov dword [esp + 0x180], ebx
mov byte [esp + 0x170], 0
jb 0x4046a4
mov eax, dword [esp + 0x1a8]
push eax
call fcn.0043c992
add esp, 4
mov ebx, 0xf
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x21c]
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], 0
push eax
mov byte [ecx + 4], 0
call fcn.00406a20
call fcn.00430f90
add esp, 0x1c
lea ecx, [esp + 0x36c]
push ecx
lea esi, [esp + 0x118]
call fcn.004134b0
mov edi, 0x10
add esp, 4
cmp dword [esp + 0x130], edi
jb 0x40470e
mov edx, dword [esp + 0x11c]
push edx
call fcn.0043c992
add esp, 4
cmp byte [esp + 0x16], 0
jne 0x405c90
mov eax, dword [esp + 0x40]
test eax, eax
je 0x405c90
mov ecx, dword [esp + 0x44]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x405c90
push 0
push 0
push 0
push 0x4040c0
push 0
push 0
call fcn.0043c645
add esp, 0x18
call fcn.00431580
push str.r...
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4047a4
mov ecx, dword [esp + 0x6c]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x4047a4
lea ecx, [esp + 0x64]
call fcn.00401cf0
lea edx, [esp + 0x64]
push edx
call fcn.004030e0
add esp, 4
mov dword [esp + 0x18], 0
lea esp, [esp]
xor ebx, ebx
mov dword [esp + 0x1c], ebx
jmp 0x4047c0
mov esi, dword [esp + 0x40]
test esi, esi
je 0x405bc7
mov ecx, dword [esp + 0x44]
mov edi, ecx
sub edi, esi
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x405bc7
xor edi, edi
test esi, esi
je 0x40480e
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x404817
call fcn.0043c81d
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
cmp dword [eax + esi + 0x18], 0x10
jb 0x4059e7
mov esi, dword [eax + esi + 4]
jmp 0x4059eb
push str.2...
call fcn.004014f0
xor ebx, ebx
mov esi, 0xf
add esp, 4
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
mov dword [esp + 0x2f0], esi
mov dword [esp + 0x2ec], ebx
mov byte [esp + 0x2dc], bl
mov dword [esp + 0x30c], esi
mov dword [esp + 0x308], ebx
mov byte [esp + 0x2f8], bl
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x1ac]
push ecx
lea ecx, [esp + 0x2c8]
mov byte [esp + 0x67c], 0xd
call fcn.00406a20
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x174]
push edx
lea ecx, [esp + 0x2e4]
call fcn.00406a20
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x190]
push eax
lea ecx, [esp + 0x300]
call fcn.00406a20
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
lea ecx, [esp + 0xdc]
push ecx
lea edx, [esp + 0x2c0]
push edx
lea edi, [esp + 0x11c]
mov byte [esp + 0x678], 0xe
call fcn.00412e20
add esp, 8
mov byte [esp + 0x670], 0xf
mov ecx, dword [eax]
push 0xffffffffffffffff
push ebx
add eax, 4
mov dword [esp + 0xc4], ecx
push eax
lea ecx, [esp + 0xcc]
call fcn.00406a20
mov edi, 0x10
mov byte [esp + 0x670], 0xe
cmp dword [esp + 0x130], edi
jb 0x404955
mov edx, dword [esp + 0x11c]
push edx
call fcn.0043c992
add esp, 4
cmp dword [esp + 0xbc], ebx
jne 0x404a70
push esi
push str.error:dkpin.cfg
lea ecx, [esp + 0x438]
call fcn.00406100
cmp dword [esp + 0xf4], edi
jb 0x40498d
mov eax, dword [esp + 0xe0]
push eax
call fcn.0043c992
add esp, 4
mov edi, 0xf
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], 0
call fcn.00405f90
mov esi, 0x10
cmp dword [esp + 0xd8], esi
jb 0x4049d2
mov ecx, dword [esp + 0xc4]
push ecx
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x1a0], esi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], 0
jb 0x404a01
mov edx, dword [esp + 0x18c]
push edx
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x184], esi
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], 0
jb 0x404a30
mov eax, dword [esp + 0x170]
push eax
call fcn.0043c992
add esp, 4
mov byte [esp + 0x670], 9
cmp dword [esp + 0x1bc], esi
mov dword [esp + 0x184], edi
mov dword [esp + 0x180], ebx
mov byte [esp + 0x170], 0
jb 0x4046d9
mov ecx, dword [esp + 0x1a8]
push ecx
call fcn.0043c992
add esp, 4
jmp 0x4046d9
push str.3...
call fcn.004014f0
add esp, 4
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
lea edx, [esp + 0xdc]
push edx
lea eax, [esp + 0x50]
push eax
mov byte [esp + 0x678], 0x10
call fcn.0040dc20
test al, al
jne 0x404bc4
push 0x13
push str.error:package_parse
lea ecx, [esp + 0x438]
call fcn.00406100
lea ecx, [esp + 0x4c]
push ecx
call fcn.00406c10
cmp dword [esp + 0xf4], edi
jb 0x404ae1
mov edx, dword [esp + 0xe0]
push edx
call fcn.0043c992
add esp, 4
mov edi, 0xf
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], 0
call fcn.00405f90
mov esi, 0x10
cmp dword [esp + 0xd8], esi
jb 0x404b26
mov eax, dword [esp + 0xc4]
push eax
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x1a0], esi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], 0
jb 0x404b55
mov ecx, dword [esp + 0x18c]
push ecx
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x184], esi
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], 0
jb 0x404b84
mov edx, dword [esp + 0x170]
push edx
call fcn.0043c992
add esp, 4
mov byte [esp + 0x670], 9
cmp dword [esp + 0x1bc], esi
mov dword [esp + 0x184], edi
mov dword [esp + 0x180], ebx
mov byte [esp + 0x170], 0
jb 0x4046d9
mov eax, dword [esp + 0x1a8]
push eax
call fcn.0043c992
add esp, 4
jmp 0x4046d9
push 0x104
lea ecx, [esp + 0x559]
push ebx
push ecx
mov byte [esp + 0x560], 0
call fcn.0043eb30
add esp, 0xc
push ebx
push edi
lea edx, [esp + 0x55c]
push edx
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x554]
mov dword [esp + 0x168], esi
mov dword [esp + 0x164], ebx
mov byte [esp + 0x154], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x404c13
sub eax, edx
push eax
lea eax, [esp + 0x558]
push eax
lea ecx, [esp + 0x158]
call fcn.00406100
mov ecx, 0x463d0b
lea eax, [esp + 0x150]
mov byte [esp + 0x670], 0x11
call fcn.00406210
test eax, eax
jne 0x404d4d
push 0xd
push str.error:deskdir
lea ecx, [esp + 0x438]
call fcn.00406100
cmp dword [esp + 0x168], edi
jb 0x404c80
mov ecx, dword [esp + 0x154]
push ecx
call fcn.0043c992
add esp, 4
lea edx, [esp + 0x4c]
push edx
mov dword [esp + 0x16c], esi
mov dword [esp + 0x168], ebx
mov byte [esp + 0x158], 0
call fcn.00406c10
cmp dword [esp + 0xf4], edi
jb 0x404cb9
mov eax, dword [esp + 0xe0]
push eax
call fcn.0043c992
add esp, 4
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], 0xf
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], 0
call fcn.00405f90
mov edi, 0x10
cmp dword [esp + 0xd8], edi
jb 0x404cfd
mov ecx, dword [esp + 0xc4]
push ecx
call fcn.0043c992
add esp, 4
mov dword [esp + 0xd8], 0xf
mov dword [esp + 0xd4], ebx
lea esi, [esp + 0x16c]
mov byte [esp + 0xc4], 0
call fcn.00406010
mov byte [esp + 0x670], 9
cmp dword [esp + 0x1bc], edi
jb 0x4046d9
mov edx, dword [esp + 0x1a8]
push edx
call fcn.0043c992
add esp, 4
jmp 0x4046d9
call fcn.0040b160
push 1
push 0x4640ec
lea ecx, [esp + 0x41c]
mov dword [esp + 0x20], ebx
call fcn.00406100
xor esi, esi
mov dword [esp + 0x1c], esi
nop
mov edi, dword [esp + 0x50]
cmp edi, ebx
je 0x4057b1
mov ecx, dword [esp + 0x54]
sub ecx, edi
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x4057b1
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], 0
mov eax, esi
imul eax, eax, 0x8c
push 0xffffffffffffffff
mov byte [esp + 0x674], 0x12
mov dword [esp + 0x24], eax
add eax, edi
push ebx
push eax
lea ecx, [esp + 0x104]
call fcn.00406a20
mov eax, 0xf
mov dword [esp + 0x29c], eax
mov dword [esp + 0x298], ebx
mov byte [esp + 0x288], 0
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2b4], ebx
mov byte [esp + 0x2a4], 0
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x118]
push ecx
lea ecx, [esp + 0x28c]
mov byte [esp + 0x678], 0x13
call fcn.00413100
add esp, 8
cmp dword [esp + 0x114], ebx
jne 0x404ecf
mov edi, 0x10
cmp dword [esp + 0x130], edi
jb 0x404e60
mov edx, dword [esp + 0x11c]
push edx
call fcn.0043c992
add esp, 4
lea esi, [esp + 0x284]
mov dword [esp + 0x130], 0xf
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], 0
call fcn.00406010
mov byte [esp + 0x670], 0x11
cmp dword [esp + 0x110], edi
jb 0x404ea7
mov eax, dword [esp + 0xfc]
push eax
call fcn.0043c992
add esp, 4
push str.4.1...
call fcn.004014f0
add esp, 4
cmp byte [esp + 0x16], 0
jne 0x4057b1
add dword [esp + 0x1c], 1
mov esi, dword [esp + 0x1c]
xor ebx, ebx
jmp 0x404d70
mov esi, 0xf
mov dword [esp + 0x32c], esi
mov dword [esp + 0x328], ebx
mov byte [esp + 0x318], 0
mov dword [esp + 0x348], esi
mov dword [esp + 0x344], ebx
mov byte [esp + 0x334], 0
mov dword [esp + 0x364], esi
mov dword [esp + 0x360], ebx
mov byte [esp + 0x350], 0
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x320]
mov byte [esp + 0x67c], 0x15
call fcn.00406a20
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x28c]
push edx
lea ecx, [esp + 0x33c]
call fcn.00406a20
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x2a8]
push eax
lea ecx, [esp + 0x358]
call fcn.00406a20
mov dword [esp + 0x14c], esi
mov dword [esp + 0x148], ebx
mov byte [esp + 0x138], 0
lea ecx, [esp + 0x134]
push ecx
lea edx, [esp + 0x318]
push edx
lea edi, [esp + 0x1c8]
mov byte [esp + 0x678], 0x16
call fcn.00412e20
add esp, 8
mov byte [esp + 0x670], 0x17
mov ecx, dword [eax]
push 0xffffffffffffffff
push ebx
add eax, 4
mov dword [esp + 0x11c], ecx
push eax
lea ecx, [esp + 0x124]
call fcn.00406a20
mov esi, 0x10
cmp dword [esp + 0x1dc], esi
jb 0x404fe2
mov edx, dword [esp + 0x1c8]
push edx
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x114], ebx
jne 0x405094
cmp dword [esp + 0x14c], esi
jb 0x405008
mov eax, dword [esp + 0x138]
push eax
call fcn.0043c992
add esp, 4
lea esi, [esp + 0x314]
mov dword [esp + 0x14c], 0xf
mov dword [esp + 0x148], ebx
mov byte [esp + 0x138], 0
call fcn.00405f90
mov edi, 0x10
cmp dword [esp + 0x130], edi
jb 0x40504c
mov ecx, dword [esp + 0x11c]
push ecx
call fcn.0043c992
add esp, 4
lea esi, [esp + 0x284]
mov dword [esp + 0x130], 0xf
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], 0
call fcn.00406010
mov byte [esp + 0x670], 0x11
cmp dword [esp + 0x110], edi
jb 0x404ea7
mov edx, dword [esp + 0xfc]
push edx
jmp 0x404e9f
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov byte [esp + 0x670], 0x18
cmp dword [esp + 0x14c], esi
mov eax, dword [esp + 0x138]
jae 0x4050bf
lea eax, [esp + 0x138]
mov edx, dword [esp + 0x148]
push eax
lea ecx, [esp + 0x30]
call fcn.0040f640
add esp, 4
test al, al
jne 0x405129
lea esi, [esp + 0x2c]
call fcn.00406880
mov edi, 0x10
cmp dword [esp + 0x14c], edi
jb 0x4050fe
mov eax, dword [esp + 0x138]
push eax
call fcn.0043c992
add esp, 4
lea esi, [esp + 0x314]
mov dword [esp + 0x14c], 0xf
mov dword [esp + 0x148], ebx
mov byte [esp + 0x138], 0
call fcn.00405f90
jmp 0x405033
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x17], 1
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
lea ebx, [ebx]
cmp ecx, ebx
je 0x405650
mov esi, dword [esp + 0x34]
sub esi, ecx
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x24], eax
jae 0x40562e
mov edi, dword [esp + 0x24]
cmp edi, eax
jb 0x40517c
call fcn.0043c81d
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
test byte [ebx + ecx + 0x1c], 0x10
je 0x4052d6
test ecx, ecx
je 0x4051ac
mov esi, dword [esp + 0x34]
sub esi, ecx
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4051b5
call fcn.0043c81d
mov ecx, dword [esp + 0x30]
cmp dword [ebx + ecx + 0x18], 8
jb 0x4051c2
mov ecx, dword [ebx + ecx + 4]
jmp 0x4051c6
lea ecx, [ebx + ecx + 4]
push ecx
lea edi, [esp + 0xa4]
call fcn.0041dbb0
add esp, 4
mov ebx, eax
lea eax, [esp + 0x150]
push eax
mov edi, 0x4640f0
lea esi, [esp + 0x234]
mov byte [esp + 0x674], 0x19
call fcn.00408090
add esp, 4
push ebx
push eax
lea edi, [esp + 0x1c8]
mov byte [esp + 0x678], 0x1a
call fcn.00408140
add esp, 8
cmp dword [esp + 0x248], 0x10
jb 0x40522f
mov ecx, dword [esp + 0x234]
push ecx
call fcn.0043c992
add esp, 4
mov edi, 0xf
xor esi, esi
mov dword [esp + 0x248], edi
mov dword [esp + 0x244], esi
mov byte [esp + 0x234], 0
mov ebx, 0x10
mov byte [esp + 0x670], 0x1d
cmp dword [esp + 0xb8], ebx
jb 0x405272
mov edx, dword [esp + 0xa4]
push edx
call fcn.0043c992
add esp, 4
mov dword [esp + 0xb4], esi
lea esi, [esp + 0x1c0]
mov dword [esp + 0xb8], edi
mov byte [esp + 0xa4], 0
call fcn.0040c300
test al, al
jne 0x4052b4
push 5
push str.LED01
lea ecx, [esp + 0x200]
mov byte [esp + 0x1f], al
mov byte [esp + 0x1e], 1
call fcn.00406100
mov byte [esp + 0x670], 0x18
cmp dword [esp + 0x1d8], ebx
jb 0x405612
mov eax, dword [esp + 0x1c4]
push eax
jmp 0x40560a
test ecx, ecx
je 0x4052f7
mov esi, dword [esp + 0x34]
sub esi, ecx
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x405300
call fcn.0043c81d
mov ecx, dword [esp + 0x30]
test byte [ebx + ecx + 0x1c], 0x20
je 0x405616
mov edi, dword [esp + 0x24]
lea esi, [esp + 0x2c]
call fcn.004068f0
cmp dword [eax + 0x18], 8
jb 0x405323
mov eax, dword [eax + 4]
jmp 0x405326
add eax, 4
push eax
lea edi, [esp + 0x1c4]
call fcn.0041dbb0
add esp, 4
mov ebx, eax
lea ecx, [esp + 0x150]
push ecx
mov edi, 0x4640f0
lea esi, [esp + 0x88]
mov byte [esp + 0x674], 0x1e
call fcn.00408090
add esp, 4
push ebx
push eax
lea edi, [esp + 0x238]
mov byte [esp + 0x678], 0x1f
call fcn.00408140
add esp, 8
cmp dword [esp + 0x9c], 0x10
jb 0x40538f
mov edx, dword [esp + 0x88]
push edx
call fcn.0043c992
add esp, 4
mov edi, 0xf
xor esi, esi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], esi
mov byte [esp + 0x88], 0
mov byte [esp + 0x670], 0x22
cmp dword [esp + 0x1d8], 0x10
jb 0x4053ce
mov eax, dword [esp + 0x1c4]
push eax
call fcn.0043c992
add esp, 4
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x238]
push ecx
lea ecx, [esp + 0xac]
mov dword [esp + 0x1e4], edi
mov dword [esp + 0x1e0], esi
mov byte [esp + 0x1d0], 0
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc0], esi
mov byte [esp + 0xb0], 0
call fcn.00406a20
mov edi, dword [esp + 0x24]
lea esi, [esp + 0x2c]
mov byte [esp + 0x670], 0x23
call fcn.004068f0
add eax, 0x20
push eax
lea esi, [esp + 0x234]
call fcn.0040c360
add esp, 4
test al, al
jne 0x405463
push 7
push str.LED01_1
lea ecx, [esp + 0x200]
mov byte [esp + 0x1f], al
mov byte [esp + 0x1e], 1
call fcn.00406100
xor edi, edi
lea ebx, [edi + 0x10]
jmp 0x4055be
lea edx, [esp + 0x230]
push edx
lea esi, [esp + 0x40]
call fcn.00406310
lea esi, [esp + 0x2c]
call fcn.004068f0
mov ebx, dword [eax + 0x34]
add eax, 0x20
call fcn.004068f0
add eax, 0x20
cmp dword [eax + 0x18], 0x10
jb 0x405496
mov eax, dword [eax + 4]
jmp 0x405499
add eax, 4
push eax
mov ecx, ebx
lea esi, [esp + 0x1c4]
call fcn.0040f4b0
add esp, 4
push eax
lea esi, [esp + 0x78]
mov byte [esp + 0x674], 0x24
call fcn.00406310
mov ebx, 0x10
cmp dword [esp + 0x1d8], ebx
jb 0x4054db
mov eax, dword [esp + 0x1c4]
push eax
call fcn.0043c992
add esp, 4
cmp dword [esp + 0xb8], ebx
mov eax, dword [esp + 0xa4]
jae 0x4054f2
lea eax, [esp + 0xa4]
push 0x5c
push eax
call fcn.0043c8a0
add esp, 8
cmp dword [esp + 0xb8], ebx
mov esi, eax
mov eax, dword [esp + 0xa4]
jae 0x405516
lea eax, [esp + 0xa4]
push 0x2e
push eax
call fcn.0043c8a0
xor edi, edi
add esp, 8
cmp esi, edi
je 0x4055be
cmp eax, edi
je 0x4055be
cmp eax, esi
jbe 0x4055be
mov ecx, 0xf
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x1d4], edi
mov byte [esp + 0x1c4], 0
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f0], edi
mov byte [esp + 0x1e0], 0
sub eax, esi
sub eax, 1
push eax
add esi, 1
push esi
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x678], 0x25
call fcn.00406100
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x238]
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00406a20
lea edx, [esp + 0x1c0]
push edx
lea esi, [esp + 0x68]
call fcn.004066e0
lea esi, [esp + 0x1c0]
call fcn.00406010
cmp dword [esp + 0xb8], ebx
jb 0x4055d7
mov eax, dword [esp + 0xa4]
push eax
call fcn.0043c992
add esp, 4
mov byte [esp + 0x670], 0x18
cmp dword [esp + 0x248], ebx
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], edi
mov byte [esp + 0xa4], 0
jb 0x405612
mov ecx, dword [esp + 0x234]
push ecx
call fcn.0043c992
add esp, 4
mov ecx, dword [esp + 0x30]
cmp byte [esp + 0x17], 0
je 0x40562e
add dword [esp + 0x24], 1
add dword [esp + 0x28], 0x3c
xor ebx, ebx
jmp 0x405140
test ecx, ecx
je 0x405650
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
push edx
push eax
mov eax, ecx
call fcn.004089e0
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0043c992
add esp, 0xc
xor ebx, ebx
cmp dword [esp + 0x14c], 0x10
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
jb 0x405678
mov edx, dword [esp + 0x138]
push edx
call fcn.0043c992
add esp, 4
mov edi, 0xf
lea esi, [esp + 0x314]
mov dword [esp + 0x14c], edi
mov dword [esp + 0x148], ebx
mov byte [esp + 0x138], 0
call fcn.00405f90
cmp dword [esp + 0x130], 0x10
jb 0x4056b9
mov eax, dword [esp + 0x11c]
push eax
call fcn.0043c992
add esp, 4
lea esi, [esp + 0x284]
mov dword [esp + 0x130], edi
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], 0
call fcn.00406010
mov byte [esp + 0x670], 0x11
cmp dword [esp + 0x110], 0x10
jb 0x4056fd
mov ecx, dword [esp + 0xfc]
push ecx
call fcn.0043c992
add esp, 4
cmp byte [esp + 0x17], 0
je 0x404ea7
push str.4.0...
call fcn.004014f0
mov esi, dword [esp + 0x54]
add esp, 4
cmp esi, ebx
je 0x40573c
mov ecx, dword [esp + 0x54]
sub ecx, esi
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x405745
call fcn.0043c81d
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
lea eax, [esi + edx + 0x38]
push eax
mov ecx, 0x464104
lea edi, [esp + 0x1c4]
call fcn.004081f0
add esp, 4
push 0xffffffffffffffff
push ebx
push eax
lea esi, [esp + 0x43c]
mov byte [esp + 0x67c], 0x26
call fcn.00406f60
mov byte [esp + 0x670], 0x11
cmp dword [esp + 0x1d8], 0x10
jb 0x40579c
mov ecx, dword [esp + 0x1c4]
push ecx
call fcn.0043c992
add esp, 4
add dword [esp + 0x1c], 1
add dword [esp + 0x18], 1
mov esi, dword [esp + 0x1c]
xor ebx, ebx
jmp 0x404d70
lea edx, [esp + 0x3c]
push edx
call fcn.0040a710
add esp, 4
cmp byte [esp + 0x16], 0
je 0x405912
push 1
push 0x464060
lea ecx, [esp + 0x41c]
call fcn.00406100
lea eax, [esp + 0x1f8]
push eax
mov ecx, str.fatalerror:
lea edi, [esp + 0x1c4]
call fcn.004081f0
add esp, 4
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [esp + 0x43c]
mov byte [esp + 0x67c], 0x27
call fcn.00406a20
mov edi, 0x10
cmp dword [esp + 0x1d8], edi
jb 0x405830
mov ecx, dword [esp + 0x1c4]
push ecx
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x168], edi
jb 0x405849
mov edx, dword [esp + 0x154]
push edx
call fcn.0043c992
add esp, 4
lea eax, [esp + 0x4c]
mov ebx, 0xf
push eax
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x168], esi
mov byte [esp + 0x158], 0
call fcn.00406c10
cmp dword [esp + 0xf4], edi
jb 0x405887
mov ecx, dword [esp + 0xe0]
push ecx
call fcn.0043c992
add esp, 4
mov dword [esp + 0xf0], esi
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], ebx
mov byte [esp + 0xe0], 0
call fcn.00405f90
cmp dword [esp + 0xd8], edi
jb 0x4058c2
mov edx, dword [esp + 0xc4]
push edx
call fcn.0043c992
add esp, 4
lea esi, [esp + 0x16c]
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xd4], 0
mov byte [esp + 0xc4], 0
call fcn.00406010
mov byte [esp + 0x670], 9
cmp dword [esp + 0x1bc], edi
jb 0x4046a9
mov eax, dword [esp + 0x1a8]
push eax
call fcn.0043c992
add esp, 4
jmp 0x4046a9
xor esi, esi
cmp dword [esp + 0x18], esi
jle 0x40592c
push esi
push esi
push 0x1000
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
push str.5...
call fcn.004014f0
mov edi, 0x10
add esp, 4
cmp dword [esp + 0x168], edi
jb 0x405957
mov ecx, dword [esp + 0x154]
push ecx
call fcn.0043c992
add esp, 4
lea edx, [esp + 0x4c]
mov ebx, 0xf
push edx
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x168], esi
mov byte [esp + 0x158], 0
call fcn.00406c10
cmp dword [esp + 0xf4], edi
jb 0x405995
mov eax, dword [esp + 0xe0]
push eax
call fcn.0043c992
add esp, 4
mov dword [esp + 0xf0], esi
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], ebx
mov byte [esp + 0xe0], 0
call fcn.00405f90
cmp dword [esp + 0xd8], edi
jb 0x4059d0
mov ecx, dword [esp + 0xc4]
push ecx
call fcn.0043c992
add esp, 4
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xd4], 0
jmp 0x404d0f
lea esi, [eax + esi + 4]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4059fb
test al, 2
je 0x405a1f
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
add edi, 1
cmp edi, 0xa
jge 0x405bd7
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
jmp 0x4047f1
mov eax, dword [esp + 0x18]
cmp eax, 1
je 0x405a31
cmp eax, 0xa
jne 0x405bb5
xor edi, edi
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], edi
mov byte [esp + 0xa4], 0
mov byte [esp + 0x670], 0x28
jmp 0x405a60
mov esi, dword [esp + 0x40]
test esi, esi
lea eax, [esp + 0xa0]
push eax
je 0x405a8d
mov ecx, dword [esp + 0x48]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x405a96
call fcn.0043c81d
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
cmp dword [eax + esi + 0x18], 0x10
jb 0x405aa7
mov esi, dword [eax + esi + 4]
jmp 0x405aab
lea esi, [eax + esi + 4]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push esi
call fcn.00406060
call fcn.0040fa00
add esp, 0x20
cmp dword [esp + 0xb4], 0
ja 0x405adf
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
add edi, 1
cmp edi, 0xa
jl 0x405a60
cmp dword [esp + 0xb8], 0x10
mov eax, dword [esp + 0xa4]
jae 0x405af7
lea eax, [esp + 0xa4]
mov ecx, dword [esp + 0xb4]
push eax
lea esi, [esp + 0xfc]
call fcn.0040f4b0
add esp, 4
mov edi, ebx
lea esi, [esp + 0x74]
mov byte [esp + 0x670], 0x29
call fcn.004062d0
cmp dword [eax + 0x18], 0x10
jb 0x405b2c
mov eax, dword [eax + 4]
jmp 0x405b2f
add eax, 4
mov ecx, dword [esp + 0xfc]
mov esi, 0x10
cmp dword [esp + 0x110], esi
jae 0x405b4b
lea ecx, [esp + 0xfc]
push eax
push ecx
call fcn.00453d3e
add esp, 8
test eax, eax
jne 0x405bec
cmp dword [esp + 0x110], esi
jb 0x405b76
mov ecx, dword [esp + 0xfc]
push ecx
call fcn.0043c992
add esp, 4
mov byte [esp + 0x670], 9
cmp dword [esp + 0xb8], esi
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], 0
mov byte [esp + 0xfc], 0
jb 0x405bb5
mov edx, dword [esp + 0xa4]
push edx
call fcn.0043c992
add esp, 4
add dword [esp + 0x18], 1
add ebx, 1
add dword [esp + 0x1c], 0x1c
jmp 0x4047c0
push 0xea60
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4047b0
push 5
push str.LED01
lea ecx, [esp + 0x200]
call fcn.00406100
jmp 0x405c57
push 5
push str.LED02
lea ecx, [esp + 0x200]
call fcn.00406100
cmp dword [esp + 0x110], esi
jb 0x405c18
mov eax, dword [esp + 0xfc]
push eax
call fcn.0043c992
add esp, 4
mov byte [esp + 0x670], 9
cmp dword [esp + 0xb8], esi
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], 0
mov byte [esp + 0xfc], 0
jb 0x405c57
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.0043c992
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0xffffffffffffffff
push 0
lea edx, [esp + 0x21c]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push edx
mov byte [ecx + 4], 0
call fcn.00406a20
call fcn.00430f90
add esp, 0x1c
mov edi, 0x10
push str.end...
call fcn.004014f0
mov eax, dword [esp + 0x60]
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x405cae
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, dword [esp + 0x60]
cmp esi, ebx
je 0x405cc6
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea esi, [esp + 0x64]
call fcn.004024c0
lea esi, [esp + 0x74]
call fcn.00406d20
lea esi, [esp + 0x3c]
call fcn.00406d20
cmp dword [esp + 0x210], edi
jb 0x405cfa
mov eax, dword [esp + 0x1fc]
push eax
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x280], edi
mov esi, 0xf
mov dword [esp + 0x210], esi
mov dword [esp + 0x20c], ebx
mov byte [esp + 0x1fc], 0
jb 0x405d2e
mov ecx, dword [esp + 0x26c]
push ecx
call fcn.0043c992
add esp, 4
cmp dword [esp + 0x264], edi
mov dword [esp + 0x280], esi
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], 0
jb 0x405d5d
mov edx, dword [esp + 0x250]
push edx
call fcn.0043c992
add esp, 4
mov dword [esp + 0x264], esi
lea esi, [esp + 0x36c]
mov dword [esp + 0x260], ebx
mov byte [esp + 0x250], 0
call fcn.00405e40
cmp dword [esp + 0x22c], edi
jb 0x405d98
mov eax, dword [esp + 0x218]
push eax
call fcn.0043c992
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x668]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x650]
xor ecx, esp
call fcn.0043c23a
mov esp, ebp
pop ebp
ret