Function at 0x953243
Capabilities:
Execute anti-debugging instructions

Disassembly:
call 0x952aac
jmp 0x95312a
mov dword [esp + 0x28], eax
jmp 0x953085
cmp ebx, 0xa9a18e4
jmp 0x953113
popal
call fcn.00953064
lea esp, [esp + 4]
ret
add byte [eax], al
add eax, eax
cmp dword [edx], reloc.kernel32.dll_DeleteCriticalSection
inc esp
and al, 8
jmp 0x9531b0
je 0x9530cf
jne 0x952ad0
call 0x953120
jmp 0x953d07
pop ecx
sub ecx, 0x10013118
mov dword [ecx + reloc.kernel32.dll_DeleteCriticalSection], eax
movzx ebx, byte [eax]
add ebx, 0xa9a1818
jmp 0x95306b
mov dword [esp + 0x28], eax
jmp 0x953dab
popfd
ret
call 0x9531c5
jmp 0x953e51
push 0
jmp 0x953223
call 0x953228
jmp 0x953e89
call 0x953243
popal
je 0x9532b0
imul eax, dword [eax], reloc.kernel32.dll_DeleteCriticalSection
add bh, bh
push eax
call fcn.0094590a
jmp 0x952aa7
mov dword [esp + 0x28], eax
jmp 0x953f56
push 0
jmp 0x9532fe
dec edi
call 0x953303
jmp 0x9541a7
call 0x9534ee
pop edi
ja 0x95354b
jae 0x953553
arpl word [ebp + 0x70], bp
add cl, ch
inc esp
or eax, 0x8dbc0000
and al, 4
ret
add ecx, dword [ebx - reloc.kernel32.dll_DeleteCriticalSection]
mov ebp, 0x9cfffff8
sbb al, 0xb2
aad 0x24
int 0xea
imul edi, ecx, 0xc9d6b98
mov bl, byte [eax]
jg 0x9534f0
invalid
push 0xfe8ab
add byte [eax], al
add byte [eax], al
add byte [eax], al
call 0x953cf5
dec ebp
push ebx
push esi
inc ebx
push edx
push esp
insb byte es:[edi], dx
insb byte es:[edi], dx
add bl, ch
arpl dx, bx
pop esi
int3
pop eax
sub eax, 0xadaf176e
jmp 0x953ce5
invalid
popal
call 0x953d95
out dx, al
insd dword es:[edi], dx
std
test byte [edi - 0x7f], dh
clc
jle 0x953da6
mov eax, dword [esi - reloc.kernel32.dll_DeleteCriticalSection]
cmpsb byte [esi], byte es:[edi]
push ebp
mov edx, 0x2444ff56
or byte [ebp + 0x4c2], bl
add byte [eax], al
aad 0x56
invalid
pushfd
cmp dword [esp + 4], 0
jmp 0x953e2e
add ebx, 0x5b0ab1b1
cmp ebx, 0x5b0ab27d
je 0x953e56
jne 0x9531a0
push 0
jmp 0x953dd4
inc dword [esp + 8]
jmp 0x953f6e
jne 0x953e18
pushal
jmp 0x9531c0
pop ss
xchg edx, esp
adc eax, edx
or ah, byte [ebp + 0x648d9dd4]
and al, 4
ret
pop eax
sub eax, 0x7058b547
jmp 0x953ea1
jo 0x953e43
dec eax
call dword [eax + 0x70570cf7]
test eax, eax
jmp 0x953fc4
lea esp, [esp + 1]
popal
lea edx, reloc.kernel32.dll_DeleteCriticalSection
mov dword [edx], eax
pop edx
movzx ebx, byte [eax]
jmp 0x953dec
pop eax
sub eax, 0x2d554823
jmp 0x9540c4
call 0x953eb1
dec ebp
push ebx
push esi
inc ebx
push edx
push esp
insb byte es:[edi], dx
insb byte es:[edi], dx
add bl, ch
cmpsb byte [esi], byte es:[edi]
lea ebx, [edi + ebp*2]
jbe 0x953f19
lea esp, [esp + 3]
jmp 0x953e73
pushal
pop word [esp + 7]
lea esp, [esp + 2]
mov dword [esp + 0x18], eax
call fcn.00953f00
pushal
rdtsc
rdtsc
mov bx, word [esp]
mov dword [esp + 4], ecx
jmp 0x953f87
popal
popfd
jmp 0x953fad
popfd
ret 4
popal
lea esi, reloc.kernel32.dll_DeleteCriticalSection
mov dword [esi], eax
pop esi
movzx ebx, byte [eax]
add ebx, 0x8b250fff
jmp 0x954067
lea esp, [esp + 4]
ret
je 0x9531ff
jne 0x953239
push dword [esp + 4]
push word [esp + 9]
mov dword [esp + 5], ecx
jmp 0x95400d
mov ebx, 0xb0e0293a
mov bx, 0xda5f
lea ebx, [eax - 9]
pushal
mov ebx, dword [esp + 5]
xchg word [esp + 9], bx
jmp 0x95402e
pop word [esp + 3]
mov dword [esp + 3], ecx
lea esp, [esp + 2]
mov dword [esp + 2], ebx
jmp 0x953ff1
sete bl
xchg byte [esp + 6], bl
call 0x954049
leave
dec ebp
frstor dword [edi + edx*2 - reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [reloc.kernel32.dll_DeleteCriticalSection]
dec dword [ebx - reloc.kernel32.dll_DeleteCriticalSection]
pop esp
and al, 0x1a
push dword [esp + 8]
lea esp, [esp + 0x11]
jmp 0x954094
cmp ebx, 0x8b2510cb
je 0x9540cb
jne 0x95325c
xchg dh, dl
not bx
mov dh, byte [esp]
mov dword [esp + 3], eax
push edx
setnp dh
jmp 0x9540a8
lea esp, [esp + 3]
mov dword [esp + 0xb], edx
mov ebx, dword [esp]
mov bl, 0xd8
mov edx, dword [esp]
not bl
jmp 0x954075
lea edx, [esi - 0x55]
mov dh, 0x92
mov dx, 0x3249
pushal
push dword [esp + 0x10]
mov dword [esp + 0xd], ecx
jmp 0x95415c
call dword [eax + 0x2d539f70]
jmp 0x953e5f
nop
std
invalid
mov bl, bh
mov ebx, 0xa1ceb70c
mov ebx, dword [esp]
xchg bl, bh
lea ebx, [edx + edi]
not bl
jmp 0x954124
bswap edx
mov dx, word [esp]
push esp
mov bl, bh
mov bl, 0x70
mov edx, dword [esp + 0x33]
jmp 0x9540cf
mov ebx, dword [esp]
bswap ebx
mov ebx, dword [esp + 0x3e]
lea esp, [esp + 0x44]
push 0
jmp 0x9541c0
mov ax, 0x9f8d
lea esp, [esp + 2]
mov eax, dword [esp + 0x27]
lea edx, reloc.kernel32.dll_DeleteCriticalSection
lea ebx, [ebx*4]
jmp 0x9540f0
mov dh, 0xba
mov eax, 0x6d39fb60
pop word [esp + 7]
mov dx, 0x8d59
mov eax, dword [esp + 0xd]
not ax
jmp 0x95413d
pop eax
sub eax, 0xb6cec2de
jmp 0x9541c6
pushfd
call fcn.00954194
call dword [eax - 0x4932e6b0]
jmp 0x9541fe
je 0x9532a8
jne 0x9534e0
push ebp
salc
inc esp
and ebx, esi
sub al, 0xc7
outsb dx, byte [esi]
jns 0x954240
call 0x9541f8
dec ebp
push ebx
push esi
inc ebx
push edx
push esp
insb byte es:[edi], dx
insb byte es:[edi], dx
add bh, bh
nop
sub esp, dword [esi - 0x1d]
sub al, byte [ebp - 0x462f1440]
aas
scasd eax, dword es:[edi]
retf 0xae39
test eax, eax
jmp 0x9541d2
invalid