Function at 0x881a50
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x488
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x885000
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov dword [ebp - 0x24], 0
call fcn.008839a0
mov dword [ebp - 0x7c], eax
cmp dword [ebp + 8], 0x12345678
je 0x881abb
nop
mov esi, dword [ebp + 0xc]
call fcn.008818c0
rdtsc
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x78], edx
cmp esi, 0x10000
jae 0x881ae3
mov dword [ebp - 0x28], 0
jmp 0x881aed
nop
cmp dword [0xa3f5a0], 0x33c0
jne 0x881f71
sub esp, 4
call fcn.008839b0
add eax, 0x33c0
mov dword [0xa3f5a0], eax
jmp 0x881f71
nop
cmp byte [esi], 0
sete al
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov esi, eax
test eax, eax
jne 0x881afd
call fcn.008839d0
mov esi, eax
nop
movzx eax, byte [0xa58420]
test al, 1
je 0x881b39
call fcn.00888f20
test eax, eax
je 0x881b39
mov edx, dword [ebp + 0xc]
cmp edx, 0xffff
ja 0x881b7c
lea ecx, [ebp - 0x24]
push ecx
push edx
push 0
push dword [ebp + 8]
call eax
cmp eax, 0xc0000138
je 0x881be3
jmp 0x881beb
test esi, esi
je 0x881beb
nop
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x881beb
nop
cmp dword [esi + eax], 0x4550
jne 0x881beb
nop
cmp dword [esi + eax + 0x78], 0
je 0x881b6f
nop
cmp dword [esi + eax + 0x7c], 0
jne 0x881beb
nop
mov dword [ebp - 0x4c], 0
jmp 0x881c10
test edx, edx
je 0x881ba8
xor ecx, ecx
mov esi, 1
xor ebx, ebx
mov edi, dword [ebp + 0xc]
nop dword [eax]
xor edx, edx
cmp byte [edi + ecx], 0
setne dl
movzx ebx, bl
cmove ebx, esi
add ecx, edx
test bl, 1
je 0x881b90
jmp 0x881bad
xor ecx, ecx
mov edi, dword [ebp + 0xc]
nop
mov word [ebp - 0x494], cx
inc ecx
mov word [ebp - 0x492], cx
mov dword [ebp - 0x490], edi
mov dword [ebp - 0x10], 0xffffffff
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x494]
push ecx
push 0
push edx
push dword [ebp + 8]
call eax
cmp eax, 0xc0000138
jne 0x881beb
nop
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x494]
push 0x400
push 0
push eax
call fcn.00901a10
add esp, 0xc
mov al, 1
mov dword [ebp - 0x4c], eax
cmp byte [ebp - 0x28], 0
je 0x881cc7
lea eax, [ebp - 0x494]
push 0x400
push 0
push eax
call fcn.00901a10
add esp, 0xc
rdtsc
sub eax, dword [ebp - 0x74]
sbb edx, dword [ebp - 0x78]
mov ecx, dword [0xa3f568]
or ecx, dword [0xa3f56c]
je 0x881c4f
nop
mov ecx, dword [0xa3f56c]
mov esi, dword [0xa3f568]
cmp esi, eax
sbb ecx, edx
jae 0x881c5b
nop
mov dword [0xa3f568], eax
mov dword [0xa3f56c], edx
nop
cmp dword [ebp - 0x24], 0
setne al
mov ecx, dword [ebp - 0x4c]
xor cl, 1
mov dword [ebp - 0x10], 0xffffffff
or cl, al
jne 0x881f4a
call fcn.008839c0
cmp eax, 0x4750412d
je 0x881f4a
call fcn.00888f20
test eax, eax
je 0x881f4a
nop
inc dword [0xa3f534]
mov edx, dword [ebp + 0xc]
cmp edx, 0xffff
ja 0x881db8
lea ecx, [ebp - 0x24]
push ecx
push edx
push 0
push dword [ebp + 8]
call eax
cmp eax, 0xc0000142
jne 0x881e16
jmp 0x881e1d
nop
push dword [ebp + 8]
call fcn.0085b7c0
test eax, eax
je 0x881c10
xor edx, edx
nop word [eax + eax]
nop
mov dword [ebp - 0x28], edx
movzx ecx, word [eax + edx*2]
test ecx, ecx
je 0x881cff
cmp ecx, 0x2e
je 0x881cff
nop
mov edx, dword [ebp - 0x28]
mov byte [ebp + edx - 0x494], cl
inc edx
jmp 0x881ce0
mov eax, 0x400
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
cmp eax, 2
jb 0x881c10
nop
mov esi, dword [ebp + 0xc]
cmp esi, 0xffff
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x34], 1
mov word [ebp - 0x44], 0x2e
ja 0x881e53
nop
mov dword [ebp - 0x34], 2
mov word [ebp - 0x43], 0x23
movzx ebx, si
xor esi, esi
lea edi, [ebp - 0x7f]
nop dword [eax]
mov eax, ebx
mov ecx, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx]
lea eax, [eax + eax*4]
mov ecx, ebx
sub ecx, eax
or cl, 0x30
mov byte [edi - 1], cl
dec edi
inc esi
cmp ebx, 9
mov ebx, edx
ja 0x881d50
nop
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
cmp esi, 0xf
jbe 0x881eb1
nop
mov dword [ebp - 0x10], 2
sub esp, 0xc
movzx eax, byte [ebp - 0x48]
mov byte [esp + 4], al
mov dword [esp + 8], edi
mov dword [esp], esi
lea ecx, [ebp - 0x64]
call fcn.0066cb40
jmp 0x881ec8
xor ecx, ecx
test edx, edx
je 0x881df0
mov edx, 1
xor ebx, ebx
mov edi, dword [ebp + 0xc]
nop dword [eax + eax]
mov esi, ecx
xor ecx, ecx
cmp byte [edi + esi], 0
setne cl
movzx ebx, bl
cmove ebx, edx
add ecx, esi
test bl, 1
je 0x881dd0
nop
mov dword [ebp - 0x10], 0xffffffff
nop
mov word [ebp - 0x44], cx
inc ecx
mov word [ebp - 0x42], cx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x44]
push ecx
push 0
push edx
push dword [ebp + 8]
call eax
cmp eax, 0xc0000142
je 0x881e1d
cmp eax, 0xc0000138
jne 0x881e8a
nop
mov dword [ebp - 0x24], 0
nop
inc dword [0xa3f550]
inc dword [0xa3f538]
cmp dword [ebp + 0xc], 0xffff
ja 0x881e47
nop
inc dword [0xa3f53c]
jmp 0x881f4a
nop
inc dword [0xa3f540]
jmp 0x881f4a
nop
push esi
call fcn.008d08c0
add esp, 4
cmp eax, 0xe
jbe 0x881ed7
nop
mov dword [ebp - 0x10], 2
sub esp, 0x10
movzx ecx, byte [ebp - 0x64]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], eax
lea ecx, [ebp - 0x44]
call fcn.0066d8c0
jmp 0x881ef2
nop
cmp dword [ebp - 0x24], 0
je 0x881e25
nop
inc dword [0xa3f544]
cmp dword [ebp + 0xc], 0xffff
ja 0x881f43
nop
inc dword [0xa3f548]
jmp 0x881f4a
nop
mov dword [ebp - 0x54], esi
lea eax, [ebp - 0x64]
push esi
push edi
push eax
call fcn.00901d90
add esp, 0xc
mov byte [ebp + esi - 0x64], 0
nop
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x50], 0x10
jb 0x881ef7
mov ecx, dword [ebp - 0x64]
jmp 0x881efa
lea ecx, [ebp - 0x43]
mov edx, eax
inc edx
mov dword [ebp - 0x34], edx
push eax
push esi
push ecx
mov esi, eax
call fcn.00901d90
add esp, 0xc
mov byte [ebp + esi - 0x43], 0
jmp 0x881fdc
lea ecx, [ebp - 0x64]
mov edx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
mov esi, edi
sub esi, edx
cmp esi, eax
jae 0x881f33
nop
mov dword [ebp - 0x10], 3
sub esp, 0x10
movzx edx, byte [ebp - 0x94]
mov byte [esp + 4], dl
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp], eax
lea ecx, [ebp - 0x44]
call fcn.0066d8c0
jmp 0x881fa0
lea esi, [edx + eax]
mov dword [ebp - 0x34], esi
cmp edi, 0x10
jb 0x881f8c
mov edi, dword [ebp - 0x44]
jmp 0x881f8f
nop
inc dword [0xa3f54c]
nop
push dword [ebp - 0x7c]
call fcn.0085b800
cmp dword [ebp + 0xc], 0x10000
mov eax, 0xc0000139
sbb eax, 0
xor ecx, ecx
cmp dword [ebp - 0x24], 0
cmove ecx, eax
push ecx
call fcn.0088ce90
nop
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x488
pop esi
pop edi
pop ebx
pop ebp
ret 8
lea edi, [ebp - 0x44]
add edx, edi
push eax
push ecx
push edx
call fcn.00901d90
add esp, 0xc
mov byte [edi + esi], 0
nop
mov eax, dword [ebp - 0x50]
cmp eax, 0x10
jb 0x881fdc
nop
mov ecx, dword [ebp - 0x64]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x881fd1
nop
mov esi, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, esi
cmp ecx, 0x20
jae 0x8821b9
add eax, 0x24
mov edx, eax
mov ecx, esi
nop
push edx
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x2c]
jae 0x88216f
nop
cmp dword [ebp - 0x30], 0x10
jb 0x881ff8
mov edi, dword [ebp - 0x44]
jmp 0x881ffb
lea edi, [ebp - 0x44]
cmp dword [ebp - 0x20], 0
nop
mov edx, dword [ebp - 0x28]
je 0x88213e
xor esi, esi
cmp dword [ebp - 0x20], 8
jb 0x882095
lea eax, [ebp - 0x494]
sub eax, edi
mov edx, dword [ebp - 0x28]
add eax, edx
cmp eax, 0x20
jb 0x882095
xor esi, esi
cmp dword [ebp - 0x20], 0x20
jb 0x882069
mov esi, dword [ebp - 0x20]
and esi, 0xffffffe0
xor eax, eax
nop
movups xmm0, xmmword [edi + eax]
movups xmm1, xmmword [edi + eax + 0x10]
lea ecx, [eax + ebp]
add ecx, 0xfffffb6c
movups xmmword [edx + ecx], xmm0
movups xmmword [edx + ecx + 0x10], xmm1
add eax, 0x20
cmp esi, eax
jne 0x882037
cmp dword [ebp - 0x20], esi
je 0x88213e
test byte [ebp - 0x20], 0x18
je 0x882095
mov eax, esi
mov esi, dword [ebp - 0x20]
and esi, 0xfffffff8
nop
movsd xmm0, qword [edi + eax]
lea ecx, [eax + ebp]
add ecx, 0xfffffb6c
movsd qword [edx + ecx], xmm0
add eax, 8
cmp esi, eax
jne 0x882071
cmp dword [ebp - 0x20], esi
je 0x88213e
mov edx, dword [ebp - 0x20]
mov eax, esi
and edx, 3
je 0x8820e1
mov esi, eax
neg esi
mov dword [ebp - 0x6c], edi
lea ecx, [edi + eax]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x68], eax
add eax, ebp
add eax, 0xfffffb6c
mov dword [ebp - 0x70], eax
xor ecx, ecx
mov edi, dword [ebp - 0x28]
nop
mov eax, edx
mov edx, dword [ebp - 0x2c]
movzx edx, byte [edx + ecx]
mov ebx, dword [ebp - 0x70]
add ebx, ecx
mov byte [edi + ebx], dl
mov edx, eax
inc ecx
dec esi
cmp eax, ecx
jne 0x8820c0
neg esi
mov edi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x20]
cmp eax, 0xfffffffc
mov edx, dword [ebp - 0x28]
ja 0x88213e
mov eax, dword [ebp - 0x20]
sub eax, esi
mov dword [ebp - 0x2c], eax
lea ecx, [edi + esi]
add ecx, 3
add esi, ebp
add esi, 0xfffffb6f
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ebx, byte [ecx + eax - 3]
lea edi, [esi + eax]
mov byte [edx + edi - 3], bl
movzx ebx, byte [ecx + eax - 2]
mov byte [edx + edi - 2], bl
movzx ebx, byte [ecx + eax - 1]
mov byte [edx + edi - 1], bl
movzx ebx, byte [ecx + eax]
mov byte [edx + edi], bl
add eax, 4
cmp dword [ebp - 0x2c], eax
jne 0x882110
nop
mov eax, dword [ebp - 0x20]
add eax, ebp
add eax, 0xfffffb6c
mov byte [edx + eax], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x494]
push eax
call fcn.00881180
nop
mov dword [ebp - 0x24], eax
nop
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x8821a7
nop
mov ecx, dword [ebp - 0x44]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x88219c
nop
mov esi, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, esi
cmp ecx, 0x20
jae 0x8821ac
add eax, 0x24
mov edx, eax
mov ecx, esi
nop
push edx
push ecx
call fcn.008ea1ad
add esp, 8
jmp 0x881c10
nop
mov dword [ebp - 0x10], 1
call fcn.008cd651
nop
mov dword [ebp - 0x10], 0
call fcn.008cd651
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.00901a00
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
lea ecx, [ebp - 0x64]
call fcn.006675b0
add esp, 0x10
pop ebp
ret