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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x1d8
push ebx
push esi
push edi
lea ecx, [ebp - 8]
call fcn.0040cff1
lea ecx, [ebp - 8]
call fcn.0040cfe5
neg eax
sbb eax, eax
inc eax
push 0x3e8
lea ecx, [ebp + 0x14]
mov dword [ebp + 0x10], eax
call fcn.0042aed6
mov esi, dword [ebp + 0x78]
lea eax, [ebp + 0x58]
xor ebx, ebx
add esi, 0xc
push eax
mov byte [ebp + 0x6f], bl
mov dword [ebp + 0x58], esi
call fcn.00403adb
pop ecx
lea ecx, [ebp + 0x1c]
call fcn.0042aeb8
lea ecx, [ebp + 4]
call fcn.0042aeb8
lea ecx, [ebp + 0x64]
call fcn.0042aeb8
lea ecx, [ebp + 0x30]
call fcn.0042aeb8
lea ecx, [ebp + 0x34]
call fcn.0042aeb8
lea ecx, [ebp + 0x5c]
call fcn.0042aeb8
lea ecx, [ebp + 0x24]
call fcn.0042aeb8
lea ecx, [ebp + 0x18]
call fcn.0042aeb8
lea ecx, [ebp + 0x40]
call fcn.0042aeb8
lea ecx, [ebp + 0x20]
call fcn.0042aeb8
or edi, 0xffffffff
cmp word [esi], 0x2a
mov dword [ebp + 0x44], edi
sete byte [ebp + 0x57]
cmp byte [ebp + 0x57], bl
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x3c], edi
mov dword [ebp - 4], ebx
mov dword [ebp], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
je 0x451dcc
mov ecx, dword [ebp + 0x58]
inc esi
inc esi
xor edx, edx
mov dx, word [ecx]
mov word [ecx], bx
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x50], edx
jmp 0x451ae5
cmp ax, 0x2a
je 0x451aed
inc esi
inc esi
mov ax, word [esi]
cmp ax, bx
jne 0x451add
cmp dx, bx
mov dword [ebp + 0x68], ecx
je 0x451afb
add ecx, 2
mov dword [ebp + 0x68], ecx
lea eax, [ebp + 0x68]
push eax
call fcn.0042609c
mov edi, dword [ebp + 0x68]
push 4
lea eax, [ebp + 0x68]
push eax
push str._map
call fcn.0042c7e8
add esp, 0x10
test al, al
je 0x451b3a
push 0x20
pop eax
mov word [edi + 6], ax
mov word [edi + 4], ax
mov word [edi + 2], ax
mov word [edi], ax
mov edi, dword [ebp + 0x68]
mov dword [ebp + 0x28], 1
push 4
lea eax, [ebp + 0x68]
push eax
push str._exe
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x451b67
push 0x20
pop eax
mov byte [ebp + 0x6f], 1
mov word [edi + 6], ax
mov word [edi + 4], ax
mov word [edi + 2], ax
mov word [edi], ax
mov eax, esi
sub eax, dword [ebp + 0x60]
lea ecx, [ebp + 0x1c]
sar eax, 1
push eax
push dword [ebp + 0x60]
call fcn.00409fd6
cmp word [esi], 0x2a
jne 0x451dc0
push 2
pop edi
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x78]
add esi, edi
push eax
mov dword [ebp + 0x78], esi
call fcn.0042f2aa
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
pop ecx
je 0x451ba6
add dword [ebp + 0x78], edi
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f2aa
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
pop ecx
je 0x451bc0
add dword [ebp + 0x78], edi
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f2aa
mov esi, dword [ebp + 0x78]
cmp word [esi], bx
pop ecx
pop ecx
je 0x451bd9
add esi, edi
mov ecx, esi
jmp 0x451be5
cmp ax, 0x2a
je 0x451bed
add esi, edi
mov ax, word [esi]
cmp ax, bx
jne 0x451bdd
mov eax, esi
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [ebp + 0x20]
call fcn.00409fd6
cmp word [esi], bx
je 0x451c04
add esi, edi
mov ecx, esi
jmp 0x451c10
cmp ax, 0x2a
je 0x451c18
add esi, edi
mov ax, word [esi]
cmp ax, bx
jne 0x451c08
sub esi, ecx
sar esi, 1
push esi
push ecx
lea ecx, [ebp + 0x40]
call fcn.00409fd6
mov esi, 0x800
push esi
lea ecx, [ebp + 0x68]
call fcn.0042aed6
push 0x5c
push ebx
push dword [ebp + 0x20]
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
cmp eax, ebx
jne 0x451c49
mov eax, dword [ebp + 0x20]
jmp 0x451c4b
add eax, edi
push ebx
mov edi, 0x200
push edi
push dword [ebp + 0x48]
mov dword [ebp + 0x78], eax
push dword [ebp + 0x44]
call fcn.00467640
push ebx
push edi
push dword [ebp + 0x3c]
mov dword [ebp + 0x44], eax
push dword [ebp + 0x38]
mov dword [ebp + 0x48], edx
call fcn.00467640
push dword [ebp + 0x48]
mov edi, eax
push dword [ebp + 0x44]
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp + 0x3c], edx
call fcn.00434504
push dword [ebp + 0x3c]
lea eax, [ebp - 0x168]
push edi
push eax
call fcn.00434504
mov eax, dword [ebp + 0x40]
add esp, 0x18
cmp word [eax], bx
jne 0x451cca
push esi
lea ecx, [ebp + 0x40]
call fcn.0042aeff
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x6c]
push eax
push dword [ebp + 0x78]
push str._s_s_s
push dword [ebp + 0x40]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
mov eax, dword [ebp - 4]
xor edi, edi
inc edi
and eax, edi
or eax, ebx
mov eax, 0x47a8e8
jne 0x451ce0
mov eax, 0x481ddc
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x168]
push ecx
push dword [ebp + 0x20]
push dword [ebp + 0x40]
push eax
push str.THREAD___EXEC___exe:10INDATA___MyName0____w:60000__s_shm:_s___s___s___s
push dword [ebp + 0x68]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x1c
push esi
lea ecx, [ebp + 0x64]
call fcn.0042aeff
push dword [ebp + 0x40]
push 0x47a8e8
push str.imdisk__a__t_proxy__s__o_shm__f__s
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_wsprintfW]
mov ax, word [ebp + 0x50]
mov ecx, dword [ebp + 0x58]
mov word [ecx], ax
lea eax, [ebp + 0x58]
push eax
call fcn.0042609c
push 0xffffffffffffffff
lea eax, [ebp + 0x58]
push eax
push 0x481cf4
call fcn.0042c7e8
mov esi, dword [ebp + 0x58]
add esp, 0x20
push esi
lea ecx, [ebp + 0x64]
call fcn.0042af26
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x7c]
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
mov dword [ebp + 0x78], eax
call fcn.0041ff01
mov ecx, dword [ebp + 0x7c]
push 0xc8
mov word [esi], bx
mov dword [ebp + 0x28], edi
call fcn.0040b352
lea ecx, [ebp + 0x68]
call fcn.0042602e
lea eax, [ebp + 0x58]
push eax
call fcn.0042609c
push 4
push dword [ebp + 0x58]
push str._gui
call fcn.00426f2f
add esp, 0x10
test al, al
je 0x4521f0
mov ecx, dword [ebp + 0x7c]
push 0xffffffffffffff9c
push 0x47a8e8
push ebx
push str.imdisk.cpl_
call fcn.0043f523
jmp 0x4523af
mov ax, word [ebp + 0x50]
mov ecx, dword [ebp + 0x58]
mov word [ecx], ax
jmp 0x451d83
push 4
lea eax, [ebp + 0x58]
push eax
push str._exe
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x451de7
mov byte [ebp + 0x6f], 1
push 0x2c
pop esi
push esi
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d669
mov eax, dword [ebp + 0x30]
mov word [eax], bx
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x451eb7
add dword [ebp + 0x78], 2
push esi
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d669
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x451eb7
add dword [ebp + 0x78], 2
push esi
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d669
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x451eb7
add dword [ebp + 0x78], 2
push esi
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d669
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x451eb7
add dword [ebp + 0x78], 2
push esi
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d669
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x451eb7
add dword [ebp + 0x78], 2
push esi
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d669
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x451eb7
add dword [ebp + 0x78], 2
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d7b6
add esp, 0xc
push 6
lea ecx, [ebp + 0x5c]
mov byte [ebp + 0x7b], bl
call fcn.0042aeff
mov eax, dword [ebp + 0x5c]
mov word [eax + 2], 0x3a
mov eax, dword [ebp + 0x5c]
mov word [eax + 4], bx
mov eax, dword [ebp + 0x5c]
cmp word [eax], bx
je 0x451f38
push eax
call fcn.004662e5
test eax, eax
pop ecx
je 0x451f30
mov eax, dword [ebp + 0x5c]
lea ecx, [ebp + 0x50]
mov dword [ebp - 0x1c], str.imdisk
mov dword [ebp - 0x18], 0x481cc4
mov dword [ebp - 0x14], 0x481cbc
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ebx
call fcn.0042aeb8
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp - 0x1c]
push eax
push 4
call fcn.0040e729
add esp, 0xc
neg eax
sbb al, al
inc al
lea ecx, [ebp + 0x50]
mov byte [ebp + 0x7b], al
call fcn.0042602e
mov eax, dword [ebp + 0x5c]
cmp word [eax], bx
jne 0x451f57
push 0x47cd7c
lea ecx, [ebp + 0x5c]
call fcn.004346c9
mov eax, dword [ebp + 0x5c]
cmp word [eax], bx
jne 0x451f57
mov ebx, 0x80070057
jmp 0x4523af
push 0x3c
lea ecx, [ebp + 0x68]
call fcn.0042aed6
mov eax, dword [ebp + 0x30]
cmp word [eax], bx
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x3c], edi
mov esi, edi
mov dword [ebp + 0x60], eax
je 0x4521e3
lea eax, [ebp + 0x60]
push eax
call fcn.0042609c
mov eax, dword [ebp + 0x60]
mov ax, word [eax]
or ax, 0x20
cmp ax, 0x70
pop ecx
jne 0x451fa3
lea eax, [ebp + 0x4c]
jmp 0x451fb7
cmp ax, 0x6c
jne 0x451fae
lea eax, [ebp + 0x44]
jmp 0x451fb7
cmp ax, 0x68
jne 0x451fcf
lea eax, [ebp + 0x38]
add dword [ebp + 0x60], 2
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0042d9d2
mov eax, dword [ebp + 0x60]
cmp word [eax], bx
pop ecx
pop ecx
jne 0x451f84
cmp dword [ebp + 0x50], ebx
jl 0x45200b
jg 0x451fdb
cmp dword [ebp + 0x4c], ebx
jbe 0x45200b
push ebx
call fcn.0040f7ea
pop ecx
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
push edx
push eax
call fcn.00467ab0
push ebx
push 0x64
push edx
push eax
call fcn.00467640
add eax, 0xfffff
adc edx, ebx
mov cl, 0x14
call fcn.00467130
mov esi, eax
mov edi, edx
cmp edi, dword [ebp + 0x48]
jg 0x45201d
jl 0x452017
cmp esi, dword [ebp + 0x44]
jae 0x45201d
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp + 0x48]
mov eax, dword [ebp + 0x3c]
cmp eax, ebx
jl 0x45204a
jg 0x45202b
cmp dword [ebp + 0x38], ebx
jbe 0x45204a
cmp edi, eax
jl 0x45203b
jg 0x452036
cmp esi, dword [ebp + 0x38]
jbe 0x45203b
mov esi, dword [ebp + 0x38]
mov edi, eax
cmp edi, ebx
jg 0x45205c
jl 0x452045
cmp esi, ebx
ja 0x45204a
mov esi, dword [ebp + 0x38]
mov edi, eax
cmp edi, ebx
jl 0x4521e3
jg 0x45205c
cmp esi, ebx
jb 0x4521e3
mov ecx, dword [ebp + 0x5c]
cmp word [ecx], bx
je 0x4521e3
cmp edi, ebx
jg 0x452077
jl 0x452072
cmp esi, ebx
ja 0x452077
xor esi, esi
inc esi
xor edi, edi
cmp dword [ebp + 0x48], ebx
jg 0x4520b2
jl 0x452083
cmp dword [ebp + 0x44], ebx
ja 0x4520b2
cmp eax, ebx
jg 0x4520b2
jl 0x45208e
cmp dword [ebp + 0x38], ebx
ja 0x4520b2
cmp dword [ebp + 0x50], ebx
jl 0x4520b2
jg 0x45209a
cmp dword [ebp + 0x4c], ebx
jbe 0x4520b2
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
push dword [ebp + 0x68]
call fcn.00434504
add esp, 0xc
push 0x481cb4
jmp 0x4520c4
push edi
push esi
push dword [ebp + 0x68]
call fcn.0043451e
add esp, 0xc
push 0x481cac
lea ecx, [ebp + 0x68]
call fcn.0042af26
cmp byte [ebp + 0x7b], bl
mov eax, str.imdisk___e
jne 0x4520db
mov eax, str.imdisk___a
push eax
lea ecx, [ebp + 0x64]
call fcn.004346c9
mov eax, dword [ebp + 8]
and eax, 1
or eax, ebx
je 0x4520fb
push str.__o_awe
lea ecx, [ebp + 0x64]
call fcn.0042af26
mov esi, dword [ebp + 0x68]
cmp word [esi], bx
je 0x452119
push 0x481c5c
lea ecx, [ebp + 0x64]
call fcn.0042af26
push esi
lea ecx, [ebp + 0x64]
call fcn.0042af26
mov eax, dword [ebp + 0x5c]
cmp word [eax], bx
je 0x452139
push 0x481c50
lea ecx, [ebp + 0x64]
call fcn.0042af26
push dword [ebp + 0x5c]
lea ecx, [ebp + 0x64]
call fcn.0042af26
mov eax, dword [ebp + 0x34]
cmp word [eax], bx
jne 0x45214d
mov eax, dword [ebp + 0x24]
cmp word [eax], bx
je 0x4521d8
push str.___p__
lea ecx, [ebp + 0x64]
call fcn.0042af26
mov eax, dword [ebp + 0x34]
cmp word [eax], bx
je 0x45217a
push str.__FS:
lea ecx, [ebp + 0x64]
call fcn.0042af26
push dword [ebp + 0x34]
lea ecx, [ebp + 0x64]
call fcn.0042af26
mov eax, dword [ebp + 0x24]
cmp word [eax], bx
je 0x45219a
push str.__V:
lea ecx, [ebp + 0x64]
call fcn.0042af26
push dword [ebp + 0x24]
lea ecx, [ebp + 0x64]
call fcn.0042af26
push dword [ebp + 0x34]
push str.NTFS
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x4521cb
mov eax, dword [ebp + 0x18]
mov ax, word [eax]
cmp ax, bx
je 0x4521cb
cmp ax, 0x30
je 0x4521cb
push 0x4808b4
lea ecx, [ebp + 0x64]
call fcn.0042af26
push str.___Q__Y__
lea ecx, [ebp + 0x64]
call fcn.0042af26
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x78], eax
jmp 0x451d7b
lea ecx, [ebp + 0x68]
call fcn.0042602e
jmp 0x451f4d
push 0x24
fldz
pop ecx
fstp qword [ebp - 0x104]
xor eax, eax
lea edi, [ebp - 0xfc]
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, 0xc8
cmp byte [ebp + 0x57], bl
mov dword [ebp + 0x68], eax
mov byte [ebp + 0x56], bl
je 0x452235
push 2
push dword [ebp + 0x58]
push 0x481cf4
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x452235
mov byte [ebp + 0x56], 1
mov eax, dword [ebp + 0x28]
and dword [ebp + 0x2c], 0
or eax, dword [ebp + 0x2c]
jne 0x452246
cmp byte [ebp + 0x56], bl
je 0x452281
push 9
pop ecx
mov esi, str.imdisk___version
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x7c]
lea eax, [ebp - 0x30]
push eax
movsw word es:[edi], word [esi]
call fcn.00426242
test eax, eax
jne 0x452281
mov eax, dword [ebp + 0x28]
or eax, dword [ebp + 0x2c]
je 0x45227d
mov byte [ebp + 0x6f], 0x11
mov dword [ebp + 0x28], 0x11
mov dword [ebp + 0x2c], ebx
jmp 0x452281
or byte [ebp + 0x6f], 0x40
mov esi, dword [ebp + 0x78]
lea eax, [ebp + 0x50]
push eax
mov dword [ebp + 0x50], esi
call fcn.00403adb
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x104]
call fcn.0042d162
cmp dword [ebp - 0xd4], 1
jle 0x451f4d
xor eax, eax
cmp dword [ebp + 0x10], ebx
setne al
mov dword [ebp + 0x58], eax
cmp dword [ebp + 0x10], ebx
mov eax, dword [ebp - 0xd0]
mov dword [eax], str.imdisk
jne 0x4522e8
cmp byte [ebp + 0x6f], bl
jne 0x4522e8
lea eax, [ebp + 0x14]
push eax
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
call fcn.0040e729
add esp, 0xc
mov edi, eax
jmp 0x452317
push 0xffffffffffffffff
push str._Imdisk
lea ecx, [ebp + 0x78]
call fcn.0042605a
push dword [ebp + 0x50]
lea ecx, [ebp + 0x78]
call fcn.0042af26
push dword [ebp + 0x78]
mov ecx, dword [ebp + 0x7c]
call fcn.00426242
lea ecx, [ebp + 0x78]
mov edi, eax
call fcn.0042602e
mov eax, dword [ebp + 0x28]
or eax, dword [ebp + 0x2c]
je 0x452360
cmp edi, 3
jne 0x452360
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x68]
cmp eax, 0x1388
jae 0x452360
mov ecx, dword [ebp + 0x7c]
push 0xc8
call fcn.0040b352
push ebx
push esi
lea ecx, [ebp - 0x104]
call fcn.0042d162
cmp dword [ebp - 0xd4], 1
jg 0x4522b6
jmp 0x451f4d
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xcc], ebx
cmp word [eax], bx
je 0x4523a4
push edi
lea esi, [ebp - 0x48]
mov eax, esi
push 0x47f950
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [ebp + 0x14]
add esp, 0xc
cmp word [eax], 0x2a
jne 0x452398
lea esi, [eax + 2]
mov ecx, dword [ebp + 0x7c]
push esi
push dword [ebp + 0x1c]
call fcn.00429dbf
lea ecx, [ebp + 0x78]
call fcn.0042602e
mov ebx, dword [ebp + 0x58]
lea ecx, [ebp + 0x20]
call fcn.0042602e
lea ecx, [ebp + 0x40]
call fcn.0042602e
lea ecx, [ebp + 0x18]
call fcn.0042602e
lea ecx, [ebp + 0x24]
call fcn.0042602e
lea ecx, [ebp + 0x5c]
call fcn.0042602e
lea ecx, [ebp + 0x34]
call fcn.0042602e
lea ecx, [ebp + 0x30]
call fcn.0042602e
lea ecx, [ebp + 0x64]
call fcn.0042602e
lea ecx, [ebp + 4]
call fcn.0042602e
lea ecx, [ebp + 0x1c]
call fcn.0042602e
lea ecx, [ebp + 0x14]
call fcn.0042602e
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x70
leave
ret