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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x45c
movss xmm0, dword [0x101114f4]
mulss xmm0, dword [0x100d1f20]
push ebx
mov ebx, ecx
mov dword [ebp - 0x98], 0
push esi
push edi
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x9c], 0
push dword [ebx + 0x20]
addss xmm0, dword [ebx + 0x2750]
push dword [ebx + 0x1c]
mov edx, dword [ebx + 0x14]
push dword [ebx + 0x18]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0x94], 0x3f800000
mov dword [ebp - 0xa8], 0x3f800000
mov dword [ebp - 0xbc], 0x3f800000
mov dword [ebp - 0xd0], 0x3f800000
movss dword [ebx + 0x2750], xmm0
call fcn.10036d60
mov edx, dword [ebx + 4]
add esp, 0xc
mov eax, dword [edx]
push 0xffffffffffffffff
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov ecx, dword [eax + 0x24]
lea eax, [ebp - 0xc]
push eax
push 0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0
push eax
mov eax, dword [ebx + 0x10]
push dword [eax]
push edx
call ecx
cmp byte [ebx + 0x164], 0
je 0x100501a6
push dword [ebx + 0x11c]
mov edx, dword [ebx + 0x110]
lea ecx, [ebp - 0x24]
push dword [ebx + 0x118]
push dword [ebx + 0x114]
call fcn.10036d60
mov edx, dword [ebx + 4]
add esp, 0xc
mov eax, dword [edx]
push 0xffffffffffffffff
mov dword [ebp - 0xc], 0x44168000
mov dword [ebp - 8], 0x42f80000
mov ecx, dword [eax + 0x24]
lea eax, [ebp - 0xc]
push eax
push 0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0
push eax
mov eax, dword [ebx + 0x10c]
push dword [eax]
push edx
call ecx
movss xmm7, dword [0x100d1f18]
lea esi, [ebx + 0x218]
xor edi, edi
nop word [eax + eax]
mov eax, 0xaaaaaaab
mul edi
mov eax, edi
shr edx, 2
lea ecx, [edx + edx*2]
add ecx, ecx
sub eax, ecx
imul eax, eax, 0x85
add eax, 0x76
mov dword [ebp - 0x30], eax
imul eax, edx, 0x75
mov dword [ebp - 0x2c], eax
mov al, byte [esi - 0x30]
test al, al
je 0x1004ff19
movss xmm2, dword [0x101114f4]
mulss xmm2, dword [0x100d1f64]
movss xmm1, dword [esi - 0x24]
movss xmm0, dword [esi - 0x2c]
movss dword [ebp - 0x28], xmm2
call fcn.10036d80
movss xmm1, dword [esi - 0x20]
movaps xmm6, xmm0
movss xmm0, dword [esi - 0x28]
movss dword [ebp - 0x38], xmm6
movss dword [esi - 0x2c], xmm6
call fcn.10036d80
movaps xmm5, xmm0
movss dword [esi - 0x28], xmm5
movss dword [ebp - 0x14], xmm5
cmp dword [ebx + 0x275c], edi
jne 0x1004f917
movss xmm0, dword [ebx + 0x2750]
addss xmm0, xmm0
call fcn.100050e0
call fcn.10005100
divss xmm0, dword [0x100d1f48]
movss xmm2, dword [ebp - 0x28]
addss xmm0, dword [0x100d1f08]
movaps xmm1, xmm0
movss xmm0, dword [esi - 0x1c]
call fcn.10036d80
movss dword [ebp - 0x34], xmm0
movss dword [esi - 0x1c], xmm0
movss xmm0, dword [ebx + 0x2750]
addss xmm0, xmm0
call fcn.100050e0
call fcn.10005100
divss xmm0, dword [0x100d1f48]
movss xmm2, dword [ebp - 0x28]
addss xmm0, dword [0x100d1f08]
movaps xmm1, xmm0
movss xmm0, dword [esi - 0x18]
call fcn.10036d80
movss xmm3, dword [ebp - 0x34]
movss xmm5, dword [ebp - 0x14]
movss xmm6, dword [ebp - 0x38]
mov al, byte [esi - 0x30]
jmp 0x1004f970
movss xmm0, dword [esi - 0x1c]
movss xmm4, dword [esi - 0x18]
cmp dword [ebx + 0x2754], edi
je 0x1004f955
movss xmm1, dword [0x100d1f0c]
call fcn.10036d80
movss xmm1, dword [0x100d1f0c]
movaps xmm3, xmm0
movaps xmm0, xmm4
movss dword [esi - 0x1c], xmm3
call fcn.10036d80
movss xmm5, dword [ebp - 0x14]
jmp 0x1004f970
movaps xmm1, xmm7
call fcn.10036d80
movaps xmm3, xmm0
movaps xmm1, xmm7
movaps xmm0, xmm4
movss dword [esi - 0x1c], xmm3
call fcn.10036d80
movss xmm2, dword [0x101114f4]
movaps xmm4, xmm0
mulss xmm2, dword [0x100d1f20]
movss xmm1, dword [0x100d1f0c]
movss xmm0, dword [esi - 0x14]
movss dword [esi - 0x18], xmm4
call fcn.10036d80
cmp dword [esi - 0x10], 0
movss dword [esi - 0x14], xmm0
je 0x1004ff19
mov dword [ebp - 0x14], 0x909090
cmp al, 3
je 0x1004f9b8
cmp al, 4
jne 0x1004f9bf
mov dword [ebp - 0x14], 0xffffff
mov eax, dword [esi - 4]
cdq
sub eax, edx
sar eax, 1
addss xmm5, dword [0x100d1f70]
subss xmm6, dword [0x100d1f9c]
subss xmm3, dword [0x100d1eec]
movd xmm0, eax
mov eax, dword [esi]
subss xmm5, dword [0x100d1f7c]
subss xmm4, dword [0x100d1eec]
cdq
sub eax, edx
movss dword [ebp - 0x60], xmm6
cvtdq2ps xmm0, xmm0
sar eax, 1
movss dword [ebp - 0x5c], xmm5
movss dword [ebp - 0x40], xmm0
movd xmm0, eax
lea eax, [ebp - 0x60]
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x68]
movss dword [ebp - 0x68], xmm3
push eax
push ecx
cvtdq2ps xmm0, xmm0
mov dword [esp], 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x110]
push eax
movss dword [ebp - 0x64], xmm4
movss dword [ebp - 0x3c], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTransformation2D]
push dword [esi]
mov edx, dword [esi - 0xc]
lea ecx, [ebp - 0x24]
push dword [esi - 4]
push dword [esi - 8]
call fcn.10036d60
mov eax, dword [ebx + 4]
lea edx, [ebp - 0x110]
add esp, 0xc
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
movss xmm0, dword [esi - 0x14]
mulss xmm0, dword [0x100d1fe8]
mov ecx, dword [ebx + 4]
cvttss2si eax, xmm0
mov edx, dword [ecx]
movzx eax, al
shl eax, 0x18
or eax, dword [ebp - 0x14]
push eax
push 0
push 0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [esi - 0x10]
push dword [eax]
push ecx
call dword [edx + 0x24]
mov eax, dword [ebx + 4]
lea edx, [ebp - 0xd0]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebx + 0x13c]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x48], xmm0
mov eax, dword [ebx + 0x140]
cdq
sub eax, edx
mov dword [ebp - 0x78], 0x3f800000
sar eax, 1
mov dword [ebp - 0x74], 0x3f800000
movd xmm0, eax
lea eax, [ebp - 0x70]
cvtdq2ps xmm0, xmm0
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x78]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [esi - 0x2c]
addss xmm0, dword [0x100d1fb0]
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x48]
push eax
movss dword [ebp - 0x70], xmm0
lea eax, [ebp - 0x110]
movss xmm0, dword [esi - 0x28]
addss xmm0, dword [0x100d1f90]
push eax
movss dword [ebp - 0x6c], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTransformation2D]
push dword [ebx + 0x140]
mov edx, dword [ebx + 0x134]
lea ecx, [ebp - 0x24]
push dword [ebx + 0x13c]
push dword [ebx + 0x138]
call fcn.10036d60
mov eax, dword [ebx + 4]
lea edx, [ebp - 0x110]
add esp, 0xc
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
movss xmm0, dword [esi - 0x14]
mulss xmm0, dword [0x100d1fe8]
mov ecx, dword [ebx + 4]
cvttss2si eax, xmm0
mov edx, dword [ecx]
movzx eax, al
shl eax, 0x18
or eax, 0xffffff
push eax
push 0
push 0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebx + 0x130]
push dword [eax]
push ecx
call dword [edx + 0x24]
mov eax, dword [ebx + 4]
lea edx, [ebp - 0xd0]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov ecx, dword [esi - 0x34]
mov eax, ecx
test ecx, ecx
jne 0x1004fbc8
mov eax, dword [esi - 0x38]
push eax
test ecx, ecx
mov eax, 0x100cf804
mov ecx, 0x100cf800
cmovne eax, ecx
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.1001f530
movss xmm0, dword [esi - 0x28]
add esp, 0xc
addss xmm0, dword [0x100d1f90]
mov edx, dword [ebx + 4]
push 0
push 0xffffffffffffffff
addss xmm0, dword [0x100d1f4c]
push 1
push 0x16
push 0x19
cvttss2si eax, xmm0
movss xmm0, dword [esi - 0x2c]
addss xmm0, dword [0x100d1fb0]
push eax
addss xmm0, dword [0x100d1f1c]
cvttss2si eax, xmm0
push eax
push ecx
lea eax, [ebp - 0x178]
push eax
mov eax, dword [0x101195ec]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 0x18]
call fcn.10036a40
mov al, byte [esi - 0x30]
add esp, 0x24
cmp al, 3
jne 0x1004fd56
mov eax, dword [ebx + 0xd0]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
mov eax, dword [ebx + 0xd4]
cvtdq2ps xmm0, xmm0
cdq
sub eax, edx
sar eax, 1
movss dword [ebp - 0x50], xmm0
movd xmm0, eax
lea eax, [ebp - 0x80]
cvtdq2ps xmm0, xmm0
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x88]
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [esi - 0x2c]
addss xmm0, dword [0x100d1f1c]
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x50]
push eax
movss dword [ebp - 0x80], xmm0
lea eax, [ebp - 0x1b8]
movss xmm0, dword [esi - 0x28]
addss xmm0, dword [0x100d1f70]
push eax
addss xmm0, dword [0x100d1f1c]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [esi - 0x1c]
movss dword [ebp - 0x88], xmm0
movss xmm0, dword [esi - 0x18]
movss dword [ebp - 0x84], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTransformation2D]
push dword [ebx + 0xd4]
mov edx, dword [ebx + 0xc8]
lea ecx, [ebp - 0x24]
push dword [ebx + 0xd0]
push dword [ebx + 0xcc]
call fcn.10036d60
mov eax, dword [ebx + 4]
lea edx, [ebp - 0x1b8]
add esp, 0xc
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
movss xmm0, dword [esi - 0x14]
mulss xmm0, dword [0x100d1fe8]
cvttss2si eax, xmm0
movzx eax, al
shl eax, 0x18
or eax, 0xffffff
push eax
push 0
lea eax, [ebp - 0x24]
push 0
push eax
mov eax, dword [ebx + 0xc4]
jmp 0x1004fe60
cmp al, 2
jne 0x1004fe7b
mov eax, dword [ebx + 0xf4]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
mov eax, dword [ebx + 0xf8]
cvtdq2ps xmm0, xmm0
cdq
sub eax, edx
sar eax, 1
movss dword [ebp - 0x58], xmm0
movd xmm0, eax
lea eax, [ebp - 0x90]
cvtdq2ps xmm0, xmm0
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 8]
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [esi - 0x2c]
addss xmm0, dword [0x100d1f1c]
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x58]
push eax
movss dword [ebp - 0x90], xmm0
lea eax, [ebp - 0x1f8]
movss xmm0, dword [esi - 0x28]
addss xmm0, dword [0x100d1f70]
push eax
addss xmm0, dword [0x100d1f1c]
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [esi - 0x1c]
movss dword [ebp - 8], xmm0
movss xmm0, dword [esi - 0x18]
movss dword [ebp - 4], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTransformation2D]
push dword [ebx + 0xf8]
mov edx, dword [ebx + 0xec]
lea ecx, [ebp - 0x24]
push dword [ebx + 0xf4]
push dword [ebx + 0xf0]
call fcn.10036d60
mov eax, dword [ebx + 4]
lea edx, [ebp - 0x1f8]
add esp, 0xc
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
movss xmm0, dword [esi - 0x14]
mulss xmm0, dword [0x100d1fe8]
cvttss2si eax, xmm0
movzx eax, al
shl eax, 0x18
or eax, 0xffffff
push eax
push 0
lea eax, [ebp - 0x24]
push 0
push eax
mov eax, dword [ebx + 0xe8]
mov ecx, dword [ebx + 4]
push dword [eax]
push ecx
mov edx, dword [ecx]
call dword [edx + 0x24]
mov eax, dword [ebx + 4]
lea edx, [ebp - 0xd0]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x2c]
push 0
push 0xffffffffffffffff
mov edx, dword [ebx + 4]
add eax, 0xcc
push 1
push 0xd
push 0x7c
push eax
push dword [ebp - 0x30]
lea eax, [esi - 0xa4]
push ecx
push eax
mov eax, dword [0x101195ec]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 0x1c]
call fcn.10036a40
add esp, 0x24
lea eax, [ebp - 0x458]
push 0x25a
push 0
push eax
call fcn.100994f0
add esp, 0xc
lea eax, [ebp - 0x458]
push 0x12c
push eax
push 0xffffffffffffffff
lea eax, [esi + 0x14]
push eax
push 0
push 0x36a
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0x2c]
push 0
push 0xffffffffffffffff
mov edx, dword [ebx + 4]
add eax, 0x120
push 1
push 0xd
push 0x7c
push eax
push dword [ebp - 0x30]
lea eax, [ebp - 0x458]
push 0xffffffffffffffff
push eax
mov eax, dword [0x101195ec]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 0xc]
call fcn.10036b80
add esp, 0x24
movss xmm7, dword [0x100d1f18]
inc edi
add esi, 0x194
cmp edi, 0x18
jl 0x1004f800
cmp dword [ebx + 0x275c], 0xffffffff
je 0x100500f6
mov eax, dword [ebx + 0x2760]
test eax, eax
jne 0x10050039
push dword [ebx + 0x44]
mov edx, dword [ebx + 0x38]
lea ecx, [ebp - 0x24]
push dword [ebx + 0x40]
push dword [ebx + 0x3c]
call fcn.10036d60
mov edx, dword [ebx + 4]
add esp, 0xc
movd xmm0, dword [ebx + 0x154]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx]
push 0xffffffffffffffff
mov dword [ebp - 4], 0
mov ecx, dword [eax + 0x24]
lea eax, [ebp - 0xc]
push eax
movss dword [ebp - 0xc], xmm0
lea eax, [ebp - 0x24]
movd xmm0, dword [ebx + 0x158]
push 0
cvtdq2ps xmm0, xmm0
push eax
mov eax, dword [ebx + 0x34]
movss dword [ebp - 8], xmm0
push dword [eax]
push edx
call ecx
push dword [ebx + 0x8c]
mov edx, dword [ebx + 0x80]
lea ecx, [ebp - 0x24]
push dword [ebx + 0x88]
push dword [ebx + 0x84]
call fcn.10036d60
movd xmm0, dword [ebx + 0x154]
add esp, 0xc
mov edi, dword [ebx + 4]
cvtdq2ps xmm0, xmm0
mov eax, dword [edi]
mov dword [ebp - 4], 0
movss dword [ebp - 0xc], xmm0
movd xmm0, dword [ebx + 0x158]
mov esi, dword [eax + 0x24]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 8], xmm0
movss xmm0, dword [ebx + 0x2750]
call fcn.100050e0
call fcn.10005100
mulss xmm0, dword [0x100d1fe8]
cvttss2si eax, xmm0
movzx eax, al
shl eax, 0x18
or eax, 0xffffff
push eax
lea eax, [ebp - 0xc]
push eax
push 0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebx + 0x7c]
push dword [eax]
push edi
call esi
jmp 0x100500f6
cmp eax, 1
jne 0x10050092
push dword [ebx + 0x8c]
mov edx, dword [ebx + 0x80]
lea ecx, [ebp - 0x24]
push dword [ebx + 0x88]
push dword [ebx + 0x84]
call fcn.10036d60
mov edx, dword [ebx + 4]
add esp, 0xc
movd xmm0, dword [ebx + 0x154]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx]
push 0xffffffffffffffff
mov ecx, dword [eax + 0x24]
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x24]
movss dword [ebp - 0xc], xmm0
movd xmm0, dword [ebx + 0x158]
push 0
push eax
mov eax, dword [ebx + 0x7c]
jmp 0x100500e2
cmp eax, 2
jne 0x100500f6
push dword [ebx + 0x44]
mov edx, dword [ebx + 0x38]
lea ecx, [ebp - 0x24]
push dword [ebx + 0x40]
push dword [ebx + 0x3c]
call fcn.10036d60
mov edx, dword [ebx + 4]
add esp, 0xc
movd xmm0, dword [ebx + 0x154]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx]
push 0xffffffffffffffff
mov ecx, dword [eax + 0x24]
mov eax, dword [ebx + 0x158]
add eax, 2
movss dword [ebp - 0xc], xmm0
movd xmm0, eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x24]
push 0
push eax
mov eax, dword [ebx + 0x34]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 4], 0
movss dword [ebp - 8], xmm0
push dword [eax]
push edx
call ecx
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
cmp eax, dword [ebx + 0x16c]
ja 0x10050173
call esi
mov ecx, dword [ebx + 0x16c]
sub ecx, eax
mov eax, 0x10624dd3
mul ecx
mov eax, 0x91a2b3c5
mov ecx, edx
shr ecx, 6
mul ecx
mov esi, edx
xor edx, edx
shr esi, 0xb
imul eax, esi, 0xe10
sub ecx, eax
mov eax, ecx
mov ecx, 0x3c
div ecx
push edx
push eax
push esi
lea eax, [ebp - 0x178]
push str._02d:_02d:_02d
push eax
call fcn.1001f530
add esp, 0x14
lea eax, [ebp - 0x178]
push 1
push 0xffffffffffffffff
push 0x100
push 0
push 0
push 0x88
push 0x320
push ecx
push eax
jmp 0x10050190
push 1
push 0xffffffffffffffff
push 0x100
push 0
push 0
push 0x88
push 0x320
push ecx
push str.Reload_Portal
mov eax, dword [0x101195ec]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 0x24]
call fcn.10036a40
add esp, 0x24
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret