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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, edx
mov edx, 8
push edi
mov eax, dword [ebx + 4]
mov edi, ecx
cmp eax, 3
mov dword [ebp - 0x10], esi
movups xmm0, xmmword [esi]
mov ecx, 5
mov dword [ebp - 0xc], edi
cmove ecx, edx
mov dword [ebp - 0x2c], ecx
movups xmmword [ebp - 0x28], xmm0
test eax, eax
je 0x1003a88d
sub dword [ebp - 0x20], ecx
movups xmm0, xmmword [esi]
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x3c]
mov ecx, dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [ebp - 0x14], eax
movups xmmword [ebp - 0x6c], xmm0
test edx, edx
je 0x1003a97d
mov eax, 9
cmp edx, 0xffff
jne 0x1003a8e7
mov esi, dword [ebp - 0x64]
sub esi, dword [ebp - 0x6c]
push 0x3e8
mov dword [ebp - 8], 0xa
lea eax, [esi + esi]
push eax
push dword [ebx + 0x30]
call ecx
sub eax, esi
push 0
push eax
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov esi, dword [ebp - 0x10]
jmp 0x1003a91d
cmp dword [ebx + 0x28], 2
jne 0x1003a8f6
mov dword [ebp - 8], 0xb
jmp 0x1003a908
cmp dword [ebx + 0x28], 1
mov dword [ebp + 8], 0xc
cmove eax, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x6c]
push 0xffff
push eax
push edx
call ecx
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x64], eax
cmp byte [0x1005e208], 0
jne 0x1003a95d
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x1003a94d
mov ecx, eax
call fcn.10032660
mov dword [0x1005e0e8], eax
mov byte [0x1005e208], 1
jmp 0x1003a962
xor eax, eax
mov byte [0x1005e208], 1
mov dword [0x1005e0e8], eax
jmp 0x1003a962
mov eax, dword [0x1005e0e8]
push esi
push dword [ebp - 0x14]
lea ecx, [ebp - 0x6c]
push 0
push dword [ebp - 8]
push ecx
push edi
mov ecx, eax
call fcn.100342f0
mov ecx, dword [sym.imp.KERNEL32.dll_MulDiv]
mov eax, dword [ebx + 0x44]
mov edx, dword [sym.imp.USER32.dll_InflateRect]
test eax, eax
je 0x1003aa89
cmp eax, 0xc8
jae 0x1003aa56
movups xmm0, xmmword [ebp - 0x28]
push 0xffffffffffffffff
push 0xffffffffffffffff
lea eax, [ebp - 0x5c]
push eax
movups xmmword [ebp - 0x5c], xmm0
call edx
mov edi, dword [ebp - 0x50]
sub edi, dword [ebp - 0x58]
push 0xc8
push edi
push dword [ebx + 0x44]
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, dword [ebp - 0x54]
sub edi, eax
sub esi, dword [ebp - 0x5c]
push 0xc8
push esi
push dword [ebx + 0x44]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push 0xc8
push 0xff
push dword [ebx + 0x44]
sub esi, eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [ebx + 0x14]
mov ecx, 0xff
sub ecx, eax
push ecx
push ecx
mov ecx, dword [ebx + 0x10]
call fcn.10016d00
add esp, 4
push eax
mov eax, dword [ebp - 0x50]
add eax, 0xfffffffc
push edi
mov edi, dword [ebp - 0xc]
mov ecx, edi
push esi
push eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x5c]
cdq
sub eax, edx
lea edx, [ebp - 0x5c]
sar eax, 1
add eax, dword [ebp - 0x5c]
push eax
call fcn.10016a40
mov esi, dword [sym.imp.KERNEL32.dll_MulDiv]
add esp, 0x18
cmp byte [ebx + 8], 0
jne 0x1003aa4e
push 0x28
push 0xff
push dword [ebx + 0x44]
mov byte [ebx + 8], 1
call esi
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x38], eax
mov edx, dword [sym.imp.USER32.dll_InflateRect]
jmp 0x1003aa8f
cmp byte [ebx + 8], 0
jne 0x1003aa89
mov byte [ebx + 8], 1
cmp eax, 0x384
jb 0x1003aa89
push 0x64
push 0xff
add eax, 0xfffffc7c
push eax
call ecx
mov edx, dword [sym.imp.USER32.dll_InflateRect]
mov ecx, 0xff
sub ecx, eax
mov dword [ebx + 0x3c], ecx
mov dword [ebx + 0x38], ecx
mov esi, dword [sym.imp.KERNEL32.dll_MulDiv]
cmp byte [ebx + 9], 0
je 0x1003ab7e
cmp byte [ebx + 8], 0
je 0x1003ab7e
mov eax, dword [ebp - 0x10]
push 0xffffffffffffffff
push 0xffffffffffffffff
movups xmm0, xmmword [eax]
lea eax, [ebp - 0xec]
push eax
movups xmmword [ebp - 0xec], xmm0
call edx
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x10]
push 4
push 3
push dword [ebx + 0x38]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 4]
mov dword [ebp - 0x70], ecx
call esi
mov dword [ebp - 8], eax
mov eax, dword [0x1005d4c8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
cmp dword [0x1005d044], 0
mov dword [ebp - 0x14], eax
je 0x1003ab3f
cmp dword [0x1005d4cc], 0xffffffff
je 0x1003ab3f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1005e1b8]
cmp eax, 0xc8
jae 0x1003ab42
push 0xc8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1005e1b8]
push eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0xc]
push eax
call esi
add dword [ebp - 0xc], eax
jmp 0x1003ab42
mov dword [ebp - 0xc], eax
push dword [ebp - 8]
mov edx, dword [ebx + 0x14]
push ecx
mov ecx, dword [ebx + 0x10]
call fcn.10016d00
add esp, 4
lea edx, [ebp - 0xec]
mov ecx, edi
push eax
mov eax, dword [ebp - 0x10]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
mov eax, dword [eax + 0xc]
sub eax, 4
push eax
push dword [ebp - 0xc]
call fcn.10016a40
add esp, 0x18
cmp dword [ebp - 8], 0
jne 0x1003abb4
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x1003ac77
push 0x3e8
push 0x1cc
push eax
call esi
mov ecx, 0xe6
sub ecx, eax
mov eax, ecx
mov ecx, 0xe6
cdq
xor eax, edx
sub eax, edx
sub ecx, eax
mov dword [ebp - 8], ecx
je 0x1003ac77
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
call fcn.10016d00
movups xmm0, xmmword [ebp - 0x28]
push 0xffffffffffffffff
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10c]
push 0xffffffffffffffff
push eax
movups xmmword [ebp - 0x10c], xmm0
movups xmmword [ebp - 0xfc], xmm0
call dword [sym.imp.USER32.dll_InflateRect]
push 0xfffffffffffffffd
push 0xfffffffffffffffd
lea eax, [ebp - 0xfc]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
push dword [ebp - 8]
lea eax, [ebp - 0xfc]
mov ecx, edi
push dword [ebp - 0xc]
lea edx, [ebp - 0x10c]
push eax
call fcn.10017050
add esp, 0xc
cmp dword [ebx + 4], 0
je 0x1003ac77
mov eax, dword [ebp - 0x10]
xorps xmm0, xmm0
movups xmmword [ebp - 0x84], xmm0
push 0xffffffffffffffff
push 0xffffffffffffffff
movups xmm0, xmmword [eax]
mov eax, dword [ebp - 0x20]
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x94], eax
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x94]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
push 4
push 3
push dword [ebp - 8]
call esi
push eax
push dword [ebp - 0xc]
lea eax, [ebp - 0x84]
mov ecx, edi
push eax
lea edx, [ebp - 0x94]
call fcn.10017050
add esp, 0xc
cmp byte [ebx + 8], 0
mov dword [ebp - 8], 0xff
jne 0x1003acae
cmp byte [ebx + 0xb], 0
jne 0x1003aca7
cmp byte [ebx + 0xc], 0
jne 0x1003aca7
cmp byte [ebx + 9], 0
je 0x1003ad43
mov eax, dword [ebx + 0x38]
mov esi, 9
mov dword [ebp - 8], eax
jmp 0x1003acea
mov esi, 0xa
jmp 0x1003acea
cmp byte [ebx + 0xa], 0
mov esi, 1
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 8], eax
je 0x1003accc
cmp byte [ebx + 9], 0
je 0x1003ace5
mov esi, 6
jmp 0x1003acea
cmp byte [ebx + 0xb], 0
jne 0x1003ace5
cmp byte [ebx + 0xc], 0
jne 0x1003ace5
cmp byte [ebx + 9], 0
je 0x1003acea
mov esi, 3
jmp 0x1003acea
mov esi, 4
cmp byte [0x1005e208], 0
jne 0x1003ad2a
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x1003ad1a
mov ecx, eax
call fcn.10032660
mov dword [0x1005e0e8], eax
mov byte [0x1005e208], 1
jmp 0x1003ad2f
xor eax, eax
mov byte [0x1005e208], 1
mov dword [0x1005e0e8], eax
jmp 0x1003ad2f
mov eax, dword [0x1005e0e8]
push 0
push dword [ebp - 8]
lea ecx, [ebp - 0x28]
push esi
push dword [ebx]
push ecx
push edi
mov ecx, eax
call fcn.100342f0
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x1003ada8
cmp byte [0x1005e208], 0
jne 0x1003ad90
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x1003ad7d
mov ecx, eax
call fcn.10032660
mov ecx, dword [ebx + 0x34]
mov dword [0x1005e0e8], eax
mov byte [0x1005e208], 1
jmp 0x1003ad95
mov ecx, dword [ebx + 0x34]
xor eax, eax
mov dword [0x1005e0e8], eax
mov byte [0x1005e208], 1
jmp 0x1003ad95
mov eax, dword [0x1005e0e8]
push 0
push ecx
push 7
push dword [ebx]
lea ecx, [ebp - 0x28]
push ecx
push edi
mov ecx, eax
call fcn.100342f0
mov edx, dword [ebx + 4]
test edx, edx
je 0x1003ae2a
mov eax, dword [ebp - 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [ebp - 0x20]
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x84], eax
add eax, 8
cmp byte [0x1005e208], 0
mov dword [ebp - 0x7c], eax
jne 0x1003ae05
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x1003adf1
mov ecx, eax
call fcn.10032660
mov ecx, eax
jmp 0x1003adf3
xor ecx, ecx
mov edx, dword [ebx + 4]
mov dword [0x1005e0e8], ecx
mov byte [0x1005e208], 1
jmp 0x1003ae0b
mov ecx, dword [0x1005e0e8]
xor eax, eax
cmp byte [ebx + 0xa], al
push 0
push dword [ebp - 8]
setne al
push edx
add eax, 0xd
push eax
lea eax, [ebp - 0x84]
push eax
push edi
call fcn.100342f0
mov eax, dword [ebx + 0x10]
mov dword [ebp + 8], 0
mov dword [ebp - 0x18], 0
test eax, eax
je 0x1003b15b
cmp dword [ebx + 0x14], 0
jl 0x1003b15b
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], 0
push ecx
push 0x10051a9c
push eax
call dword [sym.imp.COMCTL32.dll_HIMAGELIST_QueryInterface]
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 0x18]
push edx
lea edx, [ebp + 8]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
cmp byte [0x1005d4c4], 0
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
je 0x1003ae99
mov eax, dword [ebp + 8]
mov ecx, edx
sub ecx, esi
add eax, 0x2c
cmp ecx, eax
jge 0x1003ae99
mov dword [ebx + 0x24], 0
cmp dword [ebx + 0x24], 0
je 0x1003aea4
add esi, 0xa
jmp 0x1003aeb5
mov eax, edx
sub eax, dword [ebp + 8]
sub eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
add esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x18]
mov cl, byte [ebx + 0xb]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x24]
test cl, cl
mov ecx, dword [ebp + 8]
lea edx, [eax + 1]
cmove edx, eax
lea eax, [esi + 1]
cmove eax, esi
mov dword [ebp - 8], edx
mov dword [ebp - 0x10], eax
add ecx, 4
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x28]
cmp eax, ecx
jge 0x1003aefe
push ecx
push eax
push dword [ebx + 0x18]
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [ebp - 8]
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc8], edx
lea edx, [ebp - 0xdc]
mov dword [ebp - 0xdc], 0x44
mov dword [ebp - 0xd0], edi
movups xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0xb4], 0xffffffff
mov dword [ebp - 0xb0], 0xffffffff
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xa8], 0xcc0020
mov dword [ebp - 0xa4], 8
mov dword [ebp - 0x9c], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x20]
cmp dword [ebx + 0x1c], 0
je 0x1003b076
cmp dword [0x1005e0a0], 0
jne 0x1003b076
mov eax, dword [0x1005e1fc]
mov esi, dword [sym.imp.USER32.dll_GetDC]
test eax, eax
jne 0x1003afdc
push 0
call esi
mov esi, eax
push 0x58
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
push 0
mov dword [0x1005e1fc], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x1005e1fc]
mov esi, dword [sym.imp.USER32.dll_GetDC]
push eax
push dword [0x1005d4c0]
push 0x31
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [0x1005e1fc]
mov dword [ebp - 0x14], eax
test ecx, ecx
jne 0x1003b021
push ecx
call esi
mov esi, eax
push 0x58
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
push 0
mov dword [0x1005e1fc], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [0x1005e1fc]
push ecx
push dword [0x1005d4c0]
push 0x32
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, dword [ebp - 8]
mov ecx, eax
xor eax, eax
mov edx, 2
cmp dword [0x1005e0a8], eax
push 3
push eax
push eax
cmovne edx, eax
mov eax, esi
push ecx
push dword [ebp - 0x14]
sub eax, ecx
push dword [ebx + 0x1c]
add eax, edx
add eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
add eax, edx
add eax, dword [ebp + 8]
push eax
push edi
call dword [sym.imp.USER32.dll_DrawIconEx]
jmp 0x1003b079
mov esi, dword [ebp - 8]
cmp dword [ebx + 0x20], 0
je 0x1003b14e
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, ecx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
add eax, esi
mov dword [ebp - 0x3c], ecx
mov esi, dword [sym.imp.USER32.dll_InflateRect]
push 2
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x3c]
push 3
push eax
call esi
push 0xffffffffffffffff
push 1
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x38]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
cmp dword [0x1005e0a0], 0
mov dword [ebp - 0x38], ecx
jne 0x1003b0f0
cmp dword [0x1005e0a8], 0
jne 0x1003b108
push 2
push 2
lea eax, [ebp - 0x3c]
push eax
call esi
push 1
push 1
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
push 0
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 1
push eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x48], 0
push eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
push ecx
push dword [ebx + 0x20]
lea edx, [ebp - 0x3c]
mov ecx, edi
call fcn.10016840
add esp, 8
push dword [ebp - 0x2c]
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x1003b15b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebx + 0x24], 0
je 0x1003b1f9
movups xmm0, xmmword [ebp - 0x28]
mov eax, dword [ebp + 8]
add eax, 0xe
movd ecx, xmm0
movups xmmword [ebp - 0x4c], xmm0
sub dword [ebp - 0x44], 0xa
add eax, ecx
cmp byte [ebx + 0xb], 0
mov dword [ebp - 0x4c], eax
je 0x1003b194
push 1
push 1
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov esi, dword [ebx + 0x18]
cmp esi, dword [ebx + 0x3c]
cmovae esi, dword [ebx + 0x3c]
cmp byte [0x1005e208], 0
jne 0x1003b1de
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x1003b1ce
mov ecx, eax
call fcn.10032660
mov dword [0x1005e0e8], eax
mov byte [0x1005e208], 1
jmp 0x1003b1e3
xor eax, eax
mov byte [0x1005e208], 1
mov dword [0x1005e0e8], eax
jmp 0x1003b1e3
mov eax, dword [0x1005e0e8]
push esi
push dword [0x1005d4c0]
lea ecx, [ebp - 0x4c]
push dword [ebx + 0x24]
push ecx
push edi
mov ecx, eax
call fcn.100343a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret