Function at 0x4130a0
Capabilities:
Accept command line arguments
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4de641
mov eax, dword fs:[0]
push eax
sub esp, 0x660
mov eax, dword [0x518250]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x64c], esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00405170
call fcn.0041d8a0
mov ecx, eax
call fcn.0041d930
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x414380
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x648], eax
mov dword [ebp - 4], 0
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x41438a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov eax, str.__pep
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x63c]
test eax, 0xffff0000
jne 0x413157
movzx eax, ax
push eax
call fcn.0040e240
jmp 0x413163
push 5
push str.__pep
call fcn.00406400
lea eax, [ebp - 0x648]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00404f10
mov edx, dword [ebp - 0x63c]
or ebx, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4131a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x648]
call fcn.004b465a
add esp, 4
mov dword [ebp - 0x654], eax
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x414394
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov eax, str.__pid
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x63c]
test eax, 0xffff0000
jne 0x4131f7
movzx eax, ax
push eax
call fcn.0040e240
jmp 0x413203
push 5
push str.__pid
call fcn.00406400
lea eax, [ebp - 0x648]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00404f10
mov edx, dword [ebp - 0x63c]
mov eax, ebx
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413242
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x648]
call fcn.004b4630
mov ecx, eax
lea eax, [esi + 0x100]
push eax
push ecx
mov dword [ebp - 0x644], ecx
mov dword [ebp - 0x660], eax
call fcn.004197d0
mov dword [ebp - 0x650], eax
lea eax, [ebp - 0x668]
push eax
call fcn.0041e4b0
add esp, 0x10
mov ecx, dword [eax]
mov byte [ebp - 4], 5
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov esi, dword [ebp - 0x664]
mov byte [ebp - 0x63d], al
mov byte [ebp - 4], 0
test esi, esi
je 0x4132c3
mov ecx, ebx
lock xadd dword [esi + 4], ecx
jne 0x4132c3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x4132bd
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov al, byte [ebp - 0x63d]
test al, al
je 0x413373
lea eax, [ebp - 0x668]
push eax
call fcn.0041e4b0
add esp, 4
mov edi, dword [eax]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 6
call fcn.0040ca20
mov esi, eax
push str._is_succeed:
push esi
mov byte [ebp - 4], 7
call fcn.0040cfe0
add esp, 8
mov ecx, esi
push dword [ebp - 0x650]
call fcn.00412bc0
push str.___path:
push esi
call fcn.0040cfe0
mov eax, dword [ebp - 0x660]
mov edx, 0x4eb7c0
mov eax, dword [eax]
test eax, eax
cmovne edx, eax
push edx
push esi
call fcn.00402680
mov eax, dword [edi]
add esp, 0x10
mov ecx, edi
push esi
call dword [eax + 8]
lea ecx, [ebp - 0xa8]
call fcn.00404360
mov esi, dword [ebp - 0x664]
mov byte [ebp - 4], 0
test esi, esi
je 0x413373
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x413373
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x413373
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x41439e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov eax, str.__tid
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x63c]
test eax, 0xffff0000
jne 0x4133b1
movzx eax, ax
push eax
call fcn.0040e240
jmp 0x4133bd
push 5
push str.__tid
call fcn.00406400
lea eax, [ebp - 0x648]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00404f10
mov edx, dword [ebp - 0x63c]
mov eax, ebx
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4133fc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x648]
call fcn.004b4630
add esp, 4
mov dword [ebp - 0x650], eax
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x4143a8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov eax, str.__dir
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x63c]
test eax, 0xffff0000
jne 0x41344e
movzx eax, ax
push eax
call fcn.0040e240
jmp 0x41345a
push 5
push str.__dir
call fcn.00406400
lea eax, [ebp - 0x648]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00404f10
mov edx, dword [ebp - 0x63c]
mov eax, ebx
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413499
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x648]
add eax, 0xfffffff0
push eax
call fcn.00404ca0
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp - 0x66c], edi
mov byte [ebp - 4], 0xc
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x4143b2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov eax, str.__direx
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x63c]
test eax, 0xffff0000
jne 0x4134f6
movzx eax, ax
push eax
call fcn.0040e240
jmp 0x413502
push 7
push str.__direx
call fcn.00406400
lea eax, [ebp - 0x648]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00404f10
mov edx, dword [ebp - 0x63c]
mov eax, ebx
mov byte [ebp - 4], 0xc
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413541
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x648]
add eax, 0xfffffff0
push eax
call fcn.00404ca0
mov ebx, eax
add esp, 4
lea esi, [ebx + 0x10]
mov dword [ebp - 0x664], esi
cmp dword [edi - 0xc], 0
mov byte [ebp - 4], 0xf
jne 0x4136ad
push dword [ebp - 0x650]
mov ecx, dword [ebp - 0x64c]
push dword [ebp - 0x644]
add ecx, 0x70
push dword [ebp - 0x654]
call fcn.0040e1e0
test eax, eax
jne 0x4136ad
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov ecx, dword [eax]
mov byte [ebp - 4], 0x10
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, dword [ebp - 0x658]
mov byte [ebp - 0x63d], al
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x644], edx
test edx, edx
je 0x4135f0
or ebx, 0xffffffff
mov ecx, ebx
lock xadd dword [edx + 4], ecx
jne 0x4135f0
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x644]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x4135f0
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x63d], 0
je 0x413657
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x644], eax
call fcn.0040ca20
mov ebx, eax
push str.init_MiniDumpWriteDump_failed.
push ebx
mov byte [ebp - 4], 0x12
call fcn.00402680
mov eax, dword [ebp - 0x644]
mov edx, dword [eax]
add esp, 8
mov ecx, eax
push ebx
call dword [edx + 8]
lea ecx, [ebp - 0xa8]
call fcn.00404360
lea ecx, [ebp - 0x65c]
call fcn.00403e10
or ebx, 0xffffffff
mov byte [ebp - 4], 0xc
mov eax, ebx
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x413675
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x413690
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x648]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jmp 0x414085
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x4143bc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov eax, str.__ver
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x63c]
test eax, 0xffff0000
jne 0x4136eb
movzx eax, ax
push eax
call fcn.0040e240
jmp 0x4136f7
push 5
push str.__ver
call fcn.00406400
lea eax, [ebp - 0x648]
mov byte [ebp - 4], 0x14
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00404f10
mov edx, dword [ebp - 0x63c]
or ecx, 0xffffffff
mov dword [ebp - 0x644], eax
add edx, 0xfffffff0
mov byte [ebp - 4], 0xf
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x413743
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x644]
test eax, eax
je 0x413769
mov eax, dword [ebp - 0x64c]
lea ecx, [ebp - 0x648]
add eax, 0x64
push ecx
mov ecx, eax
mov dword [ebp - 0x660], eax
call fcn.004041a0
jmp 0x41389a
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00487d10
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.ComputerZ_HardwareDll.dll
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x200
lea eax, [ebp - 0x418]
push 0
push eax
call fcn.00487d10
push 0x100
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0040dda0
add esp, 0x18
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x4143c6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
lea eax, [ebp - 0x418]
mov byte [ebp - 4], 0x15
test eax, 0xffff0000
jne 0x41382c
movzx eax, ax
lea ecx, [ebp - 0x63c]
push eax
call fcn.0040e240
jmp 0x413857
lea ecx, [ebp - 0x418]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413835
sub ecx, edx
lea eax, [ebp - 0x418]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x63c]
call fcn.00406400
mov eax, dword [ebp - 0x64c]
lea ecx, [ebp - 0x63c]
add eax, 0x64
mov byte [ebp - 4], 0x16
push ecx
mov ecx, eax
mov dword [ebp - 0x660], eax
call fcn.004041a0
mov edx, dword [ebp - 0x63c]
or eax, 0xffffffff
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41389a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x64c]
push dword [ebp - 0x660]
lea ecx, [ecx + 0x44]
call fcn.004041a0
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x4143d0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov eax, str.__src
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x63c]
test eax, 0xffff0000
jne 0x4138ec
movzx eax, ax
push eax
call fcn.0040e240
jmp 0x4138f8
push 5
push str.__src
call fcn.00406400
lea eax, [ebp - 0x648]
mov byte [ebp - 4], 0x18
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00404f10
mov edx, dword [ebp - 0x63c]
or ecx, 0xffffffff
mov dword [ebp - 0x644], eax
add edx, 0xfffffff0
mov byte [ebp - 4], 0xf
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x413944
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x644]
test eax, eax
mov eax, dword [ebp - 0x64c]
je 0x413967
add eax, 0x68
lea ecx, [ebp - 0x648]
push ecx
mov ecx, eax
mov dword [ebp - 0x650], eax
call fcn.004041a0
jmp 0x41397e
add eax, 0x68
push 3
push 0x4ec5b0
mov ecx, eax
mov dword [ebp - 0x650], eax
call fcn.00406400
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x4143da
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov eax, str.__rep
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x63c]
test eax, 0xffff0000
jne 0x4139bc
movzx eax, ax
push eax
call fcn.0040e240
jmp 0x4139c8
push 5
push str.__rep
call fcn.00406400
lea eax, [ebp - 0x648]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x63c]
push eax
call fcn.0040deb0
mov ecx, eax
call fcn.00404f10
mov edx, dword [ebp - 0x63c]
or eax, 0xffffffff
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413a08
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x648]
call fcn.004b4630
mov ecx, dword [ebp - 0x64c]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [ecx + 0x6c], eax
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 8
mov ecx, dword [eax]
mov byte [ebp - 4], 0x1b
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, dword [ebp - 0x658]
mov byte [ebp - 0x63d], al
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x644], edx
test edx, edx
je 0x413a7d
or ecx, 0xffffffff
lock xadd dword [edx + 4], ecx
jne 0x413a7d
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x644]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x413a7d
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x63d], 0
je 0x413b8b
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x644], eax
call fcn.0040ca20
mov dword [ebp - 0x63c], eax
push str.src
push eax
mov byte [ebp - 4], 0x1d
call fcn.00402680
mov ecx, dword [ebp - 0x650]
mov edx, 0x4eb7c0
mov ecx, dword [ecx]
test ecx, ecx
cmovne edx, ecx
push edx
push dword [ebp - 0x63c]
call fcn.00402680
push str._ver
push dword [ebp - 0x63c]
call fcn.00402680
mov eax, dword [ebp - 0x660]
mov ecx, 0x4eb7c0
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
push dword [ebp - 0x63c]
call fcn.00402680
push str._rep
push dword [ebp - 0x63c]
call fcn.00402680
mov eax, dword [ebp - 0x64c]
add esp, 0x28
mov ecx, dword [ebp - 0x63c]
push dword [eax + 0x6c]
call fcn.00412bc0
mov ecx, dword [ebp - 0x644]
push dword [ebp - 0x63c]
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0xa8]
call fcn.00404360
mov ecx, dword [ebp - 0x658]
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x644], ecx
test ecx, ecx
je 0x413b8b
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x413b8b
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x644]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x413b8b
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
cmp dword [ebp - 0x654], eax
sete al
mov dword [ebp - 0x654], eax
call fcn.0040df40
push 0
lea ecx, [ebp - 0x638]
push ecx
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0x1e
jb 0x413bbd
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x63c]
call fcn.0040c160
mov edx, dword [ebp - 0x624]
mov byte [ebp - 4], 0x20
cmp edx, 8
jb 0x413c0d
mov ecx, dword [ebp - 0x638]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x413c03
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4143e4
push edx
push ecx
call fcn.00450e3a
add esp, 8
mov edx, dword [ebp - 0x63c]
xor eax, eax
mov word [ebp - 0x638], ax
mov ecx, 1
mov dword [ebp - 0x628], 0
mov dword [ebp - 0x624], 7
mov eax, dword [edx - 8]
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x413c5a
push 0x104
lea ecx, [ebp - 0x63c]
call fcn.004060b0
mov edx, dword [ebp - 0x63c]
cmp dword [edx - 8], 0x104
jl 0x4143e9
mov dword [edx - 0xc], 0x104
xor ecx, ecx
mov eax, dword [ebp - 0x63c]
push str.logdumpuper.log.on
push edx
mov word [eax + 0x208], cx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [ebp - 0x63c]
push dword [eax - 8]
push eax
call fcn.004b5263
mov edx, eax
add esp, 8
test edx, edx
js 0x4143e9
mov ecx, dword [ebp - 0x63c]
cmp edx, dword [ecx - 8]
jg 0x4143e9
mov dword [ecx - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x63c]
mov word [eax + edx*2], cx
push dword [ebp - 0x63c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x413dd8
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov ecx, dword [eax]
mov byte [ebp - 4], 0x21
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, dword [ebp - 0x658]
mov byte [ebp - 0x63d], al
mov byte [ebp - 4], 0x20
mov dword [ebp - 0x644], edx
test edx, edx
je 0x413d32
or ecx, 0xffffffff
lock xadd dword [edx + 4], ecx
jne 0x413d32
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x644]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x413d32
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x63d], 0
je 0x413dce
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x644], eax
call fcn.0040ca20
mov dword [ebp - 0x654], eax
push str.test_mode__no_delete__no_upload
push eax
mov byte [ebp - 4], 0x23
call fcn.0040cfe0
mov eax, dword [ebp - 0x644]
add esp, 8
mov ecx, eax
mov edx, dword [eax]
push dword [ebp - 0x654]
call dword [edx + 8]
lea ecx, [ebp - 0xa8]
call fcn.00404360
mov ecx, dword [ebp - 0x658]
mov dword [ebp - 0x644], ecx
test ecx, ecx
je 0x413dce
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x413dce
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x644]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x413dce
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x654], 1
mov edx, dword [ebp - 0x63c]
or eax, 0xffffffff
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413dfa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x64c]
push dword [ebp - 0x650]
lea ecx, [ecx + 0x28]
call fcn.0041bed0
cmp dword [ebp - 0x654], 0
jne 0x413ead
mov eax, dword [ebp - 0x64c]
cmp dword [eax + 0x6c], 0
jne 0x413ead
mov ecx, eax
call fcn.00414b50
test eax, eax
je 0x413ead
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov ecx, dword [eax]
mov byte [ebp - 4], 0x24
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
lea ecx, [ebp - 0x65c]
mov byte [ebp - 4], 0xf
mov bl, al
call fcn.00403e10
test bl, bl
je 0x413657
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x25
mov dword [ebp - 0x644], eax
call fcn.0040ca20
mov ebx, eax
push str.repeat_upload_disabled.
push ebx
mov byte [ebp - 4], 0x26
call fcn.00402680
mov eax, dword [ebp - 0x644]
jmp 0x413636
call fcn.00404e50
mov ecx, eax
test ecx, ecx
je 0x4143f3
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x63c], esi
cmp dword [edi - 0xc], 0
mov byte [ebp - 4], 0x27
jne 0x414096
mov ecx, dword [ebp - 0x64c]
lea eax, [ebp - 0x644]
push eax
lea ecx, [ecx + 0x70]
call fcn.0040d2b0
push eax
lea ecx, [ebp - 0x63c]
mov byte [ebp - 4], 0x28
call fcn.004041a0
mov edx, dword [ebp - 0x644]
or eax, 0xffffffff
mov byte [ebp - 4], 0x27
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x413f1f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x63c]
mov eax, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push esi
call eax
test eax, eax
je 0x413f51
cmp dword [esi - 0xc], 0
je 0x413f51
mov ecx, dword [ebp - 0x64c]
lea eax, [ebp - 0x63c]
push eax
lea ecx, [ecx + 0x60]
call fcn.004041a0
jmp 0x4142e1
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov ecx, dword [eax]
mov byte [ebp - 4], 0x29
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, dword [ebp - 0x658]
mov byte [ebp - 0x63d], al
mov byte [ebp - 4], 0x27
mov dword [ebp - 0x644], edx
test edx, edx
je 0x413fac
or ecx, 0xffffffff
lock xadd dword [edx + 4], ecx
jne 0x413fac
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x644]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x413fac
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x63d], 0
je 0x41401c
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x2a
mov dword [ebp - 0x644], eax
call fcn.0040ca20
mov dword [ebp - 0x654], eax
push str.generate_dump_file_failed.
push eax
mov byte [ebp - 4], 0x2b
call fcn.00402680
mov eax, dword [ebp - 0x644]
add esp, 8
mov ecx, eax
mov edx, dword [eax]
push dword [ebp - 0x654]
call dword [edx + 8]
lea ecx, [ebp - 0xa8]
call fcn.00404360
lea ecx, [ebp - 0x65c]
call fcn.00403e10
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xf
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41403a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov eax, esi
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x414052
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x41406d
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x648]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x41408f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
jmp 0x414364
mov eax, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push edi
call eax
test eax, eax
jne 0x414180
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov ecx, dword [eax]
mov byte [ebp - 4], 0x2c
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, dword [ebp - 0x658]
mov byte [ebp - 0x63d], al
mov byte [ebp - 4], 0x27
mov dword [ebp - 0x644], edx
test edx, edx
je 0x414101
or ecx, 0xffffffff
lock xadd dword [edx + 4], ecx
jne 0x414101
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x644]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x414101
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x63d], 0
je 0x414171
lea eax, [ebp - 0x65c]
push eax
call fcn.0041e4b0
add esp, 4
mov eax, dword [eax]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x2d
mov dword [ebp - 0x644], eax
call fcn.0040ca20
mov dword [ebp - 0x650], eax
push str.no_found_dir
push eax
mov byte [ebp - 4], 0x2e
call fcn.0040cfe0
mov eax, dword [ebp - 0x644]
add esp, 8
mov ecx, eax
mov edx, dword [eax]
push dword [ebp - 0x650]
call dword [edx + 8]
lea ecx, [ebp - 0xa8]
call fcn.00404360
lea ecx, [ebp - 0x65c]
call fcn.00403e10
mov dword [ebp - 0x650], 0
jmp 0x4142eb
call fcn.0040df40
push 0
lea ecx, [ebp - 0x638]
push ecx
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0x2f
jb 0x4141a1
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x654]
call fcn.0040c160
lea ecx, [ebp - 0x638]
mov byte [ebp - 4], 0x31
call fcn.00403c60
push str.DumpUper
lea eax, [ebp - 0x654]
push eax
lea eax, [ebp - 0x660]
push eax
call fcn.00412f20
push 0x208
lea eax, [ebp - 0x620]
mov byte [ebp - 4], 0x32
push 0
push eax
call fcn.00487d10
add esp, 0x18
lea eax, [ebp - 0x620]
push 0x104
push eax
call fcn.00448830
push 0x4ebd34
lea eax, [ebp - 0x660]
push eax
lea eax, [ebp - 0x658]
push eax
call fcn.00412f20
lea ecx, [ebp - 0x620]
mov byte [ebp - 4], 0x33
push ecx
push eax
lea eax, [ebp - 0x644]
push eax
call fcn.00412f20
add esp, 0x18
push eax
lea ecx, [ebp - 0x660]
mov byte [ebp - 4], 0x34
call fcn.004041a0
mov edx, dword [ebp - 0x644]
or esi, 0xffffffff
mov byte [ebp - 4], 0x33
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x414266
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x658]
mov eax, esi
mov byte [ebp - 4], 0x32
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x414287
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x660]
push eax
lea ecx, [ebp - 0x63c]
call fcn.004041a0
mov edx, dword [ebp - 0x660]
mov eax, esi
mov byte [ebp - 4], 0x31
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4142ba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x654]
mov eax, esi
mov byte [ebp - 4], 0x27
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4142db
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x63c]
mov dword [ebp - 0x650], 1
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xf
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x414309
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov eax, esi
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x414321
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x41433c
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x648]
mov dword [ebp - 4], 0xffffffff
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], esi
dec esi
test esi, esi
jg 0x41435e
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x650]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045124a
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
push 0x80004005
call fcn.00404b40
call fcn.00491e86
push 0x80070057
call fcn.00404b40
push 0x80004005
call fcn.00404b40
int3