Function at 0x40cc30
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x451190
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5c
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], 1
cmp dword [eax - 8], 0x30
jg 0x40d2d4
jp 0x40cc68
jnp 0x40cc68
lea esi, [ebx + 0x7a]
add al, 0x7b
add cl, byte [ebp + 0x7b047a73]
jp 0x40cc6e
jnp 0x40cc6e
lea esi, [ebx + 0x7a]
add al, 0x7b
jp 0x40cc74
jnp 0x40cc74
add cl, byte [ebp + 0x7b047a73]
lea esi, [ebx + 0x7a]
add al, 0x7b
jp 0x40cc7a
jnp 0x40cc7a
add cl, byte [ebp + 0xcb973]
lea esi, [ebx - 0x47]
or al, 0
mov ecx, pe_nt_image_headers32
add byte [eax], al
xor eax, eax
lea edi, [ebp - 0x68]
rep stosd dword es:[edi], eax
jp 0x40cc8c
jnp 0x40cc8c
lea esi, [ebx + 0x33]
leave
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
jp 0x40cca0
jnp 0x40cca0
lea esi, [ebx - 0x75]
push ebp
or byte [ebx + 0x45648835], cl
add byte [edx - 0x73], dl
inc ebp
fsubr dword [eax + 0x5c]
add al, 0x46
add byte [eax - 1], dl
salc
mov edx, dword [ebp + 8]
mov esi, dword [sym.imp.msvcrt.dll_sprintf]
push edx
lea eax, [ebp - 0x28]
push 0x46045c
push eax
call esi
jp 0x40ccbb
jnp 0x40ccbb
lea esi, [ebx - 0x75]
dec ebp
or al, 0x8d
push ebp
cwde
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0x68]
push ecx
push 0x46045c
push edx
call esi
add esp, 0x18
jp 0x40ccd3
jnp 0x40ccd3
lea esi, [ebx - 0x75]
sbb eax, sym.imp.msvcrt.dll_atoi
mov ebx, dword [sym.imp.msvcrt.dll_atoi]
mov ecx, 9
mov edi, 0x460768
lea esi, [ebp - 0x68]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ce14
mov eax, dword [0x474138]
test eax, eax
je 0x40cfbe
mov ecx, 5
lea edi, [ebp - 0x28]
mov esi, 0x474128
xor edx, edx
repe cmpsw word [esi], word es:[edi]
jne 0x40cfbe
jp 0x40cd1b
jnp 0x40cd1b
lea esi, [ebx + 0x7a]
add al, 0x7b
add cl, byte [ebp + 0x7b047a73]
jp 0x40cd21
jnp 0x40cd21
lea esi, [ebx + 0x7a]
add al, 0x7b
jp 0x40cd27
jnp 0x40cd27
add cl, byte [ebp - 0x763fcc8d]
inc ebp
enter 0x4589, 0xffffffffffffffcc
lea esi, [ebx + 0x33]
ror byte [ecx + 0x4589c845], 0xcc
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
jp 0x40cd3b
jnp 0x40cd3b
lea esi, [ebx + 0x66]
mov ecx, dword [ebp - 0x5f]
mov cx, word [ebp - 0x5f]
mov dl, byte [ebp - 0x5d]
mov word [ebp - 0x38], cx
mov byte [ebp - 0x36], dl
jp 0x40cd4f
jnp 0x40cd4f
lea esi, [ebx - 0x73]
inc ebp
enter 0xffffffffffffff50, 0xffffffffffffffd3
lea eax, [ebp - 0x38]
push eax
call ebx
mov byte [ebp - 0xe], al
jp 0x40cd5e
jnp 0x40cd5e
lea esi, [ebx + 0x33]
leave
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
jp 0x40cd72
jnp 0x40cd72
lea esi, [ebx + 0x66]
mov edx, dword [ebp - 0x5c]
mov dx, word [ebp - 0x5c]
mov al, byte [ebp - 0x5a]
mov word [ebp - 0x38], dx
mov byte [ebp - 0x36], al
jp 0x40cd86
jnp 0x40cd86
lea esi, [ebx - 0x73]
dec ebp
enter 0xffffffffffffff51, 0xffffffffffffffd3
lea ecx, [ebp - 0x38]
push ecx
call ebx
add esp, 8
mov byte [ebp - 0xd], al
jp 0x40cd98
jnp 0x40cd98
lea esi, [ebx + 0x66]
mov edx, dword [ebp - 0xe]
mov dx, word [ebp - 0xe]
mov word [0x474120], dx
jp 0x40cda9
jnp 0x40cda9
lea esi, [ebx - 0x39]
add eax, 0x474114
add dword [eax], eax
add byte [eax], al
mov dword [0x474114], 1
jp 0x40cdb9
jnp 0x40cdb9
lea esi, [ebx - 1]
adc eax, sym.imp.kernel32.dll_GetTickCount
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [0x474118], eax
jp 0x40cdca
jnp 0x40cdca
lea esi, [ebx + 0x68]
add byte [eax + eax], al
add al, ch
xchg edx, eax
add al, 0
push 0x400
call sub.mfc42.dll_operatornew
mov esi, eax
jne 0x40cddc
je 0x40cddc
mov eax, dword [ebp + 0x6a]
add byte [eax + 4], ch
add al, byte [esi]
push 0
push 0x460204
push 0x460838
push 2
push esi
push 1
call fcn.004191c0
mov eax, dword [0x55eea8]
add esp, 0x1c
push esi
push 0x11
push 0xbd3
push eax
call dword [sym.imp.user32.dll_PostMessageA]
jne 0x40ce0f
je 0x40ce0f
mov eax, dword [ebp - 0x17]
stosb byte es:[edi], al
add dword [eax], eax
add byte [ecx + 9], bh
jmp 0x40cfbe
mov ecx, 9
mov edi, 0x4607b4
lea esi, [ebp - 0x68]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40cfbe
jp 0x40ce31
jnp 0x40ce31
lea esi, [ebx - 0x5f]
or byte [ecx + 0x47], al
add byte [ebp - 0x7f7bf040], al
add dword [eax], eax
add byte [edx + 4], bh
mov eax, dword [0x474108]
test eax, eax
je 0x40cfbe
jp 0x40ce44
jnp 0x40ce44
lea esi, [ebx - 0x77]
push ebp
invalid
mov dword [ebp - 0x10], edx
mov eax, 0x474068
mov ecx, 5
mov edi, eax
lea esi, [ebp - 0x28]
xor edx, edx
repe cmpsw word [esi], word es:[edi]
je 0x40ce73
mov esi, dword [ebp - 0x10]
add eax, 0x10
inc esi
cmp eax, 0x474108
mov dword [ebp - 0x10], esi
jl 0x40ce4c
jmp 0x40d2d4
jp 0x40ce79
jnp 0x40ce79
lea esi, [ebx + 0x7a]
add al, 0x7b
add cl, byte [ebp + 0x7b047a73]
jp 0x40ce7f
jnp 0x40ce7f
lea esi, [ebx + 0x7a]
add al, 0x7b
jp 0x40ce85
jnp 0x40ce85
add cl, byte [ebp - 0x10f7478d]
lea esi, [ebx - 0x48]
or bh, ch
mov eax, 0x55ef08
push ebp
add byte [ecx + 5], bh
mov ecx, 5
mov edi, eax
lea esi, [ebp - 0x28]
xor edx, edx
repe cmpsw word [esi], word es:[edi]
je 0x40d175
add eax, 0x3c
cmp eax, 0x55f2c8
jl 0x40ce8a
jp 0x40ceaf
jnp 0x40ceaf
lea esi, [ebx + 0x7a]
add al, 0x7b
add cl, byte [ebp + 0x7b047a73]
jp 0x40ceb5
jnp 0x40ceb5
lea esi, [ebx + 0x7a]
add al, 0x7b
jp 0x40cebb
jnp 0x40cebb
add cl, byte [ebp - 0x763fcc8d]
inc ebp
enter 0x4589, 0xffffffffffffffcc
lea esi, [ebx + 0x33]
ror byte [ecx + 0x4589c845], 0xcc
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
jp 0x40cecf
jnp 0x40cecf
lea esi, [ebx + 0x66]
mov ecx, dword [ebp - 0x5f]
mov cx, word [ebp - 0x5f]
mov dl, byte [ebp - 0x5d]
mov word [ebp - 0x38], cx
mov byte [ebp - 0x36], dl
jp 0x40cee3
jnp 0x40cee3
lea esi, [ebx - 0x73]
inc ebp
enter 0xffffffffffffff50, 0xffffffffffffffd3
lea eax, [ebp - 0x38]
push eax
call ebx
mov dword [ebp - 0x18], eax
jp 0x40cef2
jnp 0x40cef2
lea esi, [ebx + 0x33]
leave
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
jp 0x40cf06
jnp 0x40cf06
lea esi, [ebx + 0x66]
mov edx, dword [ebp - 0x5c]
mov dx, word [ebp - 0x5c]
mov al, byte [ebp - 0x5a]
mov word [ebp - 0x38], dx
mov byte [ebp - 0x36], al
jp 0x40cf1a
jnp 0x40cf1a
lea esi, [ebx - 0x73]
dec ebp
enter 0xffffffffffffff51, 0xffffffffffffffd3
lea ecx, [ebp - 0x38]
push ecx
call ebx
add esp, 8
jp 0x40cf29
jnp 0x40cf29
lea esi, [ebx + 0x7a]
jae 0x40cfa4
jp 0x40cf2f
add al, 0x7b
add cl, byte [ebp + 0x7b047a73]
jnp 0x40cf2f
lea esi, [ebx + 0x7a]
add al, 0x7b
jp 0x40cf35
jnp 0x40cf35
add cl, byte [ebp - 0xf8a748d]
lea esi, [ebx - 0x75]
jne 0x40cf28
mov esi, dword [ebp - 0x10]
mov dl, byte [ebp - 0x18]
mov byte [esi*2 + 0x473fdc], dl
jp 0x40cf48
jnp 0x40cf48
lea esi, [ebx - 0x78]
add al, 0x75
fnstsw word [edi]
inc edi
add byte [edx + 4], bh
mov byte [esi*2 + 0x473fdd], al
jp 0x40cf55
jnp 0x40cf55
lea esi, [ebx - 0x39]
add al, 0xb5
invalid
mov dword [esi*4 + 0x473ff0], 1
jp 0x40cf66
jnp 0x40cf66
lea esi, [ebx - 1]
adc eax, sym.imp.kernel32.dll_GetTickCount
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esi*4 + 0x473fb4], eax
jp 0x40cf79
jnp 0x40cf79
lea esi, [ebx + 0x68]
add byte [eax + eax], al
add al, ch
jecxz 0x40cfad
push 0x400
call sub.mfc42.dll_operatornew
add al, 0
mov esi, eax
jne 0x40cf8b
je 0x40cf8b
mov eax, dword [ebp + 0x6a]
add byte [eax + 4], ch
add al, byte [esi]
push 0
push 0x460204
push 0x46081c
push 2
push esi
push 1
call fcn.004191c0
mov eax, dword [0x55eea8]
add esp, 0x1c
push esi
push 0x11
push 0xbd3
push ebp
add byte [ebx + 0x6a561cc4], al
adc dword [eax - 0x2d], ebp
or eax, dword [eax]
add byte [eax - 1], dl
adc eax, sym.imp.user32.dll_PostMessageA
ror dword [ebx], cl
add byte [eax], al
push eax
call dword [sym.imp.user32.dll_PostMessageA]
jne 0x40cfbe
je 0x40cfbe
mov eax, dword [ebp - 0x47]
or dword [eax], eax
add byte [eax], al
mov ecx, 9
mov edi, 0x460774
lea esi, [ebp - 0x68]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d120
jp 0x40cfdb
jnp 0x40cfdb
lea esi, [ebx - 0x5f]
cmp byte [ecx + 0x47], al
add byte [ebp + 0x38840fc0], al
add dword [eax], eax
add byte [ecx + 5], bh
mov eax, dword [0x474138]
test eax, eax
je 0x40d120
mov ecx, 5
lea edi, [ebp - 0x28]
mov esi, 0x474128
xor eax, eax
repe cmpsw word [esi], word es:[edi]
jne 0x40d120
push 0x400
call sub.mfc42.dll_operatornew
mov esi, eax
jne 0x40d012
je 0x40d012
mov eax, dword [ebp + 0x6a]
add byte [eax + 4], ch
add al, byte [esi]
push 0
push 0x460204
push 0x4607fc
push 2
push esi
push 1
call fcn.004191c0
mov ecx, dword [0x55eea8]
add esp, 0x1c
push esi
push 0x11
push 0xbd3
push ecx
call dword [sym.imp.user32.dll_PostMessageA]
jne 0x40d046
je 0x40d046
mov eax, dword [ebp + 0x7a]
add al, 0x7b
add cl, byte [ebp + 0x7b047a73]
jp 0x40d04c
jnp 0x40d04c
lea esi, [ebx + 0x7a]
add al, 0x7b
jp 0x40d052
jnp 0x40d052
add cl, byte [ebp - 0x762dcc8d]
push ebp
enter 0x5589, 0xffffffffffffffcc
lea esi, [ebx + 0x33]
ror byte [ecx + 0x5589c855], cl
int3
xor edx, edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
jp 0x40d066
jnp 0x40d066
lea esi, [ebx + 0x66]
mov eax, dword [ebp - 0x5f]
mov ax, word [ebp - 0x5f]
mov cl, byte [ebp - 0x5d]
mov word [ebp - 0x38], ax
mov byte [ebp - 0x36], cl
jp 0x40d07a
jnp 0x40d07a
lea esi, [ebx - 0x73]
push ebp
enter 0xffffffffffffff52, 0xffffffffffffffd3
lea edx, [ebp - 0x38]
push edx
call ebx
mov dword [ebp - 0x10], eax
jp 0x40d089
jnp 0x40d089
lea esi, [ebx + 0x33]
ror byte [ecx + 0x4589c845], 0xcc
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
jp 0x40d09d
jnp 0x40d09d
lea esi, [ebx + 0x66]
mov ecx, dword [ebp - 0x5c]
mov cx, word [ebp - 0x5c]
mov dl, byte [ebp - 0x5a]
mov word [ebp - 0x38], cx
mov byte [ebp - 0x36], dl
jp 0x40d0b1
jnp 0x40d0b1
lea esi, [ebx - 0x73]
inc ebp
enter 0xffffffffffffff50, 0xffffffffffffffd3
lea eax, [ebp - 0x38]
push eax
call ebx
mov dword [ebp - 0x14], eax
jp 0x40d0c0
jnp 0x40d0c0
lea esi, [ebx + 0x33]
leave
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
jp 0x40d0d4
jnp 0x40d0d4
lea esi, [ebx + 0x66]
mov edx, dword [ebp - 0x59]
mov dx, word [ebp - 0x59]
mov al, byte [ebp - 0x57]
mov word [ebp - 0x38], dx
mov byte [ebp - 0x36], al
jp 0x40d0e8
jnp 0x40d0e8
lea esi, [ebx - 0x73]
dec ebp
enter 0xffffffffffffff51, 0xffffffffffffffd3
lea ecx, [ebp - 0x38]
push ecx
call ebx
add esp, 0xc
jp 0x40d0f7
jnp 0x40d0f7
lea esi, [ebx - 0x76]
push ebp
invalid
mov dl, byte [ebp - 0x10]
mov byte [0x47411e], dl
jp 0x40d106
jnp 0x40d106
lea esi, [ebx - 0x76]
dec ebp
in al, dx
mov cl, byte [ebp - 0x14]
mov byte [0x47411d], cl
jp 0x40d115
jnp 0x40d115
lea esi, [ebx - 0x5e]
sbb al, 0x41
inc edi
add byte [edx + 4], bh
mov byte [0x47411c], al
jp 0x40d120
jnp 0x40d120
lea esi, [ebx - 0x47]
or dword [eax], eax
add byte [eax], al
mov ecx, 9
mov edi, 0x46078c
lea esi, [ebp - 0x68]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d1f8
jp 0x40d13d
jnp 0x40d13d
lea esi, [ebx - 0x5f]
or byte [ecx + 0x47], al
add byte [ebp - 0x517bf040], al
add byte [eax], al
add byte [edx + 4], bh
mov eax, dword [0x474108]
test eax, eax
je 0x40d1f8
jp 0x40d150
jnp 0x40d150
lea esi, [ebx - 0x48]
push 0xb9004740
add eax, 0x8b000000
clc
mov eax, 0x474068
mov ecx, 5
mov edi, eax
lea esi, [ebp - 0x28]
xor edx, edx
repe cmpsw word [esi], word es:[edi]
je 0x40d180
add eax, 0x10
cmp eax, 0x474108
jl 0x40d155
jmp 0x40d2d4
jp 0x40d17b
jnp 0x40d17b
lea esi, [ebx - 0x17]
invalid
jmp 0x40cfbe
jp 0x40d186
jnp 0x40d186
lea esi, [ebx + 0x7a]
add al, 0x7b
add cl, byte [ebp + 0x4006873]
add byte [eax], al
jp 0x40d18c
jnp 0x40d18c
lea esi, [ebx + 0x68]
add byte [eax + eax], al
add al, ch
shr byte [edx], 1
add al, 0
push 0x400
call sub.mfc42.dll_operatornew
mov esi, eax
jne 0x40d19e
je 0x40d19e
mov eax, dword [ebp + 0x6a]
add byte [eax + 4], ch
add al, byte [esi]
push 0
push 0x460204
push 0x4607dc
push 2
push esi
push 1
call fcn.004191c0
mov eax, dword [0x55eea8]
add esp, 0x1c
push esi
push 0x11
push 0xbd3
push eax
call dword [sym.imp.user32.dll_PostMessageA]
jne 0x40d1d1
je 0x40d1d1
mov eax, dword [ebp - 0x5f]
cld
inc ecx
inc edi
add byte [ebp - 0x5ee18b40], al
clc
inc ecx
inc edi
add byte [ebp + 0x6a1574c0], al
add al, ch
push es
dec esp
add al, byte [eax]
mov eax, dword [0x4741fc]
test eax, eax
je 0x40d1f8
mov eax, dword [0x4741f8]
test eax, eax
je 0x40d1f8
push 0
call fcn.00431df0
add esp, 4
jp 0x40d1f3
jnp 0x40d1f3
lea esi, [ebx - 0x17]
fadd qword [eax]
add byte [eax], al
jmp 0x40d2d4
mov ecx, 9
mov edi, 0x460780
lea esi, [ebp - 0x68]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d2d4
jp 0x40d215
jnp 0x40d215
lea esi, [ebx - 0x5f]
or byte [ecx + 0x47], al
add byte [ebp - 0x4d7bf040], al
add byte [eax], al
add byte [edx + 4], bh
mov eax, dword [0x474108]
test eax, eax
je 0x40d2d4
jp 0x40d228
jnp 0x40d228
lea esi, [ebx - 0x48]
push 0xb9004740
add eax, 0x8b000000
clc
mov eax, 0x474068
mov ecx, 5
mov edi, eax
lea esi, [ebp - 0x28]
xor ebx, ebx
repe cmpsw word [esi], word es:[edi]
je 0x40d24e
add eax, 0x10
inc edx
cmp eax, 0x474108
jl 0x40d22d
jmp 0x40d2d4
jp 0x40d254
jnp 0x40d254
lea esi, [ebx + 0x7a]
add al, 0x7b
add cl, byte [ebp - 0x6ac37c8d]
jp 0x40d25a
jnp 0x40d25a
lea esi, [ebx - 0x7d]
cmp al, 0x95
cmp dword [edx*4 + 0x473f8c], 3
jne 0x40d275
invalid
xor eax, eax
mov dword [edx*4 + 0x473f8c], eax
jp 0x40d273
jnp 0x40d273
lea esi, [ebx - 0x15]
add dh, byte [ebx]
shl byte [ebx + 0x474040], 0x7a
add al, 0x7b
add cl, byte [ebp - 0x6afb768d]
jmp 0x40d277
xor eax, eax
mov dword [0x474040], eax
jp 0x40d282
jnp 0x40d282
lea esi, [ebx - 0x77]
add al, 0x95
mov dword [edx*4 + 0x474018], eax
jp 0x40d28f
sbb byte [eax + 0x47], al
add byte [edx + 4], bh
jnp 0x40d28f
lea esi, [ebx + 0x68]
add byte [eax + eax], al
add al, ch
int 0x29
add al, 0
push 0x400
call sub.mfc42.dll_operatornew
mov esi, eax
jne 0x40d2a1
je 0x40d2a1
mov eax, dword [ebp + 0x6a]
add byte [eax + 4], ch
add al, byte [esi]
push 0
push 0x460204
push 0x4607c0
push 2
push esi
push 1
call fcn.004191c0
mov eax, dword [0x55eea8]
add esp, 0x1c
push esi
push 0x11
push 0xbd3
push eax
call dword [sym.imp.user32.dll_PostMessageA]
jne 0x40d2d4
je 0x40d2d4
mov eax, dword [ebp - 0x73]
dec ebp
or dh, al
inc ebp
cld
add al, ch
and byte [ecx], ch
add al, 0
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0
call fcn.0044fc00
lea ecx, [ebp + 0xc]
mov dword [ebp - 4], 0xffffffff
call fcn.0044fc00
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret