Function at 0x454b60
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0xc], ebx
mov edi, dword [ebx + 0x97c05c]
test edi, edi
je 0x4551c1
mov esi, dword [ebx + 0x97c064]
mov ecx, edi
imul ecx, dword [ebp + 8]
mov eax, 0x51eb851f
mul ecx
shr edx, 5
lea eax, [edx + esi]
cmp eax, edi
cmovbe edi, eax
mov dword [ebp - 0x10], edi
cmp esi, dword [ebx + 0x97c060]
jae 0x454d0b
cmp dword [0x6cd8b8], 0
je 0x454bc3
xor eax, eax
xor edx, edx
rdtsc
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
mov dword [0x6cd8b4], eax
xor edi, edi
nop word [eax + eax]
mov eax, dword [ebx + edi*4 + 0x974030]
mov dword [0x6cd8bc], eax
test eax, eax
je 0x454cd1
push edi
push 0x58a0f0
push dword [ebx + 0x28]
mov ecx, ebx
mov dword [ebp + 8], 0
call fcn.00455760
mov ecx, dword [ebx + 0x28]
push 3
push 8
push ecx
mov eax, dword [ecx]
call dword [eax + 0x5c]
cmp edi, 0x400
jne 0x454c1d
mov ecx, dword [ebx + 0x28]
push 2
push 8
push ecx
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov ecx, dword [0x6cd8bc]
mov edx, dword [0x6cf8dc]
nop dword [eax]
cmp dword [ebp + 8], 0
mov esi, dword [ecx + 0x18]
je 0x454c66
cmp esi, edx
je 0x454c66
mov eax, dword [0x6cf8f8]
sub eax, dword [0x6cf8f4]
test eax, 0xffffffe0
je 0x454c66
push edx
push edi
mov ecx, ebx
call fcn.004553b0
test eax, eax
jne 0x4551c3
mov ecx, dword [0x6cd8bc]
mov eax, dword [ecx]
call dword [eax + 4]
inc dword [ebx + 0x97c064]
mov edx, esi
mov eax, dword [ebx + 0x97c064]
mov dword [0x6cf8dc], edx
mov dword [ebp + 8], 1
cmp eax, dword [ebx + 0x97c060]
jae 0x454ca0
mov eax, dword [0x6cd8bc]
mov ecx, dword [eax + 4]
mov dword [0x6cd8bc], ecx
test ecx, ecx
jne 0x454c30
mov eax, dword [0x6cf8f8]
sub eax, dword [0x6cf8f4]
test eax, 0xffffffe0
je 0x454cc3
push esi
push edi
mov ecx, ebx
call fcn.004553b0
test eax, eax
jne 0x4551c3
mov eax, dword [ebx + 0x97c064]
cmp eax, dword [ebx + 0x97c060]
jae 0x454cde
inc edi
cmp edi, 0x800
jb 0x454bd0
cmp dword [0x6cd8b8], 0
je 0x454d00
xor eax, eax
xor edx, edx
rdtsc
sub eax, dword [0x6cd8b4]
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
mov dword [0x6cd8b4], eax
jmp 0x454d05
mov eax, dword [0x6cd8b4]
add dword [0x6cf8e0], eax
mov ecx, dword [ebx + 0x28]
push 3
push 8
push ecx
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov eax, dword [ebx + 0x97c064]
cmp eax, dword [ebx + 0x97c060]
jb 0x4551c1
cmp dword [0x6cd8b8], 0
je 0x454d44
xor eax, eax
xor edx, edx
rdtsc
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 4], edx
mov dword [0x6cd8b4], eax
cmp dword [0x6cf8d8], 0
jne 0x454db1
mov ecx, dword [ebx + 0x28]
push 1
push 0x1b
push ecx
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov ecx, dword [ebx + 0x28]
push 0
push 0xe
push ecx
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov ecx, dword [ebx + 0x97c038]
lea eax, [ebx + 0x95c030]
mov dword [0x6cf8fc], eax
lea esi, [ebx + 0x7dc030]
mov dword [0x6cf900], eax
xor eax, eax
xor edx, edx
mov dword [0x6cd8bc], ecx
mov dword [0x6cf8f4], esi
mov dword [0x6cf8f8], esi
mov word [0x6cf904], ax
mov dword [0x6cf8e8], edx
mov dword [0x6cf8d8], 1
jmp 0x454dc3
mov ecx, dword [0x6cd8bc]
mov edx, dword [0x6cf8e8]
mov esi, dword [0x6cf8f4]
test ecx, ecx
je 0x45510c
mov esi, dword [0x6cf8dc]
inc dword [ebx + 0x14]
mov edi, dword [ecx + 0x18]
mov dword [ebp + 8], edi
test edx, edx
je 0x454f0a
mov eax, dword [ecx + 0x10]
cmp eax, dword [0x58a0f0]
jne 0x454df5
cmp edi, esi
je 0x454f0a
inc dword [ebx]
mov ecx, dword [0x6cf8f8]
sub ecx, dword [0x6cf8f4]
mov eax, dword [0x58a0f0]
sar ecx, 5
test al, 2
je 0x454e15
add dword [0x6cf8c0], ecx
test al, 4
je 0x454e1f
add dword [0x6cf8c4], ecx
test al, 0x10
je 0x454e29
add dword [0x6cf8c8], ecx
test al, 8
je 0x454e33
add dword [0x6cf8cc], ecx
test al, 0x20
je 0x454e3d
add dword [0x6cf8d0], ecx
and eax, 0x3f
lea edi, [ebx + 0x7dc030]
add dword [eax*4 + 0x6cd8c0], ecx
add dword [ebx + 4], ecx
mov edx, dword [0x6cf900]
mov esi, dword [0x6cf8f8]
sub edx, dword [0x6cf8fc]
sub esi, dword [0x6cf8f4]
sar edx, 1
sar esi, 5
cmp dword [ebx + 0x97c044], 0
jne 0x454eb9
cmp esi, dword [ebx + 8]
jbe 0x454e7e
mov dword [ebx + 8], esi
cmp edx, dword [ebx + 0xc]
jbe 0x454e86
mov dword [ebx + 0xc], edx
push dword [ebx + 0x20]
mov ecx, dword [ebx + 0x28]
push edx
lea edx, [ebx + 0x95c030]
push edx
mov eax, dword [ecx]
push esi
push edi
push 3
push 4
push ecx
call dword [eax + 0x78]
mov esi, eax
cmp esi, 0x887601c2
jne 0x454ed5
push str.Surface_lost_in_drawip_n
call fcn.00453cc0
add esp, 4
jmp 0x454ed5
push dword [ebx + 0x20]
mov ecx, dword [ebx + 0x28]
push edx
lea edx, [ebx + 0x95c030]
push edx
mov eax, dword [ecx]
push esi
push edi
push 3
push 2
push ecx
call dword [eax + 0x78]
mov esi, eax
test esi, esi
jne 0x4551cc
mov ecx, dword [0x6cd8bc]
lea eax, [ebx + 0x95c030]
mov dword [0x6cf8fc], eax
mov dword [0x6cf900], eax
xor eax, eax
mov dword [0x6cf8f4], edi
mov dword [0x6cf8f8], edi
mov edi, dword [ebp + 8]
mov word [0x6cf904], ax
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x6cd8bc]
mov ecx, dword [0x58a0f0]
mov esi, dword [ebx + 0x28]
mov edx, dword [eax + 0x10]
mov dword [ebp - 4], edx
cmp ecx, edx
je 0x455094
mov eax, edx
mov dword [0x58a0f0], edx
xor eax, ecx
and eax, 0x7ff
mov dword [ebp + 8], eax
je 0x455094
test al, 2
je 0x454f73
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
test dl, 2
je 0x454f5c
push 1
push 0xf
push esi
call eax
push 0x7f
jmp 0x454f65
push 0
push 0xf
push esi
call eax
push 0
mov eax, dword [esi]
push 0x18
push esi
call dword [eax + 0x5c]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
test al, 4
je 0x454f8d
mov eax, dword [esi]
mov ecx, dword [eax + 0x5c]
mov eax, edx
shr eax, 2
and eax, 1
push eax
push 0x29
push esi
call ecx
mov eax, dword [ebp + 8]
test al, 0x10
je 0x454faa
test byte [ebp - 4], 0x10
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
je 0x454fa0
push 1
jmp 0x454fa2
push 2
push 9
push esi
call eax
mov eax, dword [ebp + 8]
test al, 8
je 0x454fc5
mov eax, dword [esi]
mov ecx, dword [eax + 0x5c]
mov eax, dword [ebp - 4]
shr eax, 3
and eax, 1
push eax
push 0x1d
push esi
call ecx
mov eax, dword [ebp + 8]
mov edx, dword [0xad0ce8]
cmp dword [edx + 0x644], 1
je 0x455005
test al, 0x20
je 0x455005
test byte [ebp - 4], 0x20
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
je 0x454fee
push 1
push 0x11
push esi
call eax
push 1
jmp 0x454ff7
push 2
push 0x11
push esi
call eax
push 2
mov eax, dword [esi]
push 0x12
push esi
call dword [eax + 0x5c]
mov edx, dword [0xad0ce8]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
test al, 0x40
je 0x45503a
test cl, 0x40
je 0x455021
cmp dword [edx + 0xd0c], 0
je 0x45503a
push 4
jmp 0x45502c
cmp dword [edx + 0xd0c], 0
je 0x45503a
push 2
mov eax, dword [esi]
push 0x15
push esi
call dword [eax + 0x5c]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 8]
test al, al
jns 0x455055
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
test cl, cl
jns 0x45504b
push 1
jmp 0x45504d
push 3
push 3
push esi
call eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
test eax, 0x100
je 0x455075
mov edx, dword [ebx + 0x20]
test ecx, 0x100
je 0x45506f
or edx, 4
jmp 0x455072
and edx, 0xfffffffb
mov dword [ebx + 0x20], edx
test eax, 0x200
je 0x455094
mov eax, dword [esi]
mov eax, dword [eax + 0x5c]
test ecx, 0x200
je 0x45508d
push 2
jmp 0x45508f
push 6
push 0x14
push esi
call eax
cmp edi, dword [0x6cf8dc]
jne 0x4550a5
cmp dword [0x6cf8e8], 0
jne 0x4550cc
test edi, edi
jne 0x4550c5
mov ecx, dword [ebx + 0x28]
push edi
push 1
push ecx
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov ecx, dword [ebx + 0x28]
push dword [ebx + 0x24]
push 1
mov eax, dword [ecx]
push ecx
call dword [eax + 0x64]
jmp 0x4550cc
mov ecx, edi
call fcn.00468ec0
mov eax, dword [0x6cd8bc]
mov esi, edi
mov edx, 1
mov dword [0x6cf8dc], esi
mov dword [0x6cf8e8], edx
mov ecx, dword [eax + 8]
inc dword [ebx + 0x97c064]
mov eax, dword [ebp - 0x10]
mov dword [0x6cd8bc], ecx
cmp dword [ebx + 0x97c064], eax
jae 0x455106
test ecx, ecx
jne 0x454dd1
mov esi, dword [0x6cf8f4]
mov eax, dword [0x6cf8f8]
sub eax, esi
test eax, 0xffffffe0
je 0x455174
inc dword [ebx]
mov esi, dword [0x6cf8f8]
sub esi, dword [0x6cf8f4]
sar esi, 5
push esi
push dword [0x58a0f0]
call fcn.004554a0
add dword [ebx + 4], esi
add esp, 8
mov eax, dword [0x6cf900]
sub eax, dword [0x6cf8fc]
mov ecx, dword [0x6cf8f8]
sub ecx, dword [0x6cf8f4]
sar eax, 1
push eax
lea eax, [ebx + 0x95c030]
sar ecx, 5
push eax
push ecx
lea eax, [ebx + 0x7dc030]
mov ecx, ebx
push eax
call fcn.00454ae0
test eax, eax
jne 0x4551c3
cmp dword [0x6cd8b8], 0
je 0x45518e
xor eax, eax
xor edx, edx
rdtsc
sub eax, dword [0x6cd8b4]
mov dword [0x6cd8b4], eax
mov esi, dword [ebp - 0xc]
mov eax, dword [0x6cd8b4]
add dword [0x6cf8e4], eax
mov eax, dword [ebp - 0x10]
cmp dword [esi + 0x97c064], eax
jb 0x4551c1
mov eax, dword [esi + 0x28]
push 0
push 0x1b
push eax
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [esi + 0x28]
push 0
push 0xe
push eax
mov ecx, dword [eax]
call dword [ecx + 0x5c]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4