Function at 0x423826
Capabilities:
Accept command line arguments
Check for time delay via gettickcount

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x104
push ebx
push esi
push edi
lea ecx, [ebp + 0x78]
call fcn.00409fda
mov byte [0x496f41], 1
call fcn.0040c7ef
mov dword [ebp + 0x18], eax
movzx ax, al
xor ecx, ecx
mov ch, al
xor ebx, ebx
mov dword [ebp + 0x54], ebx
or ecx, eax
mov dword [ebp + 0x28], ecx
lea ecx, [ebp + 0x48]
call fcn.0042c809
push str.PeExe
push 0xffffffffffffffff
mov esi, 0x496eb8
push esi
call fcn.0042e74e
add esp, 0xc
lea ecx, [ebp + 0x30]
call fcn.0042c809
push ebx
lea eax, [ebp + 0x30]
push eax
push str.SCRIPTINIT
push 0x64
push dword [0x496dd4]
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
call fcn.0040f3dc
lea eax, [ebp + 0x30]
push 1
push eax
call fcn.0043f1ef
mov edx, dword [ebp + 0x30]
add esp, 0x1c
lea ecx, [ebp + 0x5c]
mov dword [ebp + 0x5c], edx
call fcn.00409fda
cmp dword [ebp + 0x34], 4
mov eax, dword [ebp + 0x5c]
jg 0x4238ca
mov word [edx], bx
mov word [eax], bx
cmp word [eax], bx
mov edi, 0x496eb8
je 0x423987
push 0x40
push 0x484688
mov ecx, edi
call fcn.004133f5
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0x5c], eax
mov al, byte [0x495270]
mov dword [ebp + 0x30], ebx
mov byte [ebp + 0x5b], al
mov byte [0x495270], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp + 0x44]
call fcn.004365ba
push 0x480934
push dword [ebp + 0x44]
mov ecx, edi
push dword [ebp + 0x5c]
call fcn.00461ad2
mov al, byte [ebp + 0x5b]
push 0xffffffffffffffff
push ebx
push str.__Autoapp
mov ecx, edi
mov byte [0x495270], al
call fcn.0040b0e9
cmp eax, ebx
je 0x42395b
add eax, 4
cmp eax, ebx
je 0x42395b
mov eax, dword [eax]
xor ecx, ecx
mov cx, word [eax]
cmp cx, bx
je 0x423952
inc eax
mov dword [ebp + 0x54], ecx
inc eax
push eax
lea ecx, [ebp + 0x48]
call fcn.0043667e
push 0xffffffffffffffff
push ebx
push str.__bInitWin
mov ecx, edi
call fcn.0040b0e9
cmp eax, ebx
jne 0x423972
xor eax, eax
jmp 0x423975
add eax, 4
cmp eax, ebx
setne al
lea ecx, [ebp + 0x44]
mov byte [0x496e68], al
call fcn.00427365
push dword [ebp + 0x30]
call fcn.004272e4
pop ecx
lea ecx, [ebp + 0x30]
call fcn.00427365
push str.PeExe
push 1
push esi
call fcn.0042e74e
add esp, 0xc
lea ecx, [ebp + 0x1c]
call fcn.0042c809
movzx eax, word [ebp + 0x28]
shl eax, 0x10
cmp word [ebp + 0x54], 0x2a
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x5c], ebx
je 0x423a1e
cmp word [ebp + 0x54], 0x24
je 0x423a1e
mov eax, dword [ebp + 0x48]
cmp word [eax], bx
jne 0x423a1e
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x1c]
push eax
push 0x483e8c
push 0x65
push dword [0x496dd4]
call fcn.0040f3dc
mov eax, dword [ebp + 0x3c]
or eax, 1
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.0043f1ef
mov eax, dword [ebp + 0x1c]
add esp, 0x1c
cmp dword [ebp + 0x20], 4
mov dword [ebp + 0x5c], eax
jg 0x423a1e
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x5c], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
cmp esi, ebx
mov dword [ebp + 0x14], esi
je 0x423a4b
push 0x11
lea eax, [ebp + 0x14]
push eax
push str.PECMDpecmd_cmd
call fcn.004273d3
add esp, 0xc
test eax, eax
mov byte [0x496d48], 1
jne 0x423a51
mov byte [0x496d48], bl
push 4
push dword [ebp + 0x78]
push 0x481518
call fcn.00428263
add esp, 0xc
test al, al
je 0x423a6d
mov byte [0x496b86], bl
mov al, byte [0x496d48]
cmp al, bl
mov byte [ebp + 0x67], al
jne 0x423b28
cmp word [ebp + 0x54], 0x2d
jne 0x423a88
or byte [ebp + 0x67], 2
cmp word [ebp + 0x54], 0x2a
jne 0x423ab1
push 0x496ee4
mov byte [0x495270], 1
call fcn.0042ba82
mov eax, dword [ebp + 0x48]
pop ecx
add eax, 8
push eax
mov ecx, edi
call fcn.004232cf
jmp 0x423b20
cmp word [ebp + 0x54], 0x24
jne 0x423ace
push ebx
push ebx
push ebx
push dword [ebp + 0x48]
mov ecx, edi
mov byte [0x495270], 1
call fcn.00420f64
jmp 0x423b20
mov eax, dword [ebp + 0x48]
cmp word [eax], bx
je 0x423b06
cmp dword [ebp + 0x5c], ebx
jne 0x423b06
push 0x48109c
lea ecx, [ebp + 0x48]
mov byte [0x495270], 1
call fcn.0042c877
push dword [ebp + 0x78]
lea ecx, [ebp + 0x48]
call fcn.0042c877
push dword [ebp + 0x48]
mov ecx, edi
call fcn.0041d2d9
jmp 0x423b20
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x423b28
cmp dword [ebp + 0x5c], ebx
jne 0x423b28
push ebx
push 0x480934
mov ecx, edi
call fcn.0041c9cc
mov dword [ebp + 0x5c], eax
jmp 0x423fb4
lea ecx, [ebp + 0x54]
call fcn.0042c809
cmp esi, ebx
jne 0x423b44
lea ecx, [ebp + 0x54]
call fcn.00427365
or esi, 0xffffffff
jmp 0x423ff2
lea eax, [ebp + 0x54]
push eax
push esi
call fcn.00415f34
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x60], eax
push 1
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x44], ebx
call fcn.00413796
add esp, 0x14
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x60], eax
call fcn.00409fda
mov esi, dword [ebp + 0x60]
mov eax, esi
sub eax, dword [ebp + 0x54]
sar eax, 1
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], eax
je 0x423b8f
cmp byte [ebp + 0x67], bl
mov byte [ebp + 0x53], 1
je 0x423b92
mov byte [ebp + 0x53], bl
cmp byte [ebp + 0x53], bl
mov byte [ebp + 0x67], 0x10
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x5b], 1
je 0x423bba
lea esi, [ebp + 0x1c]
mov byte [0x495270], 1
mov byte [ebp + 0x5b], bl
jmp 0x423da4
push dword [ebp + 0x1c]
call fcn.004272e4
pop ecx
lea ecx, [ebp + 0x1c]
call fcn.00427365
cmp word [esi], 0x2f
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x3c], ebx
mov byte [ebp + 0x5a], bl
jne 0x423bfe
mov ax, word [esi + 2]
or ax, 0x20
cmp ax, 0x6c
jne 0x423bfe
mov ax, word [esi + 4]
call fcn.00402a89
test al, al
je 0x423bfe
mov al, byte [esi + 2]
mov byte [ebp + 0x5a], al
cmp byte [ebp + 0x5a], bl
mov dword [ebp + 0x5c], ebx
je 0x423c27
mov word [esi + 2], 0x20
mov word [esi], 0x20
add esi, 4
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x60], esi
call fcn.00409fda
mov esi, dword [ebp + 0x60]
jmp 0x423ccb
cmp word [esi], 0x22
push ebx
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x60]
push eax
sete byte [ebp + 0x2f]
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x60], esi
call fcn.00413796
sub eax, dword [ebp + 0x60]
add esp, 0xc
sar eax, 1
push eax
push dword [ebp + 0x60]
lea ecx, [ebp + 0x40]
call fcn.004365d7
push dword [ebp + 0x40]
call fcn.0046c682
cmp byte [ebp + 0x2f], bl
pop ecx
mov dword [ebp + 0x4c], eax
je 0x423c82
cmp eax, ebx
je 0x423c79
mov ax, word [esi + 2]
call fcn.00402a89
test al, al
je 0x423c82
push esi
call fcn.0040d003
pop ecx
mov esi, eax
cmp dword [ebp + 0x4c], ebx
je 0x423cc3
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
mov dword [ebp + 0x4c], eax
add eax, 0xa
push eax
lea ecx, [ebp + 0x5c]
call fcn.0042c850
push 0xc
push str.LOAD
push dword [ebp + 0x5c]
call fcn.0046cbf0
push dword [ebp + 0x4c]
mov eax, dword [ebp + 0x5c]
add eax, 0xa
push esi
push eax
call fcn.00403c6b
mov esi, dword [ebp + 0x5c]
add esp, 0x18
lea ecx, [ebp + 0x40]
call fcn.00427365
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0x40], eax
add eax, 3
push eax
lea ecx, [ebp + 0x30]
call fcn.0042c850
mov eax, dword [ebp + 0x40]
inc eax
push eax
push esi
push dword [ebp + 0x30]
call fcn.00403c6b
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x40]
add esp, 0xc
cmp byte [ebp + 0x5a], bl
mov word [eax + ecx*2 + 2], bx
je 0x423d95
push dword [ebp + 0x30]
mov byte [ebp + 0x67], bl
call fcn.00429392
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0x60], eax
pop ecx
lea eax, [ebp + 0x60]
call fcn.00403ca7
mov esi, dword [ebp + 0x60]
sub esi, dword [ebp + 0x30]
mov eax, dword [ebp + 0x44]
sar esi, 1
add eax, esi
mov dword [ebp + 0x4c], eax
inc eax
push eax
lea ecx, [ebp + 0x54]
call fcn.0042c850
cmp esi, ebx
jle 0x423d95
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x44]
push esi
push dword [ebp + 0x30]
lea eax, [eax + ecx*2]
push eax
call fcn.00403c6b
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x4c]
add esp, 0xc
cmp byte [ebp + 0x5a], 0x4c
mov word [eax + ecx*2], bx
jne 0x423d95
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
add eax, eax
push eax
push dword [ebp + 0x60]
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x30]
call fcn.0046cf30
mov ecx, dword [ebp + 0x4c]
lea eax, [esi + esi]
push eax
mov eax, dword [ebp + 0x30]
add ecx, eax
push ebx
push ecx
call fcn.0046c9b0
add esp, 0x18
or byte [ebp + 0x67], 1
lea ecx, [ebp + 0x5c]
lea esi, [ebp + 0x30]
call fcn.00427365
mov eax, dword [esi]
push 1
push dword [ebp + 0x54]
mov ecx, 0x496eb8
mov dword [ebp + 0x60], eax
call fcn.00439a97
cmp byte [ebp + 0x53], bl
je 0x423dc6
push 0x40
push str.101
jmp 0x423dfc
lea ecx, [ebp + 0x60]
call fcn.00409fda
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [ebp + 0x60]
lea ecx, [edx + eax*2 - 2]
jmp 0x423df1
mov ax, word [ecx]
call fcn.00402a89
test al, al
je 0x423df5
mov word [ecx], bx
dec ecx
dec ecx
cmp ecx, edx
jae 0x423de0
push 0x40
push str.cmdline
mov ecx, edi
call fcn.004133f5
mov edi, dword [esi]
mov eax, dword [ebp + 0x60]
sub eax, edi
test eax, 0xfffffffe
jle 0x423e2b
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
push dword [ebp + 0x60]
push edi
call fcn.0046cf30
add esp, 0xc
mov edi, dword [esi]
push 0x4845fc
lea ecx, [ebp + 0x40]
call fcn.004365ba
push ebx
push 0x496eb8
lea ecx, [ebp - 0x9c]
call fcn.0041cc20
movzx eax, word [ebp + 0x28]
push eax
lea ecx, [ebp - 0x9c]
mov dword [ebp + 0x44], eax
call fcn.0042aa5e
mov ax, word [ebp + 0x28]
mov word [ebp - 0x94], ax
mov eax, edi
push ebx
lea edi, [ebp - 0x9c]
call fcn.0041353a
push dword [ebp + 0x28]
push dword [esi]
call fcn.0040c7d6
mov ecx, edi
push ecx
lea ecx, [ebp + 0x40]
push ecx
mov ecx, dword [ebp + 0x3c]
push eax
push ebx
push esi
mov dword [ebp + 0x4c], eax
call fcn.0041bfb0
movzx edi, word [ebp + 0x18]
movzx eax, ax
or dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x4c]
inc eax
push eax
mov eax, edi
xor eax, dword [ebp + 0x44]
push eax
push dword [esi]
call fcn.0040c84a
mov eax, dword [ebp + 0x3c]
add esp, 0x2c
and eax, 2
shl edi, 0x10
push ebx
lea ecx, [ebp - 0x9c]
or edi, eax
call fcn.0041c72f
lea ecx, [ebp - 0x60]
call fcn.00427365
lea ecx, [ebp + 0x40]
call fcn.00427365
movsx eax, byte [ebp + 0x5b]
push str.PeExe
push eax
push 0x496eb8
call fcn.0042e74e
mov ecx, dword [esi]
xor eax, eax
mov al, byte [ebp + 0x67]
add esp, 0xc
push ebx
push ebx
mov dword [esi], ebx
and eax, 1
or eax, edi
or eax, 0x80
push eax
push ebx
push dword [ebp + 0x54]
push ecx
mov ecx, 0x496eb8
call fcn.00461bc0
mov dword [ebp + 0x5c], eax
call fcn.0042ccd0
cmp dword [0x497180], ebx
jle 0x423f2f
mov byte [0x495280], 0xff
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov esi, eax
sub esi, 0x14
call edi
jmp 0x423f97
call edi
mov dword [ebp + 0x4c], eax
sub eax, esi
cmp eax, 1
jb 0x423f56
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov esi, dword [ebp + 0x4c]
push 0x4bf
push 0xa
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x423f8f
push 1
push ebx
push ebx
push ebx
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x423f97
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [0x497180], ebx
jg 0x423f68
cmp dword [0x497180], ebx
jg 0x423f40
lea ecx, [ebp + 0x30]
call fcn.00427365
lea ecx, [ebp + 0x54]
call fcn.00427365
mov edi, 0x496eb8
push dword [ebp + 0x1c]
call fcn.004272e4
pop ecx
mov ecx, 0x497618
call fcn.00427834
mov ecx, 0x4971e8
call fcn.00427862
push 0x496ee4
call fcn.0042ba82
pop ecx
call fcn.0040cfa0
mov eax, 0x480934
push eax
push eax
mov ecx, edi
call fcn.00415896
mov esi, dword [ebp + 0x5c]
lea ecx, [ebp + 0x1c]
call fcn.00427365
lea ecx, [ebp + 0x48]
call fcn.00427365
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret