Function at 0x405020
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 0x466022
mov eax, dword fs:[0]
push eax
sub esp, 0x658
mov eax, dword [0x47f344]
xor eax, esp
mov dword [esp + 0x650], eax
push ebx
push esi
push edi
mov eax, dword [0x47f344]
xor eax, esp
push eax
lea eax, [esp + 0x668]
mov dword fs:[0], eax
push 0x403830
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
push 0x29
xor ebx, ebx
mov edi, 0xf
push str.d1318ca0_db4a_4847_9bfa_4643086c163e_aa
lea ecx, [esp + 0x21c]
mov dword [esp + 0x234], edi
mov dword [esp + 0x230], ebx
mov byte [esp + 0x220], bl
call fcn.00406e20
mov dword [esp + 0x670], ebx
mov eax, dword [esp + 0x218]
mov esi, 0x10
cmp dword [esp + 0x22c], esi
jae 0x4050bd
lea eax, [esp + 0x218]
push eax
push 1
push 1
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
cmp eax, ebx
mov dword [0x485154], eax
je 0x4050f2
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x22c], esi
jb 0x406aec
mov eax, dword [esp + 0x218]
push eax
jmp 0x406ae4
cmp dword [esp + 0x22c], esi
mov eax, dword [esp + 0x218]
jae 0x405109
lea eax, [esp + 0x218]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x485154], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40514c
mov ecx, dword [0x485154]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x22c], esi
jb 0x406aec
mov edx, dword [esp + 0x218]
push edx
jmp 0x406ae4
push ebx
push ebx
push 3
push ebx
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 + 0x24], esi
je 0x4053f1
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push ebx
mov dword [esp + 0x20], eax
lea eax, [esp + 0x24]
push eax
push ebx
push ebx
push 4
lea ecx, [esp + 0x30]
push ecx
push 0x222004
push esi
mov dword [esp + 0x40], ebx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push 0x46a2cc
call fcn.00401b30
add esp, 4
cmp esi, ebx
je 0x4051bb
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0x4038e0
push ebx
push ebx
call fcn.0043e645
add esp, 0x18
lea eax, [esp + 0x36c]
call fcn.00406b20
mov dword [esp + 0x264], edi
mov dword [esp + 0x260], ebx
mov byte [esp + 0x250], bl
mov dword [esp + 0x280], edi
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], bl
lea edx, [esp + 0x24c]
push edx
lea ecx, [esp + 0x26c]
mov byte [esp + 0x674], 4
call fcn.00412b10
add esp, 4
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x254]
push eax
lea ecx, [esp + 0x378]
call fcn.00407c00
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x270]
push ecx
lea ecx, [esp + 0x394]
call fcn.00407c00
push 1
push 0x46a2d4
lea ecx, [esp + 0x3ac]
call fcn.00406e20
push ebx
push 0x469f6d
lea ecx, [esp + 0x3c8]
call fcn.00406e20
lea esi, [esp + 0x1c0]
call fcn.00412a40
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x404]
mov byte [esp + 0x67c], 5
call fcn.00407c00
mov byte [esp + 0x670], 4
cmp dword [esp + 0x1d8], 0x10
jb 0x4052c1
mov edx, dword [esp + 0x1c4]
push edx
call fcn.0043e445
add esp, 4
push 1
push 0x46a2d4
lea ecx, [esp + 0x41c]
call fcn.00406e20
lea esi, [esp + 0x5c]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
call fcn.00433400
push str.start...
call fcn.00401b30
add esp, 4
mov byte [esp + 0x12], bl
mov dword [esp + 0x210], edi
mov dword [esp + 0x20c], ebx
mov byte [esp + 0x1fc], bl
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
push ebx
push ebx
push ebx
push 0x403cd0
push ebx
push ebx
mov byte [esp + 0x688], 9
call fcn.0043e645
add esp, 0x18
cmp eax, ebx
je 0x4065ea
push 0x104
lea eax, [esp + 0x559]
push ebx
push eax
mov byte [esp + 0x560], bl
call fcn.00442eb0
add esp, 0xc
push 0x104
lea ecx, [esp + 0x558]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x554]
push 0x5c
push edx
call fcn.0043ec00
mov byte [eax], bl
lea eax, [esp + 0x55c]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x4053a3
sub eax, edx
push eax
lea eax, [esp + 0x558]
push eax
mov ecx, 0x480aa8
call fcn.00406e20
xor esi, esi
call fcn.0040cc10
test al, al
jne 0x405403
push str.0...
call fcn.00401b30
add esp, 4
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
add esi, 1
cmp esi, 0x3c
jl 0x4053c3
jmp 0x4065ea
push 0x46a2d0
call fcn.00401b30
add esp, 4
jmp 0x4051b4
push str.1...
call fcn.00401b30
add esp, 4
mov dword [esp + 0x1bc], edi
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.00406e20
mov dword [esp + 0x184], edi
mov dword [esp + 0x180], ebx
mov byte [esp + 0x170], bl
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], bl
lea ecx, [esp + 0x1a4]
push ecx
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + 0x174]
mov byte [esp + 0x678], 0xb
call fcn.00417260
add esp, 8
mov byte [esp + 0x670], 0xc
cmp dword [esp + 0xbc], ebx
jne 0x405574
push 5
push str.LED01
lea ecx, [esp + 0x200]
mov byte [esp + 0x1a], 1
call fcn.00406e20
push 0x13
push str.error:dkpin.cfg_cfg
lea ecx, [esp + 0x438]
call fcn.00406e20
mov esi, 0x10
cmp dword [esp + 0xd8], esi
jb 0x4054ef
mov eax, dword [esp + 0xc4]
push eax
call fcn.0043e445
add esp, 4
cmp dword [esp + 0x1a0], esi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
jb 0x40551d
mov ecx, dword [esp + 0x18c]
push ecx
call fcn.0043e445
add esp, 4
cmp dword [esp + 0x184], esi
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], bl
jb 0x40554b
mov edx, dword [esp + 0x170]
push edx
call fcn.0043e445
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], bl
jmp 0x4065a5
push str.2...
call fcn.00401b30
add esp, 4
mov dword [esp + 0x2d4], edi
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
mov dword [esp + 0x2f0], edi
mov dword [esp + 0x2ec], ebx
mov byte [esp + 0x2dc], bl
mov dword [esp + 0x30c], edi
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.00407c00
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x174]
push edx
lea ecx, [esp + 0x2e4]
call fcn.00407c00
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x190]
push eax
lea ecx, [esp + 0x300]
call fcn.00407c00
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
lea ecx, [esp + 0x2bc]
push ecx
lea ecx, [esp + 0xe0]
lea esi, [esp + 0x118]
mov byte [esp + 0x674], 0xe
call fcn.00416f80
add esp, 4
mov byte [esp + 0x670], 0xf
mov edx, dword [eax]
push 0xffffffffffffffff
push ebx
add eax, 4
push eax
lea ecx, [esp + 0xcc]
mov dword [esp + 0xc8], edx
call fcn.00407c00
mov byte [esp + 0x670], 0xe
cmp dword [esp + 0x130], 0x10
jb 0x40568e
mov eax, dword [esp + 0x11c]
push eax
call fcn.0043e445
add esp, 4
cmp dword [esp + 0xbc], ebx
jne 0x4057a2
push edi
push str.error:dkpin.cfg
lea ecx, [esp + 0x438]
call fcn.00406e20
cmp dword [esp + 0xf4], 0x10
jb 0x4056c7
mov ecx, dword [esp + 0xe0]
push ecx
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
call fcn.00406d10
cmp dword [esp + 0xd8], 0x10
jb 0x405702
mov edx, dword [esp + 0xc4]
push edx
call fcn.0043e445
add esp, 4
mov esi, 0x10
cmp dword [esp + 0x1a0], esi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
jb 0x405735
mov eax, dword [esp + 0x18c]
push eax
call fcn.0043e445
add esp, 4
cmp dword [esp + 0x184], esi
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], bl
jb 0x405763
mov ecx, dword [esp + 0x170]
push ecx
call fcn.0043e445
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], bl
jb 0x4065ea
mov edx, dword [esp + 0x1a8]
push edx
call fcn.0043e445
add esp, 4
jmp 0x4065ea
push str.3...
call fcn.00401b30
add esp, 4
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x678], 0x10
call fcn.00410f60
test al, al
jne 0x4058ef
push 0x13
push str.error:package_parse
lea ecx, [esp + 0x438]
call fcn.00406e20
lea edx, [esp + 0x4c]
push edx
call fcn.00407e80
cmp dword [esp + 0xf4], 0x10
jb 0x405814
mov eax, dword [esp + 0xe0]
push eax
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
call fcn.00406d10
cmp dword [esp + 0xd8], 0x10
jb 0x40584f
mov ecx, dword [esp + 0xc4]
push ecx
call fcn.0043e445
add esp, 4
mov esi, 0x10
cmp dword [esp + 0x1a0], esi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
jb 0x405882
mov edx, dword [esp + 0x18c]
push edx
call fcn.0043e445
add esp, 4
cmp dword [esp + 0x184], esi
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], bl
jb 0x4058b0
mov eax, dword [esp + 0x170]
push eax
call fcn.0043e445
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], bl
jb 0x4065ea
mov ecx, dword [esp + 0x1a8]
push ecx
call fcn.0043e445
add esp, 4
jmp 0x4065ea
mov dword [esp + 0x14c], edi
mov dword [esp + 0x148], ebx
mov byte [esp + 0x138], bl
push 0x104
lea edx, [esp + 0x451]
push ebx
mov byte [esp + 0x678], 0x11
push edx
mov byte [esp + 0x458], bl
call fcn.00442eb0
mov esi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
add esp, 0xc
push ebx
push 0x19
lea eax, [esp + 0x454]
push eax
push ebx
call esi
lea eax, [esp + 0x44c]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x405947
sub eax, edx
push eax
lea ecx, [esp + 0x450]
push ecx
lea ecx, [esp + 0x13c]
call fcn.00406e20
mov ecx, 0x469f6d
lea eax, [esp + 0x134]
call fcn.00406f30
test eax, eax
jne 0x4059b4
push ebx
push 0x10
lea edx, [esp + 0x454]
push edx
push ebx
call esi
lea eax, [esp + 0x44c]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x405994
sub eax, edx
push eax
lea eax, [esp + 0x450]
push eax
lea ecx, [esp + 0x13c]
call fcn.00406e20
mov ecx, 0x469f6d
lea eax, [esp + 0x134]
call fcn.00406f30
test eax, eax
jne 0x405aa7
push 0xd
push str.error:deskdir
lea ecx, [esp + 0x438]
call fcn.00406e20
mov esi, 0x10
cmp dword [esp + 0x14c], esi
jb 0x4059fe
mov ecx, dword [esp + 0x138]
push ecx
call fcn.0043e445
add esp, 4
lea edx, [esp + 0x4c]
push edx
mov dword [esp + 0x150], edi
mov dword [esp + 0x14c], ebx
mov byte [esp + 0x13c], bl
call fcn.00407e80
cmp dword [esp + 0xf4], esi
jb 0x405a36
mov eax, dword [esp + 0xe0]
push eax
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
call fcn.00406d10
cmp dword [esp + 0xd8], 0x10
jb 0x405a71
mov ecx, dword [esp + 0xc4]
push ecx
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x16c]
mov dword [esp + 0xd8], edi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
call fcn.00406cc0
mov byte [esp + 0x670], 9
cmp dword [esp + 0x1bc], 0x10
jmp 0x405787
call fcn.0040e550
push 1
push 0x46a360
lea ecx, [esp + 0x41c]
mov dword [esp + 0x28], ebx
call fcn.00406e20
xor esi, esi
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov eax, dword [esp + 0x50]
cmp eax, ebx
je 0x40645d
mov ecx, dword [esp + 0x54]
sub ecx, eax
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x40645d
mov dword [esp + 0x110], edi
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], bl
mov eax, esi
imul eax, eax, 0x8c
mov byte [esp + 0x670], 0x12
mov ecx, dword [esp + 0x50]
push 0xffffffffffffffff
mov dword [esp + 0x28], eax
add eax, ecx
push ebx
push eax
lea ecx, [esp + 0x104]
call fcn.00407c00
mov dword [esp + 0x29c], edi
mov dword [esp + 0x298], ebx
mov byte [esp + 0x288], bl
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2b4], ebx
mov byte [esp + 0x2a4], bl
lea edx, [esp + 0xf8]
push edx
lea eax, [esp + 0x118]
push eax
lea ecx, [esp + 0x28c]
mov byte [esp + 0x678], 0x13
call fcn.00417260
add esp, 8
cmp dword [esp + 0x114], ebx
jne 0x405c21
cmp dword [esp + 0x130], 0x10
jb 0x405bb4
mov ecx, dword [esp + 0x11c]
push ecx
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x284]
mov dword [esp + 0x130], edi
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], bl
call fcn.00406cc0
mov byte [esp + 0x670], 0x11
cmp dword [esp + 0x110], 0x10
jb 0x405bf7
mov edx, dword [esp + 0xfc]
push edx
call fcn.0043e445
add esp, 4
push str.4.1...
call fcn.00401b30
add esp, 4
cmp byte [esp + 0x12], bl
jne 0x406458
add dword [esp + 0x1c], 1
mov esi, dword [esp + 0x1c]
mov edi, 0xf
jmp 0x405ad0
mov dword [esp + 0x32c], edi
mov dword [esp + 0x328], ebx
mov byte [esp + 0x318], bl
mov dword [esp + 0x348], edi
mov dword [esp + 0x344], ebx
mov byte [esp + 0x334], bl
mov dword [esp + 0x364], edi
mov dword [esp + 0x360], ebx
mov byte [esp + 0x350], bl
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0x320]
mov byte [esp + 0x67c], 0x15
call fcn.00407c00
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x28c]
push ecx
lea ecx, [esp + 0x33c]
call fcn.00407c00
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x2a8]
push edx
lea ecx, [esp + 0x358]
call fcn.00407c00
mov dword [esp + 0x168], edi
mov dword [esp + 0x164], ebx
mov byte [esp + 0x154], bl
lea eax, [esp + 0x314]
push eax
lea ecx, [esp + 0x154]
lea esi, [esp + 0x1c4]
mov byte [esp + 0x674], 0x16
call fcn.00416f80
add esp, 4
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.00407c00
cmp dword [esp + 0x1dc], 0x10
jb 0x405d26
mov edx, dword [esp + 0x1c8]
push edx
call fcn.0043e445
add esp, 4
cmp dword [esp + 0x114], ebx
jne 0x405d6f
cmp dword [esp + 0x168], 0x10
jb 0x405d49
mov eax, dword [esp + 0x154]
push eax
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x314]
mov dword [esp + 0x168], edi
mov dword [esp + 0x164], ebx
mov byte [esp + 0x154], bl
call fcn.00406d10
jmp 0x405b9a
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov byte [esp + 0x670], 0x18
cmp dword [esp + 0x168], 0x10
mov eax, dword [esp + 0x154]
jae 0x405d9b
lea eax, [esp + 0x154]
mov edx, dword [esp + 0x164]
push eax
lea ecx, [esp + 0x30]
call fcn.00412500
add esp, 4
test al, al
jne 0x405dc1
lea esi, [esp + 0x2c]
call fcn.00407a50
jmp 0x405d2f
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x13], 1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
cmp ecx, ebx
je 0x4062f4
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 + 0x14], eax
jae 0x4062d2
mov edi, dword [esp + 0x14]
cmp edi, eax
jb 0x405e0e
call fcn.0043e81d
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
test byte [eax + ecx + 0x1c], 0x10
je 0x405f6e
cmp ecx, ebx
je 0x405e3e
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 0x405e47
call fcn.0043e81d
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
cmp dword [eax + ecx + 0x18], 8
jb 0x405e58
mov ecx, dword [eax + ecx + 4]
jmp 0x405e5c
lea ecx, [eax + ecx + 4]
push ecx
lea edi, [esp + 0xa4]
call fcn.00421c90
add esp, 4
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x134]
push ecx
mov edi, 0x46a294
lea esi, [esp + 0x234]
mov byte [esp + 0x674], 0x19
call fcn.0040ae50
add esp, 4
mov edx, dword [esp + 0x28]
push edx
push eax
lea edi, [esp + 0x1c8]
mov byte [esp + 0x678], 0x1a
call fcn.0040b140
add esp, 8
cmp dword [esp + 0x248], 0x10
jb 0x405ecb
mov eax, dword [esp + 0x234]
push eax
call fcn.0043e445
add esp, 4
mov esi, 0xf
mov dword [esp + 0x248], esi
mov dword [esp + 0x244], ebx
mov byte [esp + 0x234], bl
mov edi, 0x10
mov byte [esp + 0x670], 0x1d
cmp dword [esp + 0xb8], edi
jb 0x405f0b
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.0043e445
add esp, 4
mov dword [esp + 0xb8], esi
lea esi, [esp + 0x1c0]
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], bl
call fcn.0040f6f0
test al, al
jne 0x405f4c
push 5
push str.LED01
lea ecx, [esp + 0x200]
mov byte [esp + 0x1b], bl
mov byte [esp + 0x1a], 1
call fcn.00406e20
mov byte [esp + 0x670], 0x18
cmp dword [esp + 0x1d8], edi
jb 0x4062b9
mov edx, dword [esp + 0x1c4]
push edx
jmp 0x4062b1
cmp ecx, ebx
je 0x405f8f
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 0x405f98
call fcn.0043e81d
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
test byte [eax + ecx + 0x1c], 0x20
je 0x4062bd
mov edi, dword [esp + 0x14]
lea esi, [esp + 0x2c]
call fcn.00407ac0
cmp dword [eax + 0x18], 8
jb 0x405fbf
mov eax, dword [eax + 4]
jmp 0x405fc2
add eax, 4
push eax
lea edi, [esp + 0x1c4]
call fcn.00421c90
add esp, 4
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x134]
push ecx
mov edi, 0x46a294
lea esi, [esp + 0x88]
mov byte [esp + 0x674], 0x1e
call fcn.0040ae50
add esp, 4
mov edx, dword [esp + 0x28]
push edx
push eax
lea edi, [esp + 0x238]
mov byte [esp + 0x678], 0x1f
call fcn.0040b140
add esp, 8
cmp dword [esp + 0x9c], 0x10
jb 0x406031
mov eax, dword [esp + 0x88]
push eax
call fcn.0043e445
add esp, 4
mov dword [esp + 0x9c], 0xf
mov dword [esp + 0x98], ebx
mov byte [esp + 0x88], bl
mov byte [esp + 0x670], 0x22
cmp dword [esp + 0x1d8], 0x10
jb 0x40606c
mov ecx, dword [esp + 0x1c4]
push ecx
call fcn.0043e445
add esp, 4
push 0xffffffffffffffff
mov eax, 0xf
push ebx
lea edx, [esp + 0x238]
push edx
lea ecx, [esp + 0xac]
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e0], ebx
mov byte [esp + 0x1d0], bl
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
call fcn.00407c00
mov edi, dword [esp + 0x14]
lea esi, [esp + 0x2c]
mov byte [esp + 0x670], 0x23
call fcn.00407ac0
add eax, 0x20
push eax
lea esi, [esp + 0x234]
call fcn.0040f750
add esp, 4
test al, al
jne 0x406104
push 7
push str.LED01_1
lea ecx, [esp + 0x200]
mov byte [esp + 0x1b], bl
mov byte [esp + 0x1a], 1
call fcn.00406e20
mov edi, 0x10
jmp 0x406266
lea eax, [esp + 0x230]
push eax
lea esi, [esp + 0x40]
call fcn.004074e0
mov edi, dword [esp + 0x14]
lea esi, [esp + 0x2c]
call fcn.00407ac0
mov ecx, dword [eax + 0x34]
add eax, 0x20
mov dword [esp + 0x28], ecx
call fcn.00407ac0
add eax, 0x20
cmp dword [eax + 0x18], 0x10
jb 0x40613f
mov eax, dword [eax + 4]
jmp 0x406142
add eax, 4
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x1c4]
push edx
call fcn.00412360
add esp, 8
push eax
lea esi, [esp + 0x78]
mov byte [esp + 0x674], 0x24
call fcn.004074e0
mov edi, 0x10
cmp dword [esp + 0x1d8], edi
jb 0x406187
mov eax, dword [esp + 0x1c4]
push eax
call fcn.0043e445
add esp, 4
cmp dword [esp + 0xb8], edi
mov eax, dword [esp + 0xa4]
jae 0x40619e
lea eax, [esp + 0xa4]
push 0x5c
push eax
call fcn.0043ec00
add esp, 8
cmp dword [esp + 0xb8], edi
mov esi, eax
mov eax, dword [esp + 0xa4]
jae 0x4061c2
lea eax, [esp + 0xa4]
push 0x2e
push eax
call fcn.0043ec00
add esp, 8
cmp esi, ebx
je 0x406266
cmp eax, ebx
je 0x406266
cmp eax, esi
jbe 0x406266
mov ecx, 0xf
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x1d4], ebx
mov byte [esp + 0x1c4], bl
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f0], ebx
mov byte [esp + 0x1e0], bl
sub eax, esi
sub eax, 1
push eax
add esi, 1
push esi
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x678], 0x25
call fcn.00406e20
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x238]
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00407c00
lea edx, [esp + 0x1c0]
push edx
lea esi, [esp + 0x68]
call fcn.004078b0
lea esi, [esp + 0x1c0]
call fcn.00406cc0
cmp dword [esp + 0xb8], edi
jb 0x40627f
mov eax, dword [esp + 0xa4]
push eax
call fcn.0043e445
add esp, 4
mov byte [esp + 0x670], 0x18
cmp dword [esp + 0x248], edi
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], bl
jb 0x4062b9
mov ecx, dword [esp + 0x234]
push ecx
call fcn.0043e445
add esp, 4
mov ecx, dword [esp + 0x30]
cmp byte [esp + 0x13], bl
je 0x4062d2
add dword [esp + 0x14], 1
add dword [esp + 0x18], 0x3c
jmp 0x405dd2
cmp ecx, ebx
je 0x4062f4
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
push edx
push eax
mov eax, ecx
call fcn.0040be90
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0043e445
add esp, 0xc
mov edi, 0x10
cmp dword [esp + 0x168], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
jb 0x40631e
mov edx, dword [esp + 0x154]
push edx
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x314]
mov dword [esp + 0x168], 0xf
mov dword [esp + 0x164], ebx
mov byte [esp + 0x154], bl
call fcn.00406d10
cmp dword [esp + 0x130], edi
jb 0x40635c
mov eax, dword [esp + 0x11c]
push eax
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x284]
mov dword [esp + 0x130], 0xf
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], bl
call fcn.00406cc0
mov byte [esp + 0x670], 0x11
cmp dword [esp + 0x110], edi
jb 0x4063a2
mov ecx, dword [esp + 0xfc]
push ecx
call fcn.0043e445
add esp, 4
cmp byte [esp + 0x13], bl
je 0x405bf7
push str.4.0...
call fcn.00401b30
mov esi, dword [esp + 0x54]
add esp, 4
cmp esi, ebx
je 0x4063e0
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 0x4063e9
call fcn.0043e81d
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
lea eax, [esi + edx + 0x38]
push eax
mov ecx, 0x46a374
lea edi, [esp + 0x1c4]
call fcn.0040b1f0
add esp, 4
push 0xffffffffffffffff
push ebx
push eax
lea esi, [esp + 0x43c]
mov byte [esp + 0x67c], 0x26
call fcn.00408c30
mov byte [esp + 0x670], 0x11
cmp dword [esp + 0x1d8], 0x10
jb 0x406440
mov ecx, dword [esp + 0x1c4]
push ecx
call fcn.0043e445
add esp, 4
add dword [esp + 0x20], 1
add dword [esp + 0x1c], 1
mov esi, dword [esp + 0x1c]
mov edi, 0xf
jmp 0x405ad0
mov edi, 0xf
lea edx, [esp + 0x3c]
push edx
call fcn.0040db00
add esp, 4
cmp byte [esp + 0x12], bl
je 0x406735
push 1
push 0x46a2d4
lea ecx, [esp + 0x41c]
call fcn.00406e20
lea eax, [esp + 0x1f8]
push eax
mov ecx, str.fatalerror:
lea edi, [esp + 0x1c4]
call fcn.0040b1f0
add esp, 4
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x43c]
mov byte [esp + 0x67c], 0x27
call fcn.00407c00
mov esi, 0x10
cmp dword [esp + 0x1d8], esi
jb 0x4064d9
mov ecx, dword [esp + 0x1c4]
push ecx
call fcn.0043e445
add esp, 4
cmp dword [esp + 0x14c], esi
jb 0x4064f2
mov edx, dword [esp + 0x138]
push edx
call fcn.0043e445
add esp, 4
lea eax, [esp + 0x4c]
push eax
mov dword [esp + 0x150], 0xf
mov dword [esp + 0x14c], ebx
mov byte [esp + 0x13c], bl
call fcn.00407e80
cmp dword [esp + 0xf4], esi
jb 0x40652e
mov ecx, dword [esp + 0xe0]
push ecx
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x2bc]
mov dword [esp + 0xf4], 0xf
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
call fcn.00406d10
mov edi, 0x10
cmp dword [esp + 0xd8], edi
jb 0x406571
mov edx, dword [esp + 0xc4]
push edx
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x16c]
mov dword [esp + 0xd8], 0xf
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
call fcn.00406cc0
mov byte [esp + 0x670], 9
cmp dword [esp + 0x1bc], edi
jb 0x4065b7
mov eax, dword [esp + 0x1a8]
push eax
call fcn.0043e445
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x21c]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00407c00
call fcn.00432e60
add esp, 0x1c
mov edi, 0xf
lea ecx, [esp + 0x36c]
push ecx
lea esi, [esp + 0x118]
call fcn.00417610
add esp, 4
cmp dword [esp + 0x130], 0x10
jb 0x40661b
mov edx, dword [esp + 0x11c]
push edx
call fcn.0043e445
add esp, 4
cmp byte [esp + 0x12], bl
jne 0x4069e7
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x4069e7
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 0x4069e7
push ebx
push ebx
push ebx
push 0x404fb0
push ebx
push ebx
call fcn.0043e645
add esp, 0x18
call fcn.00433450
push str.r...
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x68]
cmp eax, ebx
je 0x4066ab
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 0x4066ab
lea ecx, [esp + 0x64]
call fcn.00402330
lea edx, [esp + 0x64]
push edx
call fcn.00403750
add esp, 4
mov dword [esp + 0x20], ebx
nop
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebx
jmp 0x4066c0
mov esi, dword [esp + 0x40]
cmp esi, ebx
je 0x406929
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 dword [esp + 0x14], eax
jae 0x406929
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
lea esp, [esp]
cmp esi, ebx
je 0x40671f
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x14], eax
jb 0x406728
call fcn.0043e81d
mov esi, dword [esp + 0x40]
cmp dword [edi + esi + 0x18], 0x10
jb 0x40675f
mov esi, dword [edi + esi + 4]
jmp 0x406763
cmp dword [esp + 0x20], ebx
jle 0x40674d
push ebx
push ebx
push 0x1000
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
push str.5...
call fcn.00401b30
add esp, 4
jmp 0x4059e0
lea esi, [edi + esi + 4]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x406773
test al, 2
je 0x40679f
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, 0xa
mov dword [esp + 0x18], eax
jge 0x406939
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
jmp 0x406700
mov eax, dword [esp + 0x20]
cmp eax, 1
je 0x4067b1
cmp eax, 0xa
jne 0x406912
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], ebx
mov byte [esp + 0xa4], bl
mov byte [esp + 0x670], 0x28
mov dword [esp + 0x18], ebx
jmp 0x4067e0
mov edi, dword [esp + 0x14]
lea eax, [esp + 0xa0]
push eax
lea esi, [esp + 0x40]
call fcn.004074a0
cmp dword [eax + 0x18], 0x10
jb 0x406800
mov eax, dword [eax + 4]
jmp 0x406803
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.00406d90
call fcn.004128c0
add esp, 0x20
cmp dword [esp + 0xb4], ebx
ja 0x40683e
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, 0xa
mov dword [esp + 0x18], eax
jl 0x4067e0
cmp dword [esp + 0xb8], 0x10
mov eax, dword [esp + 0xa4]
jae 0x406856
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0xbc]
call fcn.00412360
add esp, 8
mov edi, dword [esp + 0x14]
lea esi, [esp + 0x74]
mov byte [esp + 0x670], 0x29
call fcn.004074a0
cmp dword [eax + 0x18], 0x10
jb 0x40688e
mov eax, dword [eax + 4]
jmp 0x406891
add eax, 4
mov ecx, dword [esp + 0xfc]
mov esi, 0x10
cmp dword [esp + 0x110], esi
jae 0x4068ad
lea ecx, [esp + 0xfc]
push eax
push ecx
call fcn.00456e88
add esp, 8
test eax, eax
jne 0x40694e
cmp dword [esp + 0x110], esi
jb 0x4068d8
mov edx, dword [esp + 0xfc]
push edx
call fcn.0043e445
add esp, 4
mov byte [esp + 0x670], 9
cmp dword [esp + 0xb8], esi
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], bl
jb 0x406912
mov eax, dword [esp + 0xa4]
push eax
call fcn.0043e445
add esp, 4
mov eax, 1
add dword [esp + 0x20], eax
add dword [esp + 0x14], eax
add dword [esp + 0x1c], 0x1c
jmp 0x4066c0
push 0xea60
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4066b0
push 5
push str.LED01
lea ecx, [esp + 0x200]
call fcn.00406e20
jmp 0x4069b4
push 5
push str.LED02
lea ecx, [esp + 0x200]
call fcn.00406e20
cmp dword [esp + 0x110], esi
jb 0x40697a
mov ecx, dword [esp + 0xfc]
push ecx
call fcn.0043e445
add esp, 4
mov byte [esp + 0x670], 9
cmp dword [esp + 0xb8], esi
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], bl
jb 0x4069b4
mov edx, dword [esp + 0xa4]
push edx
call fcn.0043e445
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x21c]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00407c00
call fcn.00432e60
add esp, 0x1c
mov edi, 0xf
push str.end...
call fcn.00401b30
mov eax, dword [esp + 0x60]
add esp, 4
cmp eax, ebx
je 0x406a03
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, dword [esp + 0x60]
cmp esi, ebx
je 0x406a1b
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.00402b30
lea esi, [esp + 0x74]
call fcn.00407430
lea esi, [esp + 0x3c]
call fcn.00407430
cmp dword [esp + 0x210], 0x10
jb 0x406a50
mov ecx, dword [esp + 0x1fc]
push ecx
call fcn.0043e445
add esp, 4
mov esi, 0x10
cmp dword [esp + 0x280], esi
mov dword [esp + 0x210], edi
mov dword [esp + 0x20c], ebx
mov byte [esp + 0x1fc], bl
jb 0x406a83
mov edx, dword [esp + 0x26c]
push edx
call fcn.0043e445
add esp, 4
cmp dword [esp + 0x264], esi
mov dword [esp + 0x280], edi
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], bl
jb 0x406ab1
mov eax, dword [esp + 0x250]
push eax
call fcn.0043e445
add esp, 4
lea esi, [esp + 0x36c]
mov dword [esp + 0x264], edi
mov dword [esp + 0x260], ebx
mov byte [esp + 0x250], bl
call fcn.00406ba0
cmp dword [esp + 0x22c], 0x10
jb 0x406aec
mov ecx, dword [esp + 0x218]
push ecx
call fcn.0043e445
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.0043e436
mov esp, ebp
pop ebp
ret