Function at 0x423507
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.00409e64
mov byte [0x496f41], 1
call fcn.0040c635
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.0042c3f7
push str.PeExe
push 0xffffffffffffffff
mov esi, 0x496eb8
push esi
call fcn.0042e3da
add esp, 0xc
lea ecx, [ebp + 0x30]
call fcn.0042c3f7
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.0040f211
lea eax, [ebp + 0x30]
push 1
push eax
call fcn.0043edf7
mov edx, dword [ebp + 0x30]
add esp, 0x1c
lea ecx, [ebp + 0x5c]
mov dword [ebp + 0x5c], edx
call fcn.00409e64
cmp dword [ebp + 0x34], 4
mov eax, dword [ebp + 0x5c]
jg 0x4235ab
mov word [edx], bx
mov word [eax], bx
cmp word [eax], bx
mov edi, 0x496eb8
je 0x423668
push 0x40
push 0x484680
mov ecx, edi
call fcn.00413187
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.004361de
push 0x480934
push dword [ebp + 0x44]
mov ecx, edi
push dword [ebp + 0x5c]
call fcn.00461650
mov al, byte [ebp + 0x5b]
push 0xffffffffffffffff
push ebx
push str.__Autoapp
mov ecx, edi
mov byte [0x495270], al
call fcn.0040af39
cmp eax, ebx
je 0x42363c
add eax, 4
cmp eax, ebx
je 0x42363c
mov eax, dword [eax]
xor ecx, ecx
mov cx, word [eax]
cmp cx, bx
je 0x423633
inc eax
mov dword [ebp + 0x54], ecx
inc eax
push eax
lea ecx, [ebp + 0x48]
call fcn.004362a2
push 0xffffffffffffffff
push ebx
push str.__bInitWin
mov ecx, edi
call fcn.0040af39
cmp eax, ebx
jne 0x423653
xor eax, eax
jmp 0x423656
add eax, 4
cmp eax, ebx
setne al
lea ecx, [ebp + 0x44]
mov byte [0x496e68], al
call fcn.0042704a
push dword [ebp + 0x30]
call fcn.00426fb0
pop ecx
lea ecx, [ebp + 0x30]
call fcn.0042704a
push str.PeExe
push 1
push esi
call fcn.0042e3da
add esp, 0xc
lea ecx, [ebp + 0x1c]
call fcn.0042c3f7
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 0x4236ff
cmp word [ebp + 0x54], 0x24
je 0x4236ff
mov eax, dword [ebp + 0x48]
cmp word [eax], bx
jne 0x4236ff
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x1c]
push eax
push str.SCRIPT
push 0x65
push dword [0x496dd4]
call fcn.0040f211
mov eax, dword [ebp + 0x3c]
or eax, 1
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.0043edf7
mov eax, dword [ebp + 0x1c]
add esp, 0x1c
cmp dword [ebp + 0x20], 4
mov dword [ebp + 0x5c], eax
jg 0x4236ff
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 0x42372c
push 0x11
lea eax, [ebp + 0x14]
push eax
push str.PECMDpecmd_cmd
call fcn.00427084
add esp, 0xc
test eax, eax
mov byte [0x496d48], 1
jne 0x423732
mov byte [0x496d48], bl
push 4
push dword [ebp + 0x78]
push str.MAIN
call fcn.00427f14
add esp, 0xc
test al, al
je 0x42374e
mov byte [0x496b86], bl
mov al, byte [0x496d48]
cmp al, bl
mov byte [ebp + 0x67], al
jne 0x423809
cmp word [ebp + 0x54], 0x2d
jne 0x423769
or byte [ebp + 0x67], 2
cmp word [ebp + 0x54], 0x2a
jne 0x423792
push 0x496ee4
mov byte [0x495270], 1
call fcn.0042b6c2
mov eax, dword [ebp + 0x48]
pop ecx
add eax, 8
push eax
mov ecx, edi
call fcn.00422fb0
jmp 0x423801
cmp word [ebp + 0x54], 0x24
jne 0x4237af
push ebx
push ebx
push ebx
push dword [ebp + 0x48]
mov ecx, edi
mov byte [0x495270], 1
call fcn.00420c52
jmp 0x423801
mov eax, dword [ebp + 0x48]
cmp word [eax], bx
je 0x4237e7
cmp dword [ebp + 0x5c], ebx
jne 0x4237e7
push 0x4810a0
lea ecx, [ebp + 0x48]
mov byte [0x495270], 1
call fcn.0042c465
push dword [ebp + 0x78]
lea ecx, [ebp + 0x48]
call fcn.0042c465
push dword [ebp + 0x48]
mov ecx, edi
call fcn.0041cfc7
jmp 0x423801
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x423809
cmp dword [ebp + 0x5c], ebx
jne 0x423809
push ebx
push 0x480934
mov ecx, edi
call fcn.0041c69e
mov dword [ebp + 0x5c], eax
jmp 0x423c95
lea ecx, [ebp + 0x54]
call fcn.0042c3f7
cmp esi, ebx
jne 0x423825
lea ecx, [ebp + 0x54]
call fcn.0042704a
or esi, 0xffffffff
jmp 0x423cd3
lea eax, [ebp + 0x54]
push eax
push esi
call fcn.00415c8c
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.00413513
add esp, 0x14
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x60], eax
call fcn.00409e64
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 0x423870
cmp byte [ebp + 0x67], bl
mov byte [ebp + 0x53], 1
je 0x423873
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 0x42389b
lea esi, [ebp + 0x1c]
mov byte [0x495270], 1
mov byte [ebp + 0x5b], bl
jmp 0x423a85
push dword [ebp + 0x1c]
call fcn.00426fb0
pop ecx
lea ecx, [ebp + 0x1c]
call fcn.0042704a
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 0x4238df
mov ax, word [esi + 2]
or ax, 0x20
cmp ax, 0x6c
jne 0x4238df
mov ax, word [esi + 4]
call fcn.00426fde
test al, al
je 0x4238df
mov al, byte [esi + 2]
mov byte [ebp + 0x5a], al
cmp byte [ebp + 0x5a], bl
mov dword [ebp + 0x5c], ebx
je 0x423908
mov word [esi + 2], 0x20
mov word [esi], 0x20
add esi, 4
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x60], esi
call fcn.00409e64
mov esi, dword [ebp + 0x60]
jmp 0x4239ac
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.00413513
sub eax, dword [ebp + 0x60]
add esp, 0xc
sar eax, 1
push eax
push dword [ebp + 0x60]
lea ecx, [ebp + 0x40]
call fcn.004361fb
push dword [ebp + 0x40]
call fcn.0046c1b3
cmp byte [ebp + 0x2f], bl
pop ecx
mov dword [ebp + 0x4c], eax
je 0x423963
cmp eax, ebx
je 0x42395a
mov ax, word [esi + 2]
call fcn.00426fde
test al, al
je 0x423963
push esi
call fcn.0040ce49
pop ecx
mov esi, eax
cmp dword [ebp + 0x4c], ebx
je 0x4239a4
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.0042c43e
push 0xc
push str.LOAD
push dword [ebp + 0x5c]
call fcn.0046c720
push dword [ebp + 0x4c]
mov eax, dword [ebp + 0x5c]
add eax, 0xa
push esi
push eax
call fcn.00403c15
mov esi, dword [ebp + 0x5c]
add esp, 0x18
lea ecx, [ebp + 0x40]
call fcn.0042704a
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.0042c43e
mov eax, dword [ebp + 0x40]
inc eax
push eax
push esi
push dword [ebp + 0x30]
call fcn.00403c15
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 0x423a76
push dword [ebp + 0x30]
mov byte [ebp + 0x67], bl
call fcn.00429043
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0x60], eax
pop ecx
lea eax, [ebp + 0x60]
call fcn.0040edc9
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.0042c43e
cmp esi, ebx
jle 0x423a76
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.00403c15
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 0x423a76
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.0046ca60
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.0046c4e0
add esp, 0x18
or byte [ebp + 0x67], 1
lea ecx, [ebp + 0x5c]
lea esi, [ebp + 0x30]
call fcn.0042704a
mov eax, dword [esi]
push 1
push dword [ebp + 0x54]
mov ecx, 0x496eb8
mov dword [ebp + 0x60], eax
call fcn.0043969f
cmp byte [ebp + 0x53], bl
je 0x423aa7
push 0x40
push str.101
jmp 0x423add
lea ecx, [ebp + 0x60]
call fcn.00409e64
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [ebp + 0x60]
lea ecx, [edx + eax*2 - 2]
jmp 0x423ad2
mov ax, word [ecx]
call fcn.00426fde
test al, al
je 0x423ad6
mov word [ecx], bx
dec ecx
dec ecx
cmp ecx, edx
jae 0x423ac1
push 0x40
push str.cmdline
mov ecx, edi
call fcn.00413187
mov edi, dword [esi]
mov eax, dword [ebp + 0x60]
sub eax, edi
test eax, 0xfffffffe
jle 0x423b0c
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.0046ca60
add esp, 0xc
mov edi, dword [esi]
push 0x4845f4
lea ecx, [ebp + 0x40]
call fcn.004361de
push ebx
push 0x496eb8
lea ecx, [ebp - 0x9c]
call fcn.0041c8c5
movzx eax, word [ebp + 0x28]
push eax
lea ecx, [ebp - 0x9c]
mov dword [ebp + 0x44], eax
call fcn.0042a69e
mov ax, word [ebp + 0x28]
mov word [ebp - 0x94], ax
mov eax, edi
push ebx
lea edi, [ebp - 0x9c]
call fcn.004132b7
push dword [ebp + 0x28]
push dword [esi]
call fcn.0040c61c
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.0041bc7f
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.0040c690
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.0041c401
lea ecx, [ebp - 0x60]
call fcn.0042704a
lea ecx, [ebp + 0x40]
call fcn.0042704a
movsx eax, byte [ebp + 0x5b]
push str.PeExe
push eax
push 0x496eb8
call fcn.0042e3da
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.0046173e
mov dword [ebp + 0x5c], eax
call fcn.0042c95c
cmp dword [0x497180], ebx
jle 0x423c10
mov byte [0x495280], 0xff
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov esi, eax
sub esi, 0x14
call edi
jmp 0x423c78
call edi
mov dword [ebp + 0x4c], eax
sub eax, esi
cmp eax, 1
jb 0x423c37
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 0x423c70
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 0x423c78
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 0x423c49
cmp dword [0x497180], ebx
jg 0x423c21
lea ecx, [ebp + 0x30]
call fcn.0042704a
lea ecx, [ebp + 0x54]
call fcn.0042704a
mov edi, 0x496eb8
push dword [ebp + 0x1c]
call fcn.00426fb0
pop ecx
mov ecx, 0x497618
call fcn.004274e5
mov ecx, 0x4971e8
call fcn.00427513
push 0x496ee4
call fcn.0042b6c2
pop ecx
call fcn.0040cde6
mov eax, 0x480934
push eax
push eax
mov ecx, edi
call fcn.004155ee
mov esi, dword [ebp + 0x5c]
lea ecx, [ebp + 0x1c]
call fcn.0042704a
lea ecx, [ebp + 0x48]
call fcn.0042704a
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret