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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x1c]
call fcn.0040403c
mov eax, dword [ebp - 0x20]
call fcn.0040403c
mov esi, 0x58a3a4
mov edi, 0x58a3ac
mov ebx, 0x58a54c
xor eax, eax
push ebp
push 0x5402d9
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x15], 1
xor eax, eax
mov dword [ebp - 0xc], eax
push ebp
push 0x540292
push dword fs:[0]
mov dword fs:[0], esp
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
call fcn.00403ca4
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x20]
call fcn.00403ca4
cmp byte [0x58a54d], 1
jne 0x53f3db
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.005624ac
test al, al
je 0x53f3f1
call fcn.00403720
jmp 0x54029c
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
call fcn.00457b5c
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.00403ca4
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
call fcn.00457b5c
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
call fcn.00403ca4
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 0x19
mov eax, dword [ebp - 8]
call fcn.00567bf4
mov edx, eax
lea ecx, [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
call fcn.00455a8c
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.00403ca4
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004578b4
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2f0]
mov eax, dword [ebp - 8]
call fcn.00570864
test al, al
jne 0x53f4a8
push 1
push 1
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004578b4
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
call fcn.00566478
test al, al
jne 0x53f4a8
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0056d2e4
mov byte [ebp - 0x15], 0
call fcn.00403720
jmp 0x54029c
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004578b4
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x2f0]
mov eax, dword [ebp - 8]
call fcn.00570864
test al, al
jne 0x53f50b
push 1
push 1
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004578b4
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
call fcn.00566478
test al, al
jne 0x53f50b
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0056d2e4
mov byte [ebp - 0x15], 0
call fcn.00403720
jmp 0x54029c
xor eax, eax
mov dword [0x58a3a0], eax
cmp byte [0x58a47a], 0
jne 0x53f522
push ebp
call fcn.0053f18c
pop ecx
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x200]
xor al, 1
test al, al
jne 0x53f535
test al, al
je 0x53f53f
call fcn.00403720
jmp 0x54029c
push 0
push 0
push 4
lea eax, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
call fcn.00457b5c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.005621d8
mov eax, dword [ebp - 0x2c]
call fcn.00409114
mov dword [edi], eax
mov dword [edi + 4], edx
cmp dword [edi + 4], 0
jne 0x53f5a9
cmp dword [edi], 0
jne 0x53f5a9
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x7cc]
cmp dword [eax + 0x3f0], 0
je 0x53f5a9
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x7cc]
mov eax, dword [eax + 0x3f0]
mov edx, dword [eax + 0xb]
mov dword [edi], edx
mov edx, dword [eax + 0xf]
mov dword [edi + 4], edx
push 1
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.0056763c
cmp al, 1
jne 0x53f5eb
push 2
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.0056763c
cmp al, 1
jne 0x53f5eb
push 3
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.0056763c
cmp al, 1
je 0x53f5f4
cmp byte [0x58a47a], 0
je 0x53f629
push 0
push 0
push 5
lea eax, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x20]
call fcn.00457b5c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.005621d8
mov eax, dword [ebp - 0x2c]
call fcn.00409114
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x53f65c
push 0
push 0
push 1
lea eax, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x20]
call fcn.00457b5c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.005621d8
mov eax, dword [ebp - 0x2c]
call fcn.00409114
mov dword [esi], eax
mov dword [esi + 4], edx
cmp dword [esi + 4], 0xffffffff
jne 0x53f69a
cmp dword [esi], 0xffffffff
jne 0x53f69a
push 0
push 0
push 5
lea eax, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x20]
call fcn.00457b5c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.005621d8
mov eax, dword [ebp - 0x2c]
call fcn.00409114
mov dword [esi], eax
mov dword [esi + 4], edx
cmp dword [esi + 4], 0
jne 0x53f6ab
cmp dword [esi], 0
jbe 0x53f8e5
jmp 0x53f6b1
jle 0x53f8e5
mov eax, dword [edi]
mov edx, dword [edi + 4]
cmp edx, dword [esi + 4]
jne 0x53f6c1
cmp eax, dword [esi]
jbe 0x53f6c7
jmp 0x53f6c3
jle 0x53f6c7
mov dl, 1
jmp 0x53f6df
mov eax, dword [edi]
mov edx, dword [edi + 4]
cmp edx, dword [esi + 4]
jne 0x53f6d7
cmp eax, dword [esi]
jae 0x53f6dd
jmp 0x53f6d9
jge 0x53f6dd
mov dl, 3
jmp 0x53f6df
mov dl, 2
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x200]
xor al, 1
test al, al
jne 0x53f6f2
test al, al
je 0x53f6fc
call fcn.00403720
jmp 0x54029c
cmp byte [ebx], 4
je 0x53f83c
cmp byte [ebx], 6
je 0x53f83c
cmp byte [ebx], 7
je 0x53f83c
push edx
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.0056763c
sub al, 1
jb 0x53f747
je 0x53f806
dec al
je 0x53f80b
dec al
je 0x53f810
jmp 0x53f83c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x460]
cmp eax, dword [ebp + 0xc]
jne 0x53f7af
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x10]
push eax
push dword [edi + 4]
push dword [edi]
push dword [esi + 4]
push dword [esi]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x460]
cmp byte [eax + 0x2ed], 1
jne 0x53f78f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x464]
cmp byte [eax + 0x2ed], 1
je 0x53f793
xor edx, edx
jmp 0x53f795
mov dl, 1
mov cl, 4
mov eax, dword [ebp - 8]
call fcn.00561904
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.00403ca4
jmp 0x53f83c
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x10]
push eax
push dword [edi + 4]
push dword [edi]
push dword [esi + 4]
push dword [esi]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x460]
cmp byte [eax + 0x2ed], 1
jne 0x53f7e9
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x464]
cmp byte [eax + 0x2ed], 1
je 0x53f7ed
xor edx, edx
jmp 0x53f7ef
mov dl, 1
mov cl, 5
mov eax, dword [ebp - 8]
call fcn.00561904
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.00403ca4
jmp 0x53f83c
mov byte [ebx], 0
jmp 0x53f83c
mov byte [ebx], 3
jmp 0x53f83c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x460]
cmp byte [eax + 0x2ed], 1
jne 0x53f839
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x464]
cmp byte [eax + 0x2ed], 1
jne 0x53f839
mov byte [ebx], 1
jmp 0x53f83c
mov byte [ebx], 0
cmp byte [ebx], 3
je 0x53f85e
cmp byte [ebx], 6
je 0x53f85e
cmp byte [ebx], 1
je 0x53f850
cmp byte [ebx], 1
jne 0x53f88b
mov eax, dword [edi]
mov edx, dword [edi + 4]
cmp edx, dword [esi + 4]
jne 0x53f88b
cmp eax, dword [esi]
jne 0x53f88b
inc dword [0x58a570]
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0xc]
push eax
push 0
mov cl, 1
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0056d39c
mov byte [0x58a3c1], 1
call fcn.00403720
jmp 0x54029c
cmp byte [ebx], 5
jne 0x53f8a1
mov byte [0x58a54d], 1
call fcn.00403720
jmp 0x54029c
cmp byte [ebx], 7
jne 0x53f8e5
mov eax, dword [edi]
mov edx, dword [edi + 4]
cmp edx, dword [esi + 4]
jne 0x53f8b6
cmp eax, dword [esi]
ja 0x53f8e5
jmp 0x53f8b8
jg 0x53f8e5
inc dword [0x58a570]
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0xc]
push eax
push 0
mov cl, 1
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0056d39c
mov byte [0x58a3c1], 1
call fcn.00403720
jmp 0x54029c
cmp byte [ebx], 1
je 0x53f8ef
cmp byte [ebx], 7
jne 0x53f913
cmp dword [edi + 4], 0
jne 0x53f8fc
cmp dword [edi], 0
jbe 0x53f913
jmp 0x53f8fe
jle 0x53f913
cmp dword [esi + 4], 0
jne 0x53f90b
cmp dword [esi], 0
jbe 0x53f913
jmp 0x53f90d
jle 0x53f913
mov byte [ebp - 0x25], 1
jmp 0x53f924
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [ebp - 0x25], 0
mov eax, dword [ebp + 0xc]
test byte [eax + 0x2b8], 4
je 0x53f952
mov eax, dword [ebp + 8]
test byte [eax + 0x2b8], 4
je 0x53f952
mov dl, 2
mov eax, dword [ebp + 8]
call fcn.004a7b44
mov dl, 2
mov eax, dword [ebp + 0xc]
call fcn.004a7b44
jmp 0x53f966
mov dl, 3
mov eax, dword [ebp + 8]
call fcn.004a7b44
mov dl, 3
mov eax, dword [ebp + 0xc]
call fcn.004a7b44
mov dl, 2
mov eax, dword [ebp - 8]
call fcn.00566f4c
mov al, byte [0x58a504]
push eax
lea edx, [ebp - 0x2c]
mov eax, dword [0x585934]
call fcn.00405c64
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
call fcn.00403e90
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.00567308
cmp byte [0x58a54d], 1
jne 0x53f9a8
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.005624ac
test al, al
je 0x53f9be
call fcn.00403720
jmp 0x54029c
mov eax, dword [0x58a1e7]
xor edx, edx
mov dword [eax + 0x2c8], edx
mov eax, dword [0x58a2dc]
xor edx, edx
mov dword [eax + 0x2c8], edx
cmp byte [0x58a47a], 0
je 0x53f9e8
push ebp
call fcn.0053f18c
pop ecx
cmp byte [0x58a54d], 1
jne 0x53f9f5
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.005624ac
test al, al
je 0x53fa0b
call fcn.00403720
jmp 0x54029c
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0xc]
mov cl, 1
mov eax, dword [ebp - 8]
call fcn.00567bf4
mov ebx, eax
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 1
mov eax, dword [ebp - 8]
call fcn.00567bf4
cmp bl, 1
je 0x53fc21
cmp bl, 3
je 0x53fc21
cmp al, 2
je 0x53fc21
cmp al, 3
je 0x53fc21
push ebp
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
call fcn.0053e9d4
pop ecx
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 4]
call fcn.00403ca4
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x200], 0
je 0x53fa85
mov eax, dword [ebp + 8]
cmp byte [eax + 0x200], 0
jne 0x53fa95
cmp byte [0x58a54d], 0
jne 0x53fa95
mov byte [0x58a54d], 2
cmp byte [0x58a54d], 1
je 0x53faa7
cmp byte [0x58a54d], 2
jne 0x53faab
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.005624ac
test al, al
je 0x53fac1
call fcn.00403720
jmp 0x54029c
mov eax, dword [ebp - 4]
call fcn.0040404c
mov dl, byte [eax]
lea eax, [ebp - 0x2c]
call fcn.00403db0
mov eax, dword [ebp - 0x2c]
xor edx, edx
call fcn.004090fc
cmp eax, 3
jle 0x53fc03
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 0x1f4
je 0x53fb3b
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 0x212
je 0x53fb3b
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 0x1a9
jne 0x53fddf
mov edx, dword [ebp - 4]
mov eax, 0x5402f4
call fcn.00404170
test eax, eax
jle 0x53fddf
push 0
lea edx, [ebp - 0x2c]
mov eax, dword [0x585974]
call fcn.00405c64
lea eax, [ebp - 0x2c]
mov edx, 0x540308
call fcn.00403e90
mov edx, dword [ebp - 0x2c]
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00548058
push ebp
lea eax, [ebp - 0x2c]
push eax
mov cl, 1
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
call fcn.0053e9d4
pop ecx
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 4]
call fcn.00403ca4
mov eax, dword [0x58a0a0]
call fcn.00458590
mov dword [0x58a3bc], eax
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 5
je 0x53fbb8
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 4
jne 0x53fbe5
push 0
lea edx, [ebp - 0x2c]
mov eax, dword [0x585974]
call fcn.00405c64
mov edx, dword [ebp - 0x2c]
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00548058
mov byte [ebp - 0x15], 0
call fcn.00403720
jmp 0x54029c
push ebp
call fcn.0053e658
pop ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x53fddf
call fcn.00403720
jmp 0x54029c
push ebp
call fcn.0053e2c4
pop ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x53fddf
call fcn.00403720
jmp 0x54029c
push ebp
lea eax, [ebp - 0x2c]
push eax
mov cl, 1
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
call fcn.0053e9d4
pop ecx
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 4]
call fcn.00403ca4
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x200], 0
je 0x53fc57
mov eax, dword [ebp + 8]
cmp byte [eax + 0x200], 0
jne 0x53fc67
cmp byte [0x58a54d], 0
jne 0x53fc67
mov byte [0x58a54d], 2
cmp byte [0x58a54d], 1
je 0x53fc79
cmp byte [0x58a54d], 2
jne 0x53fc7d
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.005624ac
test al, al
je 0x53fc93
call fcn.00403720
jmp 0x54029c
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 5
je 0x53fcbb
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 4
jne 0x53fdc5
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 0x1f4
je 0x53fd10
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 0x212
je 0x53fd10
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 0x1a9
jne 0x53fddf
mov edx, dword [ebp - 4]
mov eax, 0x5402f4
call fcn.00404170
test eax, eax
jle 0x53fddf
push 0
lea edx, [ebp - 0x2c]
mov eax, dword [0x585974]
call fcn.00405c64
lea eax, [ebp - 0x2c]
mov edx, 0x540334
call fcn.00403e90
mov edx, dword [ebp - 0x2c]
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00548058
push ebp
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
call fcn.0053e9d4
pop ecx
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 4]
call fcn.00403ca4
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 5
je 0x53fd7e
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 4
jne 0x53fdab
push 0
lea edx, [ebp - 0x2c]
mov eax, dword [0x585974]
call fcn.00405c64
mov edx, dword [ebp - 0x2c]
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00548058
mov byte [ebp - 0x15], 0
call fcn.00403720
jmp 0x54029c
push ebp
call fcn.0053e2c4
pop ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x53fddf
call fcn.00403720
jmp 0x54029c
push ebp
call fcn.0053e658
pop ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x53fddf
call fcn.00403720
jmp 0x54029c
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.004563bc
cmp eax, 0x228
jne 0x53fe03
cmp byte [0x58a54d], 0
jne 0x53fe03
mov byte [0x58a54d], 2
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x200], 0
je 0x53fe1b
mov eax, dword [ebp + 8]
cmp byte [eax + 0x200], 0
jne 0x53fe29
mov byte [ebp - 0x15], 0
call fcn.00403720
jmp 0x54029c
xor eax, eax
mov dword [0x58a550], eax
mov eax, 0x58a3c4
mov edx, dword [ebp - 0x10]
call fcn.00403c60
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x870]
mov edx, 0x3e8
call fcn.004b7a3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x870]
mov dl, 1
call fcn.004b7a24
call sub.kernel32.dll_GetTickCount
mov dword [0x58a39c], eax
mov byte [0x58a53c], 1
jmp 0x53ffcf
mov dl, 3
mov eax, dword [ebp - 8]
call fcn.00566770
cmp byte [0x58a370], 0
jne 0x53fffd
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x200], 0
je 0x53fffd
mov eax, dword [ebp + 8]
cmp byte [eax + 0x200], 0
je 0x53fffd
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x2ec], 0
jne 0x53fed9
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x2c3], 0
jne 0x53fed9
push 0
push 1
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 0xc]
call fcn.004aab5c
mov eax, dword [ebp + 8]
cmp byte [eax + 0x2ec], 0
jne 0x53ff05
mov eax, dword [ebp + 8]
cmp byte [eax + 0x2c3], 0
jne 0x53ff05
push 0
push 1
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 8]
call fcn.004aab5c
cmp byte [ebp - 0x15], 0
je 0x53ff42
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x17c], 0x18f
jle 0x53ff42
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x17c], 0x1f4
jne 0x53ff3e
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x1bc]
mov eax, 0x540358
call fcn.00404170
test eax, eax
jg 0x53ff42
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
je 0x53ff7f
mov eax, dword [ebp + 8]
cmp word [eax + 0x17c], 0x18f
jle 0x53ff7f
mov eax, dword [ebp + 8]
cmp word [eax + 0x17c], 0x1f4
jne 0x53ff7b
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x1bc]
mov eax, 0x540358
call fcn.00404170
test eax, eax
jg 0x53ff7f
mov byte [ebp - 0x15], 0
cmp byte [0x58a3dc], 0
je 0x53ff91
cmp byte [0x58a3dd], 0
jne 0x53fffd
mov eax, dword [ebp + 0xc]
mov ax, word [eax + 0x17c]
cmp ax, 0x18f
jle 0x53ffa7
cmp ax, 0x226
jne 0x53ffbf
mov eax, dword [ebp + 8]
mov dx, word [eax + 0x17c]
cmp dx, 0x18f
jle 0x53ffcf
cmp dx, 0x226
je 0x53ffcf
mov cl, 1
mov dl, 1
mov eax, dword [ebp - 8]
call fcn.0056d178
mov byte [ebp - 0x15], 0
cmp byte [0x58a54d], 0
je 0x53ffe1
cmp byte [0x58a54d], 1
jne 0x53fffd
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x200], 0
je 0x53fffd
mov eax, dword [ebp + 8]
cmp byte [eax + 0x200], 0
jne 0x53fe76
mov byte [0x58a53c], 0
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x200], 0
je 0x54001c
mov eax, dword [ebp + 8]
cmp byte [eax + 0x200], 0
jne 0x54002c
cmp byte [0x58a54d], 0
jne 0x54002c
mov byte [0x58a54d], 4
cmp byte [0x58a370], 0
je 0x54003f
call fcn.00403720
jmp 0x54029c
cmp byte [0x58a54d], 0
jbe 0x540055
cmp byte [0x58a54d], 1
je 0x540055
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
jne 0x540065
mov dl, 3
mov eax, dword [ebp - 8]
call fcn.00566770
cmp byte [0x58a54d], 0
je 0x54007b
cmp byte [0x58a54d], 1
jne 0x540163
cmp byte [ebp - 0x15], 0
je 0x540163
mov eax, dword [edi]
mov edx, dword [edi + 4]
sub eax, dword [esi]
sbb edx, dword [esi + 4]
push edx
push eax
mov al, byte [ebp - 0x25]
push eax
lea eax, [ebp - 0x24]
push eax
call sub.kernel32.dll_GetTickCount
mov edx, eax
sub edx, dword [0x58a39c]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0054c504
call sub.kernel32.dll_GetTickCount
sub eax, dword [0x58a39c]
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x34], eax
fild qword [ebp - 0x38]
fdiv dword [0x540360]
call fcn.00402a3c
mov ecx, eax
cmp ecx, 1
jle 0x540101
mov eax, dword [edi]
mov edx, dword [edi + 4]
sub eax, dword [esi]
sbb edx, dword [esi + 4]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
fild qword [ebp - 0x38]
mov dword [ebp - 0x3c], ecx
fild dword [ebp - 0x3c]
fdivp st(1)
fdiv dword [0x540364]
fstp qword [0x58a3b4]
wait
push 0
mov ecx, dword [0x58a4f0]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.00548058
mov ecx, dword [0x58a4f0]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.00547fbc
inc dword [0x58a574]
mov eax, dword [edi]
mov edx, dword [edi + 4]
sub eax, dword [esi]
sbb edx, dword [esi + 4]
push edx
push eax
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0xc]
mov cl, 4
mov eax, dword [ebp - 8]
call fcn.0053a160
mov eax, dword [edi]
mov edx, dword [edi + 4]
sub eax, dword [esi]
sbb edx, dword [esi + 4]
push edx
push eax
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.0053a160
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54029c
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2c8], 0
jg 0x540188
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x2c8], 0
jle 0x54019d
push 0
mov ecx, dword [0x58a4f0]
mov edx, 0x540370
mov eax, dword [ebp - 8]
call fcn.00548058
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2c8], 0
jle 0x5401b3
mov dl, 1
mov eax, dword [ebp + 8]
call fcn.004adba8
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x2c8], 0
jle 0x5401c9
mov dl, 1
mov eax, dword [ebp + 0xc]
call fcn.004adba8
push 0
push 1
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 8]
call fcn.004aab5c
push 0
push 1
lea eax, [ebp - 0x2c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 0xc]
call fcn.004aab5c
cmp byte [0x58a3dc], 0
je 0x540206
mov eax, dword [0x58a1e7]
mov byte [eax + 0x2c4], 1
cmp byte [0x58a3dd], 0
je 0x54021b
mov eax, dword [0x58a2dc]
mov byte [eax + 0x2c4], 1
mov byte [0x58a53c], 0
mov byte [0x58a3de], 0
push 0
push 0
fld qword [0x58a4cc]
call fcn.00402a3c
mov ecx, eax
or edx, 0xffffffff
mov eax, dword [ebp - 8]
call fcn.00564044
cmp byte [ebp - 0x15], 0
jne 0x540254
cmp byte [0x58a54d], 1
jne 0x540266
cmp byte [0x58a54d], 2
je 0x540266
cmp byte [0x58a54d], 4
jne 0x540291
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
call fcn.0056d488
inc dword [0x58a56c]
cmp byte [0x58a54d], 4
jne 0x540291
mov byte [0x58a54d], 0
mov byte [ebp - 0x15], 0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5402e0
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.00403c30
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.00403c30
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00403c30
lea eax, [ebp - 4]
call fcn.00403c0c
ret