Function at 0x403b47
Capabilities:
Check for time delay via gettickcount
Hide graphical window

Disassembly:
push 0x27c
mov eax, 0x425ae8
call fcn.00414e09
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
push 1
mov dword [ebp - 0x258], ecx
mov dword [ebp - 0x24c], eax
mov dword [0x4365d0], ecx
call fcn.00410874
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
pop ecx
test esi, esi
je 0x403b88
call edi
xor ebx, ebx
jmp 0x403b8c
xor ebx, ebx
mov esi, ebx
test esi, esi
jne 0x403b9e
call edi
cmp eax, 0x400
jne 0x403b9e
call fcn.00402415
push esi
call fcn.0040ffc1
pop ecx
lea ecx, [ebp - 0x1a8]
call fcn.0040c320
lea ecx, [ebp - 0x1a8]
mov dword [ebp - 4], ebx
call fcn.0040c860
push ebx
lea ecx, [ebp - 0x1a8]
call fcn.0040ccb0
test al, al
jne 0x403c0b
push 0x42f2d8
lea ecx, [ebp - 0x1f8]
call fcn.0040afe0
push 0x10
mov byte [ebp - 4], 1
push 0x42f2c4
mov ecx, eax
call fcn.0040b360
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 4], bl
call fcn.0040b0e0
jmp 0x40475b
lea ecx, [ebp - 0x1a8]
call fcn.0040c640
push 1
lea ecx, [ebp - 0x1a8]
call fcn.0040ccb0
test al, al
jne 0x403c44
push 0x42f398
lea ecx, [ebp - 0x1f8]
call fcn.0040afe0
push 0x10
mov byte [ebp - 4], 2
push 0x42f370
jmp 0x403be9
lea ecx, [ebp - 0x1a8]
call fcn.0040cca0
lea ecx, [ebp - 0x1a8]
call fcn.0040c480
push 2
lea ecx, [ebp - 0x1a8]
call fcn.0040ccb0
test al, al
jne 0x403c8b
push 0x42f430
lea ecx, [ebp - 0x1f8]
call fcn.0040afe0
push 0x10
mov byte [ebp - 4], 3
push 0x42f384
jmp 0x403be9
push 0x3c
call fcn.00410874
pop ecx
mov dword [ebp - 0x250], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x403caa
mov ecx, eax
call fcn.0040580b
jmp 0x403cac
mov eax, ebx
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x26c]
push ebx
push dword [ebp - 0x24c]
mov dword [0x4365b0], eax
call fcn.0040d350
push 0x42f4c8
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 5
call fcn.0040d720
test al, al
je 0x40470a
push 0x42f4d0
lea ecx, [ebp - 0x26c]
call fcn.0040d6f0
push 0x42f4cc
push eax
call fcn.00411492
pop ecx
pop ecx
test eax, eax
jne 0x40470a
push 0x42f4d4
lea ecx, [ebp - 0x26c]
call fcn.0040d720
test al, al
je 0x40470a
push ebx
push ebx
push 0x42f4d8
lea ecx, [ebp - 0x26c]
call fcn.0040d6f0
push eax
call fcn.004117c0
add esp, 0xc
cmp eax, 0xa0f36a1a
jne 0x40470a
push 0x8c2
call fcn.00405ba8
lea ecx, [ebp - 0x148]
call fcn.00404ce2
mov byte [ebp - 4], 7
call fcn.00404f76
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403e00
mov edi, ebx
push dword [esi]
lea ecx, [ebp - 0x13c]
push 0x70
call fcn.00405103
test eax, eax
push 1
pop eax
cmovne edi, eax
add esi, 4
cmp esi, dword [ebp - 0x144]
jne 0x403d77
test edi, edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x403e00
push 0x8cb
call fcn.00405ba8
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403dd4
push dword [esi]
call fcn.00410011
add esi, 4
pop ecx
cmp esi, dword [ebp - 0x144]
jne 0x403dbb
mov esi, dword [ebp - 0x148]
mov dword [ebp - 0x144], esi
test esi, esi
je 0x40474d
push esi
call fcn.0040ffc1
pop ecx
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x140], ebx
jmp 0x40474d
call fcn.004036ff
push 0x8cc
call fcn.00405ba8
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 8
push eax
call fcn.00405c06
mov esi, 0x42f588
push esi
call fcn.0040208a
pop ecx
push eax
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.004047ae
test eax, eax
je 0x403ebc
push 0x8cd
call fcn.00405ba8
push 0x42f5a0
lea ecx, [ebp - 0x1f8]
call fcn.0040afe0
push 0x10
push 0x42f58c
mov ecx, eax
mov byte [ebp - 4], 9
call fcn.0040b360
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 4], 8
call fcn.0040b0e0
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402143
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403dd4
push dword [esi]
call fcn.00410011
add esi, 4
pop ecx
cmp esi, dword [ebp - 0x144]
jne 0x403ea4
jmp 0x403dce
call fcn.00402bea
push 0x4b
call fcn.00406e42
test al, al
jne 0x403f1e
call edi
cmp eax, 0xb1c3e4b7
jne 0x403eda
call fcn.004027c6
push 0xb19
call fcn.00405ba8
call fcn.00403843
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402143
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403dd4
push dword [esi]
call fcn.00410011
add esi, 4
pop ecx
cmp esi, dword [ebp - 0x144]
jne 0x403f06
jmp 0x403dce
call fcn.004022ff
call fcn.00402a06
push eax
lea ecx, [ebp - 0x254]
call fcn.0040483f
mov byte [ebp - 4], 0xa
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403fb8
mov edi, ebx
push dword [esi]
lea ecx, [ebp - 0xcc]
push 0xa0
call fcn.00405103
test eax, eax
push 1
pop eax
cmovne edi, eax
add esi, 4
cmp esi, dword [ebp - 0x144]
jne 0x403f48
test edi, edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x403fb8
push 0x7fc
call fcn.00405ba8
push 3
pop edx
lea ecx, [ebp - 0x24c]
call fcn.00403791
push eax
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 0xc
call fcn.00404868
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x24c]
add ecx, 0xfffffff0
call fcn.004029ea
push 0x72d
jmp 0x403ff7
push 0x7fb
call fcn.00405ba8
push 2
pop edx
lea ecx, [ebp - 0x24c]
call fcn.00403791
push eax
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 0xb
call fcn.00404868
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x24c]
add ecx, 0xfffffff0
call fcn.004029ea
push 0x72e
call fcn.00405ba8
mov dword [0x4365bc], ebx
mov ebx, dword [ebp - 0x254]
push ecx
mov esi, esp
lea eax, [ebx - 0x10]
push eax
mov dword [ebp - 0x250], eax
call fcn.004049cd
add eax, 0x10
pop ecx
mov dword [esi], eax
call fcn.0040351d
cmp dword [0x4365bc], 0
mov esi, eax
pop ecx
je 0x404071
push 0x70c
call fcn.00405ba8
test esi, esi
jne 0x40406a
mov eax, dword [0x43659c]
test eax, eax
je 0x404063
push 0xa
call eax
test eax, eax
je 0x404063
cmp eax, 1
jne 0x40405c
push 0x70f
jmp 0x404076
push 0x710
jmp 0x404076
push 0x70e
jmp 0x404076
push 0x77a
jmp 0x404076
push 0x70d
call fcn.00405ba8
push 0x6e3
call fcn.00405ba8
push 3
call fcn.00406b9f
push 0xa73
call fcn.00405ba8
push 0x42f638
lea ecx, [ebp - 0x1f8]
call fcn.0040afe0
mov ecx, eax
mov byte [ebp - 4], 0xd
call fcn.0040b360
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x1f8]
mov dword [ebp - 0x24c], esi
call fcn.0040b0e0
test esi, esi
je 0x404144
push 0x42f650
lea ecx, [ebp - 0x248]
call fcn.0040afe0
mov ecx, eax
mov byte [ebp - 4], 0xe
call fcn.0040b360
push eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call esi
lea ecx, [ebp - 0x248]
mov dword [0x4365ac], eax
mov byte [ebp - 4], 0xa
call fcn.0040b0e0
push 0x42f670
lea ecx, [ebp - 0x248]
call fcn.0040afe0
mov ecx, eax
mov byte [ebp - 4], 0xf
call fcn.0040b360
push eax
push dword [ebp - 0x24c]
call esi
lea ecx, [ebp - 0x248]
mov dword [0x4365a8], eax
mov byte [ebp - 4], 0xa
call fcn.0040b0e0
push 0
push 0x402f6a
push 0
push 0x82
push dword [ebp - 0x258]
call dword [sym.imp.USER32.dll_CreateDialogParamA]
mov dword [0x4365d4], eax
test eax, eax
jne 0x4041d0
call edi
cmp eax, 0x40641687
jne 0x404175
call fcn.00402595
push 0x8ce
call fcn.00405ba8
call fcn.00403657
call fcn.00403843
call fcn.00402387
mov ecx, dword [ebp - 0x250]
call fcn.004029ea
xor ebx, ebx
lea ecx, [ebp - 0x2c]
push ebx
push 1
call fcn.00402143
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403dd4
push dword [esi]
call fcn.00410011
add esi, 4
pop ecx
cmp esi, dword [ebp - 0x144]
jne 0x4041b8
jmp 0x403dce
push 0xa74
call fcn.00405ba8
mov byte [ebp - 4], 0x10
cmp dword [0x4365c8], 0
jne 0x404246
movsd xmm1, qword [0x4365d8]
movsd xmm2, qword [0x4365e0]
movapd xmm0, xmm1
mulsd xmm0, qword [0x430510]
mov eax, dword [0x43659c]
mulsd xmm1, qword [0x430500]
cvttsd2si ecx, xmm0
movapd xmm0, xmm2
mulsd xmm2, qword [0x4304f8]
mulsd xmm0, qword [0x430518]
cvttsd2si esi, xmm1
cvttsd2si edx, xmm0
test eax, eax
je 0x404246
push ecx
cvttsd2si ecx, xmm2
push edx
push esi
push ecx
push dword [0x4365d4]
push 2
call eax
mov dword [ebp - 4], 0xa
push 0x6ed
call fcn.00405ba8
push 0xffffff
push 4
call fcn.00406ac4
test al, al
jne 0x4042ed
call edi
push 0x8c8
call fcn.00405ba8
call fcn.00403657
call fcn.00403843
call fcn.00402387
lea ecx, [ebx - 0x10]
call fcn.004029ea
xor ebx, ebx
lea ecx, [ebp - 0x2c]
push ebx
push 1
call fcn.00402143
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403dd4
push dword [esi]
call fcn.00410011
add esi, 4
pop ecx
cmp esi, dword [ebp - 0x144]
jne 0x4042ad
jmp 0x403dce
mov eax, dword [0x43659c]
test eax, eax
jne 0x4042fe
mov dword [ebp - 0x24c], eax
jmp 0x404312
push 0xa
call eax
mov dword [ebp - 0x24c], eax
mov esi, 0x789
cmp eax, 9
jge 0x404318
lea esi, [eax + 0x780]
call fcn.00402a06
push eax
lea ecx, [ebp - 0x258]
call fcn.0040483f
push esi
lea eax, [ebp - 0x258]
mov byte [ebp - 4], 0x12
push 0x42f694
push eax
call fcn.00404b8b
mov esi, dword [ebp - 0x258]
sub esp, 0xc
mov ecx, esp
push esi
call fcn.004020a7
mov ecx, dword [0x4365b0]
call fcn.00405b2a
cmp dword [ebp - 0x24c], 3
jle 0x4043d2
call edi
cmp eax, 0x1296d6be
jne 0x404372
call fcn.004026ce
push 0x8cf
call fcn.00405ba8
call fcn.00403657
call fcn.00403843
call fcn.00402387
lea ecx, [esi - 0x10]
call fcn.004029ea
lea ecx, [ebx - 0x10]
call fcn.004029ea
xor ebx, ebx
lea ecx, [ebp - 0x2c]
push ebx
push 1
call fcn.00402143
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403dd4
push dword [esi]
call fcn.00410011
add esi, 4
pop ecx
cmp esi, dword [ebp - 0x144]
jne 0x4043ba
jmp 0x403dce
push 0x6e4
call fcn.00405ba8
push 0x745
call fcn.00405ba8
xor edi, edi
mov byte [0x4365a3], 1
mov dword [ebp - 0x250], edi
call fcn.00402387
mov byte [ebp - 4], 0x13
cmp dword [0x4365c8], edi
jne 0x404413
mov eax, dword [0x43659c]
test eax, eax
jne 0x4044bf
mov dword [ebp - 4], 0x12
push 0x8d0
call fcn.00405ba8
test edi, edi
jne 0x4044fd
push 0x74e
call fcn.00405ba8
push 5
call fcn.00406b9f
push 0x746
call fcn.00405ba8
push 0x72a
call fcn.00405ba8
push 0xb4
push 8
call fcn.00406ac4
push 0x779
call fcn.00405ba8
mov byte [0x4365a3], 0
call fcn.00403657
call fcn.00403843
lea ecx, [esi - 0x10]
call fcn.004029ea
lea ecx, [ebx - 0x10]
call fcn.004029ea
xor ebx, ebx
lea ecx, [ebp - 0x2c]
push ebx
push 1
call fcn.00402143
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403dd4
push dword [esi]
call fcn.00410011
add esi, 4
pop ecx
cmp esi, dword [ebp - 0x144]
jne 0x4044a7
jmp 0x403dce
push 0x32c8
push 3
call eax
mov edi, eax
jmp 0x404413
push 0x8d1
mov dword [0x4365c0], 1
mov byte [0x4365a3], 0
call fcn.00405ba8
call fcn.00402c42
push dword [ebp + 0x14]
push dword [0x4365d4]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4365d4]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
push 0xfa0
push 1
push dword [0x4365d4]
call dword [sym.imp.USER32.dll_SetTimer]
push 0x8d2
mov byte [0x4365a0], 0
call fcn.00405ba8
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x288]
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
jmp 0x40458d
lea eax, [ebp - 0x288]
push eax
call dword [0x4365a8]
lea eax, [ebp - 0x288]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x288]
push eax
call edi
test eax, eax
jne 0x404573
push 0x8d3
mov byte [0x4365a0], 1
call fcn.00405ba8
push 5
call fcn.00406b9f
push 0x746
call fcn.00405ba8
push 0x72a
call fcn.00405ba8
mov eax, dword [0x4365c0]
dec eax
cmp eax, 5
ja 0x4045eb
sub esp, 0x18
mov ecx, esp
call fcn.00403a99
mov ecx, dword [0x4365b0]
call fcn.00405b2a
mov eax, dword [0x4365c4]
dec eax
cmp eax, 3
ja 0x40460b
sub esp, 0x18
mov ecx, esp
call fcn.00403af0
mov ecx, dword [0x4365b0]
call fcn.00405b2a
cmp byte [0x4365a1], 0
je 0x404628
push 0x739
call fcn.00405ba8
push 0x748
call fcn.00405ba8
push 0x8d4
call fcn.00405ba8
push 0xb4
push 8
call fcn.00406ac4
push 0x6e6
call fcn.00405ba8
push 0x8d5
call fcn.00405ba8
mov byte [ebp - 4], 0x15
cmp dword [0x4365c8], 0
jne 0x40466c
mov eax, dword [0x43659c]
test eax, eax
je 0x40466c
push 5
call eax
mov dword [ebp - 4], 0x12
push 0x8d6
call fcn.00405ba8
push 0x8c4
call fcn.00405ba8
call fcn.00403657
push 0x8c6
call fcn.00405ba8
call fcn.00403843
lea ecx, [esi - 0x10]
call fcn.004029ea
lea ecx, [ebx - 0x10]
call fcn.004029ea
xor ebx, ebx
lea ecx, [ebp - 0x2c]
push ebx
push 1
call fcn.00402143
mov esi, dword [ebp - 0x148]
cmp esi, dword [ebp - 0x144]
je 0x403dd4
push dword [esi]
call fcn.00410011
add esi, 4
pop ecx
cmp esi, dword [ebp - 0x144]
jne 0x4046ca
jmp 0x403dce
push 0x8ca
call fcn.00405ba8
push 0x42f4f0
lea ecx, [ebp - 0x1f8]
call fcn.0040afe0
push 0x10
push 0x42f4dc
mov ecx, eax
mov byte [ebp - 4], 6
call fcn.0040b360
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 4], 5
call fcn.0040b0e0
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], bl
call fcn.0040d450
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1a8]
call fcn.0040c470
xor eax, eax
call fcn.00414d5b
ret 0x10