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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e993e
mov eax, dword fs:[0]
push eax
sub esp, 0x4c4
mov eax, dword [0x677010]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, edx
mov dword [ebp - 0x10c], eax
mov edx, ecx
mov dword [ebp - 0x128], edx
mov ecx, dword [ebp + 8]
xor esi, esi
movsd xmm0, qword [0x644330]
mov dword [ebp - 0x114], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x108], esi
mov byte [ebp - 0x12c], 0
mov dword [ebp - 0x118], esi
movsd qword [ebp - 0x138], xmm0
test eax, eax
jne 0x40e207
mov dword [ebp - 0x11c], 0xffffffff
jmp 0x40e293
mov ecx, dword [edx]
cmp dword [ecx - 0xc], esi
jge 0x40e21a
mov dword [ebp - 0x11c], 0xffffffff
jmp 0x40e293
push eax
push ecx
call fcn.005c01d4
mov edi, eax
add esp, 8
test edi, edi
jne 0x40e236
mov dword [ebp - 0x11c], 0xffffffff
jmp 0x40e28d
mov eax, dword [ebp - 0x128]
mov eax, dword [eax]
sub edi, eax
sar edi, 1
mov dword [ebp - 0x11c], edi
js 0x40e28d
mov ecx, dword [ebp - 0x114]
test ecx, ecx
je 0x40e278
cmp edi, dword [eax - 0xc]
jg 0x40e278
push ecx
lea eax, [eax + edi*2]
push eax
call fcn.005c01d4
mov edi, eax
add esp, 8
test edi, edi
je 0x40e278
mov eax, dword [ebp - 0x128]
sub edi, dword [eax]
sar edi, 1
jmp 0x40e27b
or edi, 0xffffffff
mov dword [ebp - 0x118], edi
cmp edi, dword [ebp - 0x11c]
jle 0x40f3f9
mov eax, dword [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x114], eax
call fcn.0041db40
cmp dword [eax + 4], 3
jl 0x40e832
call fcn.0041db40
sub esp, 8
lea ecx, [ebp - 0x2c0]
mov esi, eax
mov dword [ebp - 0x120], esi
call fcn.00415be0
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0
call fcn.00407a4a
push str.TRACE
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00414ef0
lea ecx, [ebp - 0x58]
call fcn.00407a4a
xor eax, eax
mov byte [ebp - 4], 2
mov dword [ebp - 0x10c], eax
cmp dword [esi + 0xc], eax
jle 0x40e378
cmp eax, 0xa
jge 0x40e378
mov edx, dword [ebp - 0x44]
mov eax, edx
mov ecx, dword [ebp - 0x48]
sub eax, ecx
cmp eax, 2
jb 0x40e348
cmp edx, 8
lea esi, [ebp - 0x58]
push 4
cmovae esi, dword [ebp - 0x58]
lea edi, [ecx + 2]
push 0x63e4c4
mov dword [ebp - 0x48], edi
lea eax, [esi + ecx*2]
push eax
call fcn.005bfc60
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov esi, dword [ebp - 0x120]
jmp 0x40e366
push 2
push 0x63e4c4
mov byte [ebp - 0x104], 0
lea ecx, [ebp - 0x58]
push dword [ebp - 0x104]
push 2
call fcn.0041ea00
mov eax, dword [ebp - 0x10c]
inc eax
mov dword [ebp - 0x10c], eax
cmp eax, dword [esi + 0xc]
jl 0x40e303
lea ecx, [ebp - 0x88]
call fcn.00407a4a
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 3
call fcn.00407a4a
mov byte [ebp - 4], 4
call fcn.005c8926
lea eax, [ebp - 0x28]
push 0xb
push eax
call fcn.005c8a22
add esp, 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x88]
push eax
call fcn.00414ef0
sub esp, 8
lea ecx, [ebp - 0x210]
call fcn.00415be0
mov byte [ebp - 4], 5
cmp dword [esi + 0x10], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x40e3e9
call eax
push 0
lea ecx, [ebp - 0x200]
mov dword [esi + 0x10], eax
call fcn.004101b0
jmp 0x40e415
call eax
sub eax, dword [esi + 0x10]
lea ecx, [ebp - 0x200]
movd xmm0, eax
cvtdq2pd xmm1, xmm0
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x644390]
divsd xmm1, qword [ebp - 0x138]
call fcn.0041e250
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00416830
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x40e484
mov ecx, dword [ebp - 0xa0]
inc eax
cmp eax, 0x7fffffff
ja 0x40e582
add eax, eax
cmp eax, 0x1000
jb 0x40e47b
test cl, 0x1f
jne 0x40e582
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e582
sub ecx, eax
cmp ecx, 4
jb 0x40e582
cmp ecx, 0x23
ja 0x40e582
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
movups xmm0, xmmword [ebp - 0x100]
xor eax, eax
mov dword [ebp - 0x90], 0
mov word [ebp - 0xa0], ax
lea ecx, [ebp - 0x100]
movups xmmword [ebp - 0xa0], xmm0
mov dword [ebp - 0x8c], 7
movq xmm0, qword [ebp - 0xf0]
movq qword [ebp - 0x90], xmm0
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], 7
mov word [ebp - 0x100], ax
mov byte [ebp - 4], 5
call fcn.004075ab
lea ecx, [ebp - 0x210]
mov byte [ebp - 4], 4
call fcn.00415840
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
push 0x2040
cmovae eax, dword [ebp - 0x58]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x124]
push eax
call fcn.005be8d1
mov ecx, dword [ebp - 0x2b0]
lea edx, [ebp - 0x2b0]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, edx
push ecx
call eax
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 7
lea edx, [ebp - 0x88]
cmp dword [ebp - 0x74], 8
lea ecx, [ebp - 0x2b0]
push eax
cmovae edx, dword [ebp - 0x88]
mov byte [ebp - 4], 4
call fcn.004137f0
mov esi, eax
lea eax, [ebp - 0x110]
push 0x10
push eax
call fcn.005be8d1
add esp, 0x1c
mov edx, 0x63e114
mov ecx, esi
mov edi, eax
call fcn.00413320
mov esi, eax
test esi, esi
jne 0x40e587
xor ecx, ecx
jmp 0x40e58e
call fcn.005c3f14
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
mov eax, dword [edi]
push ecx
call eax
push 0
lea eax, [ebp - 0x150]
push 6
push eax
call fcn.005be8ff
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov esi, eax
mov eax, 0x30
push 0
push 3
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x160]
push eax
call fcn.005be8e5
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov ecx, dword [ebp - 0x90]
mov byte [ebp - 4], 8
lea edx, [ebp - 0xa0]
cmp dword [ebp - 0x8c], 8
push ecx
cmovae edx, dword [ebp - 0xa0]
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.004137f0
push 0
mov edi, eax
lea eax, [ebp - 0xf8]
push 5
push eax
call fcn.005be8ff
mov edx, 0x63e114
mov ecx, edi
mov esi, eax
call fcn.00413320
mov edx, esi
mov ecx, eax
call fcn.0041e9d0
mov esi, eax
mov eax, 0x20
push 0x40
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x140]
push eax
call fcn.005be8d1
mov ecx, dword [esi]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [ebp - 0x30]
add esp, 0x40
mov byte [ebp - 4], 9
lea edx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
mov ecx, esi
push eax
cmovae edx, dword [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.004137f0
add esp, 4
mov edx, 0x63e504
mov ecx, eax
call fcn.00413320
mov edx, dword [ebp - 0x104]
mov ecx, eax
call fcn.00413320
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6835d0]
cmp eax, dword [ecx + 4]
jle 0x40e6e3
push 0x6835d0
call fcn.005bcd79
add esp, 4
cmp dword [0x6835d0], 0xffffffff
jne 0x40e6e3
mov ecx, 0x6835d4
call fcn.00407a4a
push 0x5ff870
call fcn.005bc9d9
push 0x6835d0
call fcn.005bcd3a
add esp, 8
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x2a8]
call fcn.00416830
mov esi, 3
mov dword [ebp - 0x108], esi
mov byte [ebp - 4], 0xa
mov eax, dword [0x6835e8]
cmp eax, 8
jb 0x40e759
mov ecx, dword [0x6835d4]
inc eax
cmp eax, 0x7fffffff
ja 0x40e582
add eax, eax
cmp eax, 0x1000
jb 0x40e750
test cl, 0x1f
jne 0x40e582
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e582
sub ecx, eax
cmp ecx, 4
jb 0x40e582
cmp ecx, 0x23
ja 0x40e582
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
movups xmm0, xmmword [ebp - 0x70]
xor eax, eax
lea ecx, [ebp - 0x70]
mov word [ebp - 0x70], ax
movups xmmword [0x6835d4], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [0x6835e4], xmm0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov byte [ebp - 4], 4
call fcn.004075ab
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 3
call fcn.004075ab
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 2
call fcn.004075ab
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.004075ab
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.004075ab
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 4], 0xffffffff
call fcn.00415840
call fcn.0041db40
mov ecx, dword [0x6835e4]
mov dword [ebp - 4], 0xb
mov edx, 0x6835d4
cmp dword [0x6835e8], 8
push ecx
cmovae edx, dword [0x6835d4]
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.004137f0
add esp, 4
mov edx, str.len
mov ecx, eax
push dword [ebp - 0x114]
call fcn.00411d70
mov ecx, eax
call fcn.004101b0
push eax
call fcn.00414850
add esp, 4
call fcn.0041db40
cmp dword [eax + 4], 3
jl 0x40edc0
call fcn.0041db40
sub esp, 8
lea ecx, [ebp - 0x370]
mov esi, eax
mov dword [ebp - 0x104], esi
call fcn.00415be0
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0xc
call fcn.00407a4a
push str.TRACE
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xd
call fcn.00414ef0
lea ecx, [ebp - 0x58]
call fcn.00407a4a
xor eax, eax
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x10c], eax
cmp dword [esi + 0xc], eax
jle 0x40e90a
cmp eax, 0xa
jge 0x40e90a
mov edx, dword [ebp - 0x44]
mov eax, edx
mov ecx, dword [ebp - 0x48]
sub eax, ecx
cmp eax, 2
jb 0x40e8da
cmp edx, 8
lea esi, [ebp - 0x58]
push 4
cmovae esi, dword [ebp - 0x58]
lea edi, [ecx + 2]
push 0x63e4c4
mov dword [ebp - 0x48], edi
lea eax, [esi + ecx*2]
push eax
call fcn.005bfc60
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov esi, dword [ebp - 0x104]
jmp 0x40e8f8
push 2
push 0x63e4c4
mov byte [ebp - 0x120], 0
lea ecx, [ebp - 0x58]
push dword [ebp - 0x120]
push 2
call fcn.0041ea00
mov eax, dword [ebp - 0x10c]
inc eax
mov dword [ebp - 0x10c], eax
cmp eax, dword [esi + 0xc]
jl 0x40e895
lea ecx, [ebp - 0x88]
call fcn.00407a4a
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xf
call fcn.00407a4a
mov byte [ebp - 4], 0x10
call fcn.005c8926
lea eax, [ebp - 0x28]
push 0xb
push eax
call fcn.005c8a22
add esp, 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x88]
push eax
call fcn.00414ef0
sub esp, 8
lea ecx, [ebp - 0x210]
call fcn.00415be0
mov byte [ebp - 4], 0x11
cmp dword [esi + 0x10], 0
jne 0x40e97a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0
lea ecx, [ebp - 0x200]
mov dword [esi + 0x10], eax
call fcn.004101b0
jmp 0x40e9aa
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x10]
lea ecx, [ebp - 0x200]
movd xmm0, eax
cvtdq2pd xmm1, xmm0
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x644390]
divsd xmm1, qword [ebp - 0x138]
call fcn.0041e250
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00416830
mov eax, dword [ebp - 0x108]
or eax, 4
mov dword [ebp - 0x108], eax
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0xa4]
cmp eax, 8
jb 0x40ea25
mov ecx, dword [ebp - 0xb8]
inc eax
cmp eax, 0x7fffffff
ja 0x40e582
add eax, eax
cmp eax, 0x1000
jb 0x40ea1c
test cl, 0x1f
jne 0x40e582
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e582
sub ecx, eax
cmp ecx, 4
jb 0x40e582
cmp ecx, 0x23
ja 0x40e582
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
movups xmm0, xmmword [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0xa8], 0
mov word [ebp - 0xb8], ax
lea ecx, [ebp - 0x40]
movups xmmword [ebp - 0xb8], xmm0
mov dword [ebp - 0xa4], 7
movq xmm0, qword [ebp - 0x30]
movq qword [ebp - 0xa8], xmm0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 0x11
call fcn.004075ab
lea ecx, [ebp - 0x210]
mov byte [ebp - 4], 0x10
call fcn.00415840
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
push 0x2040
cmovae eax, dword [ebp - 0x58]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x140]
push eax
call fcn.005be8d1
mov ecx, dword [ebp - 0x360]
lea edx, [ebp - 0x360]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, edx
push ecx
call eax
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 0x13
lea edx, [ebp - 0x88]
cmp dword [ebp - 0x74], 8
lea ecx, [ebp - 0x360]
push eax
cmovae edx, dword [ebp - 0x88]
mov byte [ebp - 4], 0x10
call fcn.004137f0
mov esi, eax
lea eax, [ebp - 0x124]
push 0x10
push eax
call fcn.005be8d1
add esp, 0x1c
mov edx, 0x63e114
mov ecx, esi
mov edi, eax
call fcn.00413320
mov esi, eax
test esi, esi
jne 0x40eb11
xor ecx, ecx
jmp 0x40eb18
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
mov eax, dword [edi]
push ecx
call eax
push 0
lea eax, [ebp - 0xf8]
push 6
push eax
call fcn.005be8ff
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov esi, eax
mov eax, 0x30
push 0
push 3
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x160]
push eax
call fcn.005be8e5
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov ecx, dword [ebp - 0xa8]
mov byte [ebp - 4], 0x14
lea edx, [ebp - 0xb8]
cmp dword [ebp - 0xa4], 8
push ecx
cmovae edx, dword [ebp - 0xb8]
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.004137f0
push 0
mov edi, eax
lea eax, [ebp - 0x150]
push 5
push eax
call fcn.005be8ff
mov edx, 0x63e114
mov ecx, edi
mov esi, eax
call fcn.00413320
mov edx, esi
mov ecx, eax
call fcn.0041e9d0
mov esi, eax
mov eax, 0x20
push 0x40
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x110]
push eax
call fcn.005be8d1
mov ecx, dword [esi]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [ebp - 0x60]
add esp, 0x40
mov byte [ebp - 4], 0x15
lea edx, [ebp - 0x70]
cmp dword [ebp - 0x5c], 8
mov ecx, esi
push eax
cmovae edx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x10
call fcn.004137f0
add esp, 4
mov edx, 0x63e504
mov ecx, eax
call fcn.00413320
mov edx, dword [ebp - 0x104]
mov ecx, eax
call fcn.00413320
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6835d0]
cmp eax, dword [ecx + 4]
jle 0x40ec6d
push 0x6835d0
call fcn.005bcd79
add esp, 4
cmp dword [0x6835d0], 0xffffffff
jne 0x40ec6d
mov ecx, 0x6835d4
call fcn.00407a4a
push 0x5ff870
call fcn.005bc9d9
push 0x6835d0
call fcn.005bcd3a
add esp, 8
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x358]
call fcn.00416830
mov esi, dword [ebp - 0x108]
or esi, 8
mov dword [ebp - 0x108], esi
mov byte [ebp - 4], 0x16
mov eax, dword [0x6835e8]
cmp eax, 8
jb 0x40ece7
mov ecx, dword [0x6835d4]
inc eax
cmp eax, 0x7fffffff
ja 0x40e582
add eax, eax
cmp eax, 0x1000
jb 0x40ecde
test cl, 0x1f
jne 0x40e582
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e582
sub ecx, eax
cmp ecx, 4
jb 0x40e582
cmp ecx, 0x23
ja 0x40e582
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
movups xmm0, xmmword [ebp - 0x40]
xor eax, eax
lea ecx, [ebp - 0x40]
mov word [ebp - 0x40], ax
movups xmmword [0x6835d4], xmm0
movq xmm0, qword [ebp - 0x30]
movq qword [0x6835e4], xmm0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov byte [ebp - 4], 0x10
call fcn.004075ab
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xf
call fcn.004075ab
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xe
call fcn.004075ab
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xd
call fcn.004075ab
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xc
call fcn.004075ab
lea ecx, [ebp - 0x370]
mov dword [ebp - 4], 0xffffffff
call fcn.00415840
call fcn.0041db40
mov ecx, dword [0x6835e4]
mov dword [ebp - 4], 0x17
mov edx, 0x6835d4
cmp dword [0x6835e8], 8
push ecx
cmovae edx, dword [0x6835d4]
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.004137f0
add esp, 4
mov edx, 0x63de7c
mov ecx, eax
push dword [ebp - 0x11c]
call fcn.00411d70
mov ecx, eax
call fcn.004101b0
push eax
call fcn.00414850
add esp, 4
call fcn.0041db40
cmp dword [eax + 4], 3
jl 0x40f34e
call fcn.0041db40
sub esp, 8
lea ecx, [ebp - 0x420]
mov edi, eax
mov dword [ebp - 0x104], edi
call fcn.00415be0
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0x18
call fcn.00407a4a
push str.TRACE
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x19
call fcn.00414ef0
lea ecx, [ebp - 0x58]
call fcn.00407a4a
xor eax, eax
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x10c], eax
cmp dword [edi + 0xc], eax
jle 0x40ee9e
cmp eax, 0xa
jge 0x40ee98
mov edx, dword [ebp - 0x44]
mov eax, edx
mov ecx, dword [ebp - 0x48]
sub eax, ecx
cmp eax, 2
jb 0x40ee68
cmp edx, 8
lea esi, [ebp - 0x58]
push 4
cmovae esi, dword [ebp - 0x58]
lea edi, [ecx + 2]
push 0x63e4c4
mov dword [ebp - 0x48], edi
lea eax, [esi + ecx*2]
push eax
call fcn.005bfc60
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov edi, dword [ebp - 0x104]
jmp 0x40ee86
push 2
push 0x63e4c4
mov byte [ebp - 0x120], 0
lea ecx, [ebp - 0x58]
push dword [ebp - 0x120]
push 2
call fcn.0041ea00
mov eax, dword [ebp - 0x10c]
inc eax
mov dword [ebp - 0x10c], eax
cmp eax, dword [edi + 0xc]
jl 0x40ee23
mov esi, dword [ebp - 0x108]
lea ecx, [ebp - 0x88]
call fcn.00407a4a
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x1b
call fcn.00407a4a
mov byte [ebp - 4], 0x1c
call fcn.005c8926
lea eax, [ebp - 0x28]
push 0xb
push eax
call fcn.005c8a22
add esp, 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x88]
push eax
call fcn.00414ef0
sub esp, 8
lea ecx, [ebp - 0x210]
call fcn.00415be0
mov byte [ebp - 4], 0x1d
cmp dword [edi + 0x10], 0
jne 0x40ef0e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0
lea ecx, [ebp - 0x200]
mov dword [edi + 0x10], eax
call fcn.004101b0
jmp 0x40ef3e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x10]
lea ecx, [ebp - 0x200]
movd xmm0, eax
cvtdq2pd xmm1, xmm0
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x644390]
divsd xmm1, qword [ebp - 0x138]
call fcn.0041e250
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00416830
or esi, 0x10
mov dword [ebp - 0x108], esi
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0xbc]
cmp eax, 8
jb 0x40efb3
mov ecx, dword [ebp - 0xd0]
inc eax
cmp eax, 0x7fffffff
ja 0x40e582
add eax, eax
cmp eax, 0x1000
jb 0x40efaa
test cl, 0x1f
jne 0x40e582
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e582
sub ecx, eax
cmp ecx, 4
jb 0x40e582
cmp ecx, 0x23
ja 0x40e582
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
movups xmm0, xmmword [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xd0], ax
lea ecx, [ebp - 0x40]
movups xmmword [ebp - 0xd0], xmm0
mov dword [ebp - 0xbc], 7
movq xmm0, qword [ebp - 0x30]
movq qword [ebp - 0xc0], xmm0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 0x1d
call fcn.004075ab
lea ecx, [ebp - 0x210]
mov byte [ebp - 4], 0x1c
call fcn.00415840
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
push 0x2040
cmovae eax, dword [ebp - 0x58]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x140]
push eax
call fcn.005be8d1
mov ecx, dword [ebp - 0x410]
lea edx, [ebp - 0x410]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, edx
push ecx
call eax
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 0x1f
lea edx, [ebp - 0x88]
cmp dword [ebp - 0x74], 8
lea ecx, [ebp - 0x410]
push eax
cmovae edx, dword [ebp - 0x88]
mov byte [ebp - 4], 0x1c
call fcn.004137f0
mov esi, eax
lea eax, [ebp - 0x124]
push 0x10
push eax
call fcn.005be8d1
add esp, 0x1c
mov edx, 0x63e114
mov ecx, esi
mov edi, eax
call fcn.00413320
mov esi, eax
test esi, esi
jne 0x40f09f
xor ecx, ecx
jmp 0x40f0a6
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
mov eax, dword [edi]
push ecx
call eax
push 0
lea eax, [ebp - 0xf8]
push 6
push eax
call fcn.005be8ff
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov esi, eax
mov eax, 0x30
push 0
push 3
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x160]
push eax
call fcn.005be8e5
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov ecx, dword [ebp - 0xc0]
mov byte [ebp - 4], 0x20
lea edx, [ebp - 0xd0]
cmp dword [ebp - 0xbc], 8
push ecx
cmovae edx, dword [ebp - 0xd0]
mov ecx, eax
mov byte [ebp - 4], 0x1c
call fcn.004137f0
push 0
mov edi, eax
lea eax, [ebp - 0x150]
push 5
push eax
call fcn.005be8ff
mov edx, 0x63e114
mov ecx, edi
mov esi, eax
call fcn.00413320
mov edx, esi
mov ecx, eax
call fcn.0041e9d0
mov esi, eax
mov eax, 0x20
push 0x40
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x110]
push eax
call fcn.005be8d1
mov ecx, dword [esi]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [ebp - 0x60]
add esp, 0x40
mov byte [ebp - 4], 0x21
lea edx, [ebp - 0x70]
cmp dword [ebp - 0x5c], 8
mov ecx, esi
push eax
cmovae edx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x1c
call fcn.004137f0
add esp, 4
mov edx, 0x63e504
mov ecx, eax
call fcn.00413320
mov edx, dword [ebp - 0x104]
mov ecx, eax
call fcn.00413320
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x6835d0]
cmp eax, dword [ecx + 4]
jle 0x40f1fb
push 0x6835d0
call fcn.005bcd79
add esp, 4
cmp dword [0x6835d0], 0xffffffff
jne 0x40f1fb
mov ecx, 0x6835d4
call fcn.00407a4a
push 0x5ff870
call fcn.005bc9d9
push 0x6835d0
call fcn.005bcd3a
add esp, 8
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x408]
call fcn.00416830
mov eax, dword [ebp - 0x108]
or eax, 0x20
mov dword [ebp - 0x108], eax
mov byte [ebp - 4], 0x22
mov eax, dword [0x6835e8]
cmp eax, 8
jb 0x40f275
mov ecx, dword [0x6835d4]
inc eax
cmp eax, 0x7fffffff
ja 0x40e582
add eax, eax
cmp eax, 0x1000
jb 0x40f26c
test cl, 0x1f
jne 0x40e582
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e582
sub ecx, eax
cmp ecx, 4
jb 0x40e582
cmp ecx, 0x23
ja 0x40e582
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
movups xmm0, xmmword [ebp - 0x40]
xor eax, eax
lea ecx, [ebp - 0x40]
mov word [ebp - 0x40], ax
movups xmmword [0x6835d4], xmm0
movq xmm0, qword [ebp - 0x30]
movq qword [0x6835e4], xmm0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov byte [ebp - 4], 0x1c
call fcn.004075ab
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x1b
call fcn.004075ab
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x1a
call fcn.004075ab
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x19
call fcn.004075ab
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x18
call fcn.004075ab
lea ecx, [ebp - 0x420]
mov dword [ebp - 4], 0xffffffff
call fcn.00415840
call fcn.0041db40
mov ecx, dword [0x6835e4]
mov dword [ebp - 4], 0x23
mov edx, 0x6835d4
cmp dword [0x6835e8], 8
push ecx
cmovae edx, dword [0x6835d4]
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.004137f0
add esp, 4
mov edx, 0x63de80
mov ecx, eax
push dword [ebp - 0x118]
call fcn.00411d70
mov ecx, eax
call fcn.004101b0
push eax
call fcn.00414850
add esp, 4
mov edx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x11c]
sub eax, edx
sub eax, ecx
push eax
lea eax, [edx + ecx]
mov ecx, dword [ebp - 0x128]
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.00410390
mov edi, dword [ebp - 0x130]
mov ecx, edi
push eax
mov dword [ebp - 4], 0x24
call fcn.00410610
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov ecx, dword [ebp - 0x104]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x40f3dc
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40f3d8
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x40f3d8
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x40f3dc
mov ecx, edx
call esi
mov eax, dword [edi]
mov edx, 1
mov ecx, dword [ebp - 0x12c]
movzx ecx, cl
cmp dword [eax - 0xc], 0
cmovg ecx, edx
mov dword [ebp - 0x12c], ecx
call fcn.0041db40
cmp dword [eax + 4], 3
jl 0x40f943
call fcn.0041db40
sub esp, 8
lea ecx, [ebp - 0x4d0]
mov esi, eax
mov dword [ebp - 0x104], esi
call fcn.00415be0
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0x25
call fcn.00407a4a
push str.TRACE
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x26
call fcn.00414ef0
lea ecx, [ebp - 0x58]
call fcn.00407a4a
xor eax, eax
mov byte [ebp - 4], 0x27
mov dword [ebp - 0x114], eax
cmp dword [esi + 0xc], eax
jle 0x40f4d5
nop dword [eax]
cmp eax, 0xa
jge 0x40f4d5
mov edx, dword [ebp - 0x44]
mov eax, edx
mov ecx, dword [ebp - 0x48]
sub eax, ecx
cmp eax, 2
jb 0x40f4a5
cmp edx, 8
lea esi, [ebp - 0x58]
push 4
cmovae esi, dword [ebp - 0x58]
lea edi, [ecx + 2]
push 0x63e4c4
mov dword [ebp - 0x48], edi
lea eax, [esi + ecx*2]
push eax
call fcn.005bfc60
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
mov esi, dword [ebp - 0x104]
jmp 0x40f4c3
push 2
push 0x63e4c4
mov byte [ebp - 0x120], 0
lea ecx, [ebp - 0x58]
push dword [ebp - 0x120]
push 2
call fcn.0041ea00
mov eax, dword [ebp - 0x114]
inc eax
mov dword [ebp - 0x114], eax
cmp eax, dword [esi + 0xc]
jl 0x40f460
lea ecx, [ebp - 0x88]
call fcn.00407a4a
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0x28
call fcn.00407a4a
mov byte [ebp - 4], 0x29
call fcn.005c8926
lea eax, [ebp - 0x28]
push 0xb
push eax
call fcn.005c8a22
add esp, 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x88]
push eax
call fcn.00414ef0
sub esp, 8
lea ecx, [ebp - 0x210]
call fcn.00415be0
mov byte [ebp - 4], 0x2a
cmp dword [esi + 0x10], 0
jne 0x40f545
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0
lea ecx, [ebp - 0x200]
mov dword [esi + 0x10], eax
call fcn.004101b0
jmp 0x40f575
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x10]
lea ecx, [ebp - 0x200]
movd xmm0, eax
cvtdq2pd xmm1, xmm0
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x644390]
divsd xmm1, qword [ebp - 0x138]
call fcn.0041e250
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00416830
or dword [ebp - 0x108], 0x40
mov byte [ebp - 4], 0x2b
mov eax, dword [ebp - 0xd4]
cmp eax, 8
jb 0x40f5e8
mov ecx, dword [ebp - 0xe8]
inc eax
cmp eax, 0x7fffffff
ja 0x40e582
add eax, eax
cmp eax, 0x1000
jb 0x40f5df
test cl, 0x1f
jne 0x40e582
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e582
sub ecx, eax
cmp ecx, 4
jb 0x40e582
cmp ecx, 0x23
ja 0x40e582
mov ecx, eax
push ecx
call fcn.00476ee1
add esp, 4
movups xmm0, xmmword [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0xd8], 0
mov word [ebp - 0xe8], ax
lea ecx, [ebp - 0x40]
movups xmmword [ebp - 0xe8], xmm0
mov dword [ebp - 0xd4], 7
movq xmm0, qword [ebp - 0x30]
movq qword [ebp - 0xd8], xmm0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 0x2a
call fcn.004075ab
lea ecx, [ebp - 0x210]
mov byte [ebp - 4], 0x29
call fcn.00415840
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
push 0x2040
cmovae eax, dword [ebp - 0x58]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x140]
push eax
call fcn.005be8d1
mov ecx, dword [ebp - 0x4c0]
lea edx, [ebp - 0x4c0]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, edx
push ecx
call eax
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 0x2c
lea edx, [ebp - 0x88]
cmp dword [ebp - 0x74], 8
lea ecx, [ebp - 0x4c0]
push eax
cmovae edx, dword [ebp - 0x88]
mov byte [ebp - 4], 0x29
call fcn.004137f0
mov esi, eax
lea eax, [ebp - 0x138]
push 0x10
push eax
call fcn.005be8d1
add esp, 0x1c
mov edx, 0x63e114
mov ecx, esi
mov edi, eax
call fcn.00413320
mov esi, eax
test esi, esi
jne 0x40f6d4
xor ecx, ecx
jmp 0x40f6db
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
mov eax, dword [edi]
push ecx
call eax
push 0
lea eax, [ebp - 0xf8]
push 6
push eax
call fcn.005be8ff
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov esi, eax
mov eax, 0x30
push 0
push 3
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x160]
push eax
call fcn.005be8e5
mov edx, eax
mov ecx, esi
call fcn.0041e9d0
mov ecx, dword [ebp - 0xd8]
mov byte [ebp - 4], 0x2d
lea edx, [ebp - 0xe8]
cmp dword [ebp - 0xd4], 8
push ecx
cmovae edx, dword [ebp - 0xe8]
mov ecx, eax
mov byte [ebp - 4], 0x29
call fcn.004137f0
push 0
mov edi, eax
lea eax, [ebp - 0x150]
push 5
push eax
call fcn.005be8ff
mov edx, 0x63e114
mov ecx, edi
mov esi, eax
call fcn.00413320
mov edx, esi
mov ecx, eax
call fcn.0041e9d0
mov esi, eax
mov eax, 0x20
push 0x40
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x124]
push eax
call fcn.005be8d1
mov ecx, dword [esi]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [ebp - 0x60]
add esp, 0x40
mov byte [ebp - 4], 0x2e
lea edx, [ebp - 0x70]
cmp dword [ebp - 0x5c], 8
mov ecx, esi
push eax
cmovae edx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x29
call fcn.004137f0
add esp, 4
mov edx, 0x63e504
mov ecx, eax
call fcn.00413320
mov edx, dword [ebp - 0x104]
mov ecx, eax
call fcn.00413320
mov eax, dword fs:[0x2c]
mov edx, dword [eax]
mov eax, dword [0x6835d0]
cmp eax, dword [edx + 4]
jle 0x40f830
push 0x6835d0
call fcn.005bcd79
add esp, 4
cmp dword [0x6835d0], 0xffffffff
jne 0x40f830
mov ecx, 0x6835d4
call fcn.00407a4a
push 0x5ff870
call fcn.005bc9d9
push 0x6835d0
call fcn.005bcd3a
add esp, 8
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x4b8]
call fcn.00416830
or dword [ebp - 0x108], 0x80
mov byte [ebp - 4], 0x2f
mov eax, dword [0x6835e8]
cmp eax, 8
jb 0x40f869
inc eax
push 2
push eax
push dword [0x6835d4]
call fcn.0040626d
add esp, 0xc
movups xmm0, xmmword [ebp - 0x40]
xor eax, eax
lea ecx, [ebp - 0x40]
mov word [ebp - 0x40], ax
movups xmmword [0x6835d4], xmm0
movq xmm0, qword [ebp - 0x30]
movq qword [0x6835e4], xmm0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov byte [ebp - 4], 0x29
call fcn.004075ab
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0x28
call fcn.004075ab
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x27
call fcn.004075ab
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x26
call fcn.004075ab
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x25
call fcn.004075ab
lea ecx, [ebp - 0x4d0]
mov dword [ebp - 4], 0xffffffff
call fcn.00415840
call fcn.0041db40
mov ecx, dword [0x6835e4]
mov dword [ebp - 4], 0x30
mov edx, 0x6835d4
cmp dword [0x6835e8], 8
push ecx
cmovae edx, dword [0x6835d4]
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.004137f0
mov edx, str.value
mov ecx, eax
call fcn.00411d70
mov edx, dword [ebp - 0x130]
mov esi, eax
mov ecx, esi
mov edx, dword [edx]
call fcn.00413320
push esi
call fcn.00414850
add esp, 8
mov al, byte [ebp - 0x12c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005bc745
mov esp, ebp
pop ebp
ret