Function at 0x439a78
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
mov eax, dword [0x519008]
xor eax, esp
mov dword [esp + 0xd0], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x28], eax
mov al, byte [eax + 1]
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, ecx
mov ecx, dword [ebp + 0x18]
mov byte [esp + 0x14], al
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x44]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x4c]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
push edx
lea ecx, [esi + 0xd0]
mov dword [esp + 0x44], eax
push eax
mov dword [esp + 0x4c], edx
call fcn.00402240
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x4c]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x54]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
push edx
lea ecx, [esi + 0xe0]
mov dword [esp + 0x4c], eax
push eax
mov dword [esp + 0x54], edx
call fcn.00402240
mov cl, byte [esp + 0x14]
movzx edx, cl
lea eax, [edx - 0x42]
cmp eax, 0x21
ja case.0x439926.68
movzx eax, byte [eax + 0x43ada8]
jmp dword [eax*4 + 0x43ad80]
mov eax, dword [esp + 0x30]
xor cl, cl
mov al, byte [eax + 5]
mov word [edi], 0x5823
mov byte [edi + 3], al
xor eax, eax
mov byte [edi + 2], 5
add cl, byte [eax + edi]
inc eax
cmp eax, 4
jb 0x439944
mov byte [edi + 4], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
lea ecx, [esp + 0x38]
call fcn.00402110
lea ecx, [esp + 0x38]
call fcn.00402110
mov eax, dword [esp + 0x38]
xor cl, cl
mov word [edi], 0x5423
mov dword [edi + 3], eax
mov ax, word [esp + 0x3c]
mov word [edi + 7], ax
xor eax, eax
mov byte [edi + 2], 0xa
nop
add cl, byte [eax + edi]
inc eax
cmp eax, 9
jb 0x4399a0
mov byte [edi + 9], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov byte [edi], 0x23
xor dl, dl
mov byte [edi + 1], cl
mov ecx, dword [esp + 0x30]
mov byte [edi + 2], 0
mov al, byte [ecx + 3]
mov byte [edi + 3], al
mov al, byte [ecx + 4]
mov byte [edi + 4], al
mov al, byte [ecx + 5]
mov byte [edi + 5], al
mov al, byte [ecx + 6]
mov byte [edi + 6], al
mov al, byte [ecx + 7]
mov byte [edi + 7], al
xor eax, eax
mov byte [edi + 2], 9
add dl, byte [eax + edi]
inc eax
cmp eax, 8
jb 0x439a00
mov byte [edi + 8], dl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov dword [esi + 8], 2
mov al, byte [ecx + 3]
mov byte [esi + 0x10], al
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x34]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x3c]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
mov dword [esi + 0x18], eax
mov al, 1
mov dword [esi + 0x1c], edx
mov dword [esi + 0xc], 3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x54]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x5c]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
push edx
push eax
mov ecx, esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
call fcn.0043ae60
cmp dword [esi + 8], 1
mov eax, dword [esp + 0x30]
mov al, byte [eax + 3]
mov byte [esp + 0x13], al
jne 0x439b1f
test al, al
je 0x439b9a
mov byte [esi + 0x10], al
lea eax, [esp + 0x58]
push eax
mov dword [esi + 8], 2
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x5c]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x64]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov dword [esi + 0xc], 3
jmp 0x439b9a
lea eax, [esp + 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x64]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x6c]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
sub eax, dword [esi + 0x18]
sbb edx, dword [esi + 0x1c]
test edx, edx
ja 0x439b8c
jb 0x439b64
cmp eax, 0x5dc
jae 0x439b6b
mov ecx, 2
jmp 0x439b7d
test edx, edx
ja 0x439b8c
jb 0x439b78
cmp eax, 0x2ee0
jae 0x439b8c
mov ecx, 3
cmp byte [esp + 0x13], 0
mov dword [esi + 8], ecx
setne al
test al, al
je 0x439b9a
mov dword [esi + 0xc], 2
mov dword [esi + 8], 1
push ebx
push edi
mov ecx, esi
call fcn.00439340
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov esi, dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea eax, [esp + 0xa0]
push eax
call esi
lea eax, [esp + 0xb0]
push eax
call esi
mov al, byte [esp + 0xa0]
mov ecx, 0x11
mov word [edi], 0x4323
add al, 0x30
mov byte [edi + 2], 0
mov byte [edi + 3], al
mov al, byte [esp + 0xa2]
mov byte [edi + 4], al
mov al, byte [esp + 0xa6]
mov byte [edi + 5], al
mov al, byte [esp + 0xb8]
mov byte [edi + 6], al
mov al, byte [esp + 0xba]
mov byte [edi + 7], al
mov al, byte [esp + 0xbc]
mov byte [edi + 8], al
xor al, al
mov dword [edi + 9], 0x454b4146
mov dword [edi + 0xd], 0x55504320
lea esp, [esp]
add al, 1
mov byte [edi + ecx], al
mov byte [edi + ecx + 1], 0
add ecx, 2
cmp al, 0x31
jb 0x439c40
mov byte [edi + ecx], 7
xor dl, dl
inc ecx
mov al, cl
inc al
mov byte [edi + 2], al
xor eax, eax
test ecx, ecx
je 0x439c6d
add dl, byte [edi + eax]
inc eax
cmp eax, ecx
jb 0x439c65
mov byte [edi + ecx], dl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov byte [edi], 0x23
mov byte [edi + 1], cl
xor cl, cl
mov dword [edi + 3], 0x820202
xor eax, eax
mov byte [edi + 7], 0x56
mov byte [edi + 2], 9
lea esp, [esp]
add cl, byte [edi + eax]
inc eax
cmp eax, 8
jb 0x439cb0
mov byte [edi + 8], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
xor eax, eax
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov byte [edi], 0x23
mov byte [edi + 1], cl
xor cl, cl
mov word [edi + 3], 0x7978
xor eax, eax
mov byte [edi + 5], 0x7a
mov byte [edi + 2], 7
add cl, byte [edi + eax]
inc eax
cmp eax, 6
jb 0x439d12
mov byte [edi + 6], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esp + 0x30]
mov dl, byte [ecx + 3]
movzx eax, dl
add eax, 0xfffffffe
mov byte [esp + 0x13], dl
cmp eax, 0x21
ja case.0x439d58.5
jmp dword [eax*4 + 0x43adcc]
mov bl, byte [ecx + 2]
movzx eax, bl
push eax
push ecx
push edi
call fcn.00407040
mov ecx, dword [esp + 0x24]
add esp, 0xc
movzx eax, bl
mov word [ecx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
push 0x3e8
mov ecx, 0x51e8c0
call fcn.00401860
movzx ecx, ax
mov al, byte [esp + 0x13]
mov word [edi], 0x5023
mov byte [edi + 3], al
mov eax, ecx
shr eax, 8
mov byte [edi + 4], cl
xor cl, cl
mov byte [edi + 5], al
xor eax, eax
mov byte [edi + 2], 7
add cl, byte [edi + eax]
inc eax
cmp eax, 6
jb 0x439dc4
mov byte [edi + 6], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [esi + 0xf8]
or eax, dword [esi + 0xfc]
jne 0x439e53
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x6c]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x74]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
mov ecx, dword [esp + 0x30]
add eax, 0x1f40
mov dword [esi + 0xf8], eax
adc edx, 0
mov dword [esi + 0xc], 0x15
mov dword [esi + 0xfc], edx
mov dl, byte [esp + 0x13]
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov al, byte [ecx + 4]
mov byte [edi + 4], al
mov al, byte [ecx + 5]
xor cl, cl
mov byte [edi + 5], al
xor eax, eax
mov byte [edi + 2], 7
add cl, byte [edi + eax]
inc eax
cmp eax, 6
jb 0x439e73
mov byte [edi + 6], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov al, byte [ecx + 4]
mov byte [edi + 4], al
mov al, byte [ecx + 5]
mov byte [edi + 5], al
mov al, byte [ecx + 6]
xor cl, cl
mov byte [edi + 6], al
xor eax, eax
mov byte [edi + 2], 8
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x439ec5
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov al, byte [ecx + 4]
mov byte [edi + 4], al
mov al, byte [ecx + 5]
mov byte [edi + 5], al
mov al, byte [ecx + 6]
xor cl, cl
mov byte [edi + 6], al
xor eax, eax
mov byte [edi + 2], 8
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x439f17
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov ecx, 0x51e8c0
mov byte [edi + 2], 0
mov byte [edi + 3], dl
call fcn.00401760
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
test eax, eax
jns 0x439f6b
fadd qword [0x5143b0]
fstp qword [esp + 0x18]
fld qword [esp + 0x18]
fmul qword [0x5142e0]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fcomp qword [0x514310]
fnstsw ax
test ah, 0x41
jne 0x439f92
xor al, al
jmp 0x439f94
mov al, 1
mov byte [edi + 4], al
xor cl, cl
mov byte [edi + 2], 6
xor eax, eax
nop
add cl, byte [edi + eax]
inc eax
cmp eax, 5
jb 0x439fa0
mov byte [edi + 5], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov al, byte [ecx + 4]
mov byte [edi + 4], al
mov al, byte [ecx + 5]
mov byte [edi + 5], al
mov al, byte [ecx + 6]
xor cl, cl
mov byte [edi + 6], al
xor eax, eax
mov byte [edi + 2], 8
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x439ff2
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
lea ecx, [esp + 0x70]
call fcn.0042e3e0
lea ecx, [esp + 0x74]
call fcn.0042e700
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x74]
mov word [edi], 0x5023
mov byte [edi + 3], al
mov eax, ecx
shr eax, 0x16
and al, 0x1f
mov byte [edi + 4], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0xa
and al, 0x3f
and cl, 0x3f
mov byte [edi + 5], al
mov byte [edi + 6], cl
xor cl, cl
mov byte [edi + 2], 8
xor eax, eax
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x43a065
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
lea ecx, [esp + 0x78]
call fcn.0042e3e0
lea ecx, [esp + 0x7c]
call fcn.0042e700
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x78]
mov word [edi], 0x5023
mov byte [edi + 3], al
mov eax, ecx
shr eax, 0x10
add al, 0x30
mov byte [edi + 4], al
mov eax, ecx
shr eax, 8
mov byte [edi + 5], al
mov byte [edi + 6], cl
xor cl, cl
mov byte [edi + 2], 8
xor eax, eax
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x43a0d0
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov eax, 5
mov byte [edi + 2], 0
mov ecx, 0x40
mov byte [edi + 3], dl
mov byte [edi + 4], 1
jmp 0x43a120
mov word [edi + eax], 0x20
add eax, 2
sub ecx, 1
jne 0x43a120
mov dword [esp + 0x18], eax
lea edx, [edi + 0x45]
xor eax, eax
mov dword [edi + 5], 0x4e0045
push eax
push 0x40
lea ecx, [esp + 0xc8]
mov word [edi + 9], 0x31
mov dword [esp + 0xc8], 0x5d005d4
mov dword [esp + 0xcc], 0x5e405dc
mov dword [esp + 0xd0], 0x5d905d1
mov dword [esp + 0xd4], 0x2005ea
mov dword [esp + 0xd8], 0x5e205d4
mov dword [esp + 0xdc], 0x5e805d1
mov word [esp + 0xe0], ax
call fcn.004f49e0
mov ecx, dword [esp + 0x20]
add esp, 8
mov al, cl
xor dl, dl
inc al
mov byte [edi + 2], al
xor eax, eax
test ecx, ecx
je 0x439c6d
add dl, byte [edi + eax]
inc eax
cmp eax, ecx
jb 0x43a1b7
mov byte [edi + ecx], dl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov ecx, 0x51e8c0
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov byte [edi + 4], 0
call fcn.00401760
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
test eax, eax
jns 0x43a20e
fadd qword [0x5143b0]
fstp qword [esp + 0x18]
fld qword [esp + 0x18]
fmul qword [0x5142e0]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fcomp qword [0x514308]
fnstsw ax
test ah, 0x41
jne 0x43a237
xor al, al
xor cl, cl
jmp 0x43a251
push 0xc8
mov ecx, 0x51e8c0
call fcn.00401860
add eax, 0x32
movzx ecx, ax
mov eax, ecx
shr eax, 8
mov byte [edi + 5], cl
xor cl, cl
mov byte [edi + 6], al
xor eax, eax
mov byte [edi + 2], 8
nop
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x43a260
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
xor eax, eax
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], eax
mov dword [esi + 0xc0], eax
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], eax
mov dword [esi + 0xcc], eax
movzx eax, byte [ecx + 4]
mov dword [esi + 0xb8], eax
lea eax, [esp + 0x80]
push eax
mov byte [esi + 0xbc], 1
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x84]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x8c]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
add eax, 0xfa0
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0xc]
adc edx, 0
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0xb8]
mov dword [esi + 0xcc], edx
cmp eax, 8
jne 0x43a32f
mov dword [esi + 0xc], 0x14
jmp 0x43a33f
sub eax, 5
neg eax
sbb eax, eax
and eax, 0xfffffff0
add eax, 0x17
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x13]
xor cl, cl
mov word [edi], 0x5023
mov byte [edi + 3], al
xor eax, eax
mov byte [edi + 2], 5
add cl, byte [edi + eax]
inc eax
cmp eax, 4
jb 0x43a353
mov byte [edi + 4], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [esi + 0xb8]
cmp eax, 8
je 0x43a393
cmp eax, 5
jne case.0x439d58.5
mov word [edi], 0x5023
xor cl, cl
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov al, byte [esi + 0xbc]
mov byte [edi + 4], al
mov al, byte [esi + 0xbd]
mov byte [edi + 5], al
mov al, byte [esi + 0xbe]
mov byte [edi + 6], al
xor eax, eax
mov byte [edi + 2], 8
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x43a3c2
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov dh, byte [ecx + 4]
mov byte [edi + 4], dh
mov dl, byte [ecx + 5]
movzx ecx, byte [ecx + 6]
shl cx, 8
movzx eax, dl
or cx, ax
mov byte [edi + 5], dl
movzx eax, cx
xor cl, cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov al, byte [eax + 6]
mov byte [edi + 6], al
xor eax, eax
mov byte [edi + 2], 8
lea ecx, [ecx]
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x43a430
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov ecx, dword [esp + 0x18]
mov word [ebx], ax
movzx eax, dh
mov word [esi + eax*2 + 0x128], cx
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
movzx ecx, word [esi + 0x12a]
mov byte [edi + 4], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 5], al
movzx ecx, word [esi + 0x12c]
mov byte [edi + 6], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 7], al
movzx ecx, word [esi + 0x12e]
mov byte [edi + 8], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 9], al
movzx ecx, word [esi + 0x130]
mov byte [edi + 0xa], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 0xb], al
movzx ecx, word [esi + 0x132]
mov byte [edi + 0xc], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 0xd], al
movzx ecx, word [esi + 0x134]
mov byte [edi + 0xe], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 0xf], al
movzx ecx, word [esi + 0x136]
mov byte [edi + 0x10], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 0x11], al
movzx ecx, word [esi + 0x138]
mov byte [edi + 0x12], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 0x13], al
movzx ecx, word [esi + 0x13a]
mov byte [edi + 0x14], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 0x15], al
movzx ecx, word [esi + 0x13c]
mov byte [edi + 0x16], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 0x17], al
movzx ecx, word [esi + 0x13e]
mov byte [edi + 0x18], cl
mov eax, ecx
shr eax, 8
mov byte [edi + 0x19], al
movzx ecx, word [esi + 0x140]
mov eax, ecx
mov byte [edi + 0x1a], cl
shr eax, 8
mov byte [edi + 0x1b], al
movzx ecx, word [esi + 0x142]
mov eax, ecx
mov byte [edi + 0x1c], cl
shr eax, 8
mov byte [edi + 0x1d], al
movzx ecx, word [esi + 0x144]
mov eax, ecx
mov byte [edi + 0x1e], cl
shr eax, 8
xor cl, cl
mov byte [edi + 0x1f], al
xor eax, eax
mov byte [edi + 2], 0x21
jmp 0x43a580
add cl, byte [edi + eax]
inc eax
cmp eax, 0x20
jb 0x43a580
mov byte [edi + 0x20], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov al, byte [ecx + 4]
mov byte [edi + 4], al
mov al, byte [ecx + 4]
cmp al, 0xb
jne 0x43a604
movzx eax, word [esi + 0xd0]
mov ecx, 0x51e8c0
mov dword [esp + 0x18], eax
call fcn.00401760
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
test eax, eax
jns 0x43a5ec
fadd qword [0x5143b0]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fmul qword [0x5142e0]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
jmp 0x43a645
cmp al, 0xc
jne 0x43a662
movzx eax, word [esi + 0xe0]
mov ecx, 0x51e8c0
mov dword [esp + 0x18], eax
call fcn.00401760
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
test eax, eax
jns 0x43a62f
fadd qword [0x5143b0]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fmul qword [0x5142e0]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fcomp qword [0x5142f8]
mov ecx, dword [esp + 0x18]
fnstsw ax
test ah, 5
jp 0x43a657
inc ecx
mov eax, ecx
mov byte [edi + 5], cl
shr eax, 8
mov byte [edi + 6], al
xor cl, cl
mov byte [edi + 2], 8
xor eax, eax
lea ebx, [ebx]
add cl, byte [edi + eax]
inc eax
cmp eax, 7
jb 0x43a670
mov byte [edi + 7], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov al, byte [ecx + 4]
cmp al, 0xb
jne 0x43a6ae
mov al, byte [ecx + 5]
mov byte [esi + 0xd2], al
jmp 0x43a6bb
cmp al, 0xc
jne 0x43a6bb
mov al, byte [ecx + 5]
mov byte [esi + 0xe2], al
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov al, byte [ecx + 4]
mov byte [edi + 4], al
mov al, byte [ecx + 5]
xor cl, cl
mov byte [edi + 5], al
xor eax, eax
mov byte [edi + 2], 7
jmp 0x43a6e0
add cl, byte [edi + eax]
inc eax
cmp eax, 6
jb 0x43a6e0
mov byte [edi + 6], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
xor cl, cl
mov byte [edi + 3], dl
xor eax, eax
mov byte [edi + 2], 5
lea esp, [esp]
add cl, byte [edi + eax]
inc eax
cmp eax, 4
jb 0x43a720
mov byte [edi + 4], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
xor cl, cl
mov byte [edi + 3], dl
xor eax, eax
mov byte [edi + 2], 5
lea esp, [esp]
add cl, byte [edi + eax]
inc eax
cmp eax, 4
jb 0x43a760
mov byte [edi + 4], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
xor cl, cl
mov byte [edi + 3], dl
xor eax, eax
mov dword [edi + 4], 0xdc201f1e
mov byte [edi + 8], 0
mov byte [edi + 2], 0xa
add cl, byte [edi + eax]
inc eax
cmp eax, 9
jb 0x43a7a7
mov byte [edi + 9], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov al, byte [ecx + 4]
mov word [edi], 0x5023
mov byte [edi + 3], dl
mov byte [edi + 4], al
test al, al
jne 0x43a824
mov ch, 0x20
mov byte [esp + 0x24], 3
mov bl, byte [esp + 0x24]
mov dl, 2
mov byte [esp + 0x26], 0x41
mov ah, 0x12
mov byte [esp + 0x27], 6
mov dh, 0x38
mov cl, byte [esp + 0x27]
mov bh, ch
mov byte [esp + 0x14], al
mov al, byte [esp + 0x26]
mov byte [esp + 0x17], 4
mov byte [esp + 0x16], 1
mov byte [esp + 0x15], 0x10
mov byte [esp + 0x13], 0x37
jmp 0x43a84d
mov byte [esp + 0x14], 1
mov dl, 0x20
mov byte [esp + 0x17], 6
mov ah, 1
mov ch, 0x43
mov byte [esp + 0x16], 0
mov dh, 0x35
mov byte [esp + 0x15], 8
mov bl, 5
mov byte [esp + 0x13], 0x39
mov bh, 0x31
mov al, 0x42
mov cl, 0x13
mov byte [edi + 5], cl
mov cl, byte [esp + 0x13]
mov byte [edi + 6], cl
mov cl, byte [esp + 0x17]
mov byte [edi + 7], al
mov al, byte [esp + 0x15]
mov byte [edi + 8], al
mov al, byte [esp + 0x14]
mov byte [edi + 9], bh
mov byte [edi + 0xa], bl
mov bl, byte [esp + 0x16]
mov word [edi + 0xb], 0x1401
mov byte [edi + 0xd], bl
mov ebx, dword [esp + 0x18]
mov byte [edi + 0xe], dh
mov byte [edi + 0xf], ch
mov byte [edi + 0x10], ah
mov byte [edi + 0x11], dl
mov byte [edi + 0x12], cl
xor cl, cl
mov word [edi + 0x13], 0x1401
mov byte [edi + 0x15], al
xor eax, eax
mov byte [edi + 2], 0x17
add cl, byte [edi + eax]
inc eax
cmp eax, 0x16
jb 0x43a8a0
mov byte [edi + 0x16], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov ecx, 0x51e8c0
mov byte [edi + 2], 0
push 0x320
mov byte [edi + 3], dl
call fcn.00401860
add eax, 0x50
movzx ecx, ax
mov eax, ecx
mov byte [edi + 4], cl
shr eax, 8
mov ecx, 0x51e8c0
push 0xfa
mov byte [edi + 5], al
call fcn.00401860
add eax, 0x50
movzx ecx, ax
mov eax, ecx
mov byte [edi + 6], cl
shr eax, 8
xor cl, cl
mov byte [edi + 7], al
xor eax, eax
mov byte [edi + 2], 9
add cl, byte [edi + eax]
inc eax
cmp eax, 8
jb 0x43a920
mov byte [edi + 8], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
xor cl, cl
mov byte [edi + 3], dl
xor eax, eax
mov byte [edi + 4], 0
mov dword [edi + 5], 0x20202020
mov dword [edi + 9], 0x20202020
mov dword [edi + 0xd], 0x20202020
mov dword [edi + 0x11], 0x20202020
mov dword [edi + 0x15], 0x20202020
mov dword [edi + 0x19], 0x20202020
mov dword [edi + 0x1d], 0x20202020
mov dword [edi + 0x21], 0x20202020
mov word [edi + 5], 0x4556
mov byte [edi + 7], 0x52
mov word [edi + 9], 0x4e41
mov byte [edi + 0xb], 0x44
mov dword [edi + 0xd], 0x45444f4d
mov byte [edi + 0x11], 0x4c
mov byte [edi + 2], 0x26
add cl, byte [edi + eax]
inc eax
cmp eax, 0x25
jb 0x43a9b7
mov byte [edi + 0x25], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
lea eax, [esp + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x8c]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x94]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
add eax, 0x1388
mov dword [esi + 0xf0], eax
mov al, byte [esp + 0x13]
adc edx, 0
mov dword [esi + 0xf4], edx
xor cl, cl
mov word [edi], 0x5023
mov byte [edi + 3], al
xor eax, eax
mov byte [edi + 2], 5
add cl, byte [edi + eax]
inc eax
cmp eax, 4
jb 0x43aa46
mov byte [edi + 4], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
xor cl, cl
mov byte [edi + 3], dl
xor eax, eax
mov word [edi + 4], 0x220c
mov byte [edi + 2], 7
add cl, byte [edi + eax]
inc eax
cmp eax, 6
jb 0x43aa88
mov byte [edi + 6], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x94]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0x9c]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
add eax, 0x1388
mov dword [esi + 0x108], 0x10000
mov dword [esi + 0x100], eax
mov eax, 0x121d
adc edx, 0
xor cl, cl
mov dword [esi + 0x104], edx
mov word [esi + 0x120], ax
mov al, byte [esp + 0x13]
mov dword [esi + 0x10c], 0x7b000c
mov dword [esi + 0x110], 0x303904d2
mov dword [esi + 0x114], 0x570008
mov dword [esi + 0x118], 0x223d036c
mov dword [esi + 0x11c], 0xffffd431
mov word [edi], 0x5023
mov byte [edi + 3], al
xor eax, eax
mov byte [edi + 2], 5
nop
add cl, byte [edi + eax]
inc eax
cmp eax, 4
jb 0x43ab60
mov byte [edi + 4], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov edx, 6
mov al, byte [esi + 0x108]
mov byte [edi + 4], al
mov al, byte [esi + 0x109]
add esi, 0x10a
mov byte [edi + 5], al
lea ebx, [edx + 6]
movzx ecx, word [esi]
lea esi, [esi + 2]
mov eax, ecx
mov byte [edi + edx], cl
shr eax, 8
mov byte [edi + edx + 1], al
add edx, 2
sub ebx, 1
jne 0x43abb8
mov ebx, dword [esp + 0x18]
mov al, dl
inc al
xor cl, cl
mov byte [edi + 2], al
xor eax, eax
test edx, edx
je 0x43abed
add cl, byte [edi + eax]
inc eax
cmp eax, edx
jb 0x43abe5
mov byte [edi + edx], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
lea eax, [esp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov ecx, dword [esp + 0x9c]
sub ecx, dword [0x51dbf0]
push dword [0x51dbe8]
mov eax, dword [esp + 0xa4]
sbb eax, dword [0x51dbf4]
push eax
push ecx
call fcn.004fce10
add eax, 0x1388
mov dword [esi + 0x108], 0x10000
mov dword [esi + 0x100], eax
mov eax, 0x4d2
adc edx, 0
xor cl, cl
mov dword [esi + 0x104], edx
mov word [esi + 0x110], ax
mov al, byte [esp + 0x13]
mov dword [esi + 0x10c], 0x7b000c
mov word [edi], 0x5023
mov byte [edi + 3], al
xor eax, eax
mov byte [edi + 2], 5
add cl, byte [edi + eax]
inc eax
cmp eax, 4
jb 0x43ac93
mov byte [edi + 4], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov word [edi], 0x5023
mov byte [edi + 2], 0
mov byte [edi + 3], dl
mov edx, 6
mov al, byte [esi + 0x108]
mov byte [edi + 4], al
mov al, byte [esi + 0x109]
add esi, 0x10a
mov byte [edi + 5], al
lea ebx, [edx - 4]
jmp 0x43acf0
movzx ecx, word [esi]
lea esi, [esi + 2]
mov eax, ecx
mov byte [edi + edx], cl
shr eax, 8
mov byte [edi + edx + 1], al
add edx, 2
sub ebx, 1
jne 0x43acf0
mov ebx, dword [esp + 0x18]
mov al, dl
inc al
xor cl, cl
mov byte [edi + 2], al
xor eax, eax
test edx, edx
je 0x43abed
add cl, byte [edi + eax]
inc eax
cmp eax, edx
jb 0x43ad21
mov byte [edi + edx], cl
movzx eax, byte [edi + 2]
mov word [ebx], ax
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esp + 0x38]
push edx
push str.CPUChannelFakeCPU::sendAndWaitAnswer_____ERR__cpuCommand_not_supported___d__n
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc]
add esp, 0xc
xor eax, eax
mov word [ebx], ax
mov ecx, dword [esp + 0xdc]
xor al, al
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 0x1c