Function at 0x10ac3560
Capabilities:
Execute anti-debugging instructions
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x94
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x3d8]
test eax, eax
je 0x10ac3ef6
mov eax, dword [ebx + 0x1320]
test eax, eax
je 0x10ac3ef6
mov eax, dword [0x110bb4b0]
mov ecx, dword [0x110bb638]
push ebp
push esi
push edi
lea ecx, [eax + ecx*4]
rdtsc
mov dword [0x10fab810], edx
mov dword [0x10fab80c], eax
mov edx, dword [0x10fab80c]
mov eax, dword [ecx]
mov ebp, dword [esp + 0xac]
sub eax, edx
mov dword [ecx], eax
lea eax, [esp + 0x60]
push eax
lea esi, [ebx + 0x1378]
push ebp
push esi
call fcn.10923ae0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xbc]
push ecx
push edx
push esi
mov dword [esp + 0x4c], eax
call fcn.10923ae0
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0xcc]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x50], eax
lea eax, [esp + 0xa4]
push eax
push edi
push esi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
call fcn.10920d60
fld dword [esp + 0x50]
fsub dword [esp + 0x5c]
mov eax, dword [esp + 0xb8]
fld dword [esp + 0x54]
mov ecx, dword [esp + 0xb0]
fsub dword [esp + 0x60]
mov edx, dword [esp + 0xb4]
fld dword [esp + 0x58]
mov dword [esp + 0x80], eax
fsub dword [esp + 0x64]
add esp, 0x24
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
fld st(0)
fmulp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fcom qword [0x10e49258]
fnstsw ax
test ah, 5
jp 0x10ac3699
fstp st(0)
mov dword [esp + 0x7c], 0
fstp st(0)
mov dword [esp + 0x80], 0
jmp 0x10ac36b2
fsqrt
fdivr dword [0x10e45008]
fxch st(2)
fmul st(2)
fstp dword [esp + 0x7c]
fmul st(1)
fstp dword [esp + 0x80]
fstp st(0)
fld dword [esp + 0x54]
fcomp dword [0x10e4500c]
fnstsw ax
test ah, 1
jne 0x10ac36cf
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20], ecx
jmp 0x10ac36d9
fld dword [esp + 0x54]
fchs
fstp dword [esp + 0x20]
fld dword [0x10e4500c]
mov eax, dword [0x10fccc9c]
fld dword [edi]
mov edx, dword [0x10fccc90]
fucompp
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], edx
fnstsw ax
test ah, 0x44
jp 0x10ac3801
fld dword [0x10e4500c]
fld dword [edi + 4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10ac3801
fld dword [0x10e4500c]
fld dword [edi + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10ac3801
mov ecx, dword [ebx + 0x1330]
imul ecx, dword [ebx + 0x1334]
push 8
push ecx
push 0x10fccc90
push 1
call fcn.1095b150
mov edx, dword [ebx + 0x1330]
imul edx, dword [ebx + 0x1334]
add esp, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
xor eax, eax
mov edx, ecx
shr ecx, 2
and edx, 3
rep stosd dword es:[edi], eax
mov ecx, edx
rep stosb byte es:[edi], al
mov eax, dword [esp + 0xb0]
fld dword [ebp]
xor edi, edi
fsub dword [eax]
fstp dword [esp + 0x6c]
fld dword [ebp + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
fld dword [ebp + 8]
mov dword [esp + 0x58], ecx
fsub dword [eax + 8]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
fstp dword [esp + 0x74]
mov edx, dword [esp + 0x74]
fld dword [0x10e45008]
mov dword [esp + 0x5c], edx
fdiv dword [esp + 0x54]
fstp dword [esp + 0x6c]
fld dword [0x10e45008]
fdiv dword [esp + 0x58]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x60], eax
fstp dword [esp + 0x70]
fld dword [0x10e45008]
fdiv dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x64], ecx
fstp dword [esp + 0x74]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x68], edx
jmp 0x10ac3807
xor edi, edi
mov dword [esp + 0x14], edi
fld dword [esp + 0x7c]
mov dword [esp + 0x24], edi
fmul dword [esp + 0x20]
fst dword [esp + 0x6c]
fld dword [esp + 0x80]
fmul dword [esp + 0x20]
fld st(0)
fld dword [esp + 0x38]
fsub dword [esp + 0x6c]
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fsub st(1)
fstp dword [esp + 0x3c]
fstp st(0)
fxch st(1)
fst dword [esp + 0x7c]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [esp + 0x38]
fcomp dword [0x10e4500c]
fnstsw ax
test ah, 5
jp 0x10ac3878
fld dword [esp + 0x2c]
fcomp dword [0x10e4500c]
fnstsw ax
test ah, 5
jnp 0x10ac3e8e
fld dword [esp + 0x3c]
fcomp dword [0x10e4500c]
fnstsw ax
test ah, 5
jp 0x10ac389e
fld dword [esp + 0x30]
fcomp dword [0x10e4500c]
fnstsw ax
test ah, 5
jnp 0x10ac3e8e
mov eax, dword [ebx + 0x1328]
sub eax, 2
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fld dword [esp + 0x38]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10ac38d1
fld dword [esp + 0x2c]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
je 0x10ac3e8e
jmp 0x10ac38d3
fstp st(0)
mov ecx, dword [ebx + 0x132c]
sub ecx, 2
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fld dword [esp + 0x3c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10ac3906
fld dword [esp + 0x30]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
je 0x10ac3e8e
jmp 0x10ac3908
fstp st(0)
mov edx, dword [esp + 0xa8]
fld dword [esp + 0x38]
mov dword [edx + 4], edi
mov eax, dword [ebx + 0x1328]
lea esi, [eax - 2]
call fcn.10ddea68
cmp eax, edi
jge 0x10ac392c
xor ebp, ebp
jmp 0x10ac3934
cmp eax, esi
mov ebp, eax
jl 0x10ac3934
mov ebp, esi
fld dword [esp + 0x2c]
call fcn.10ddea68
test eax, eax
jge 0x10ac3945
xor edx, edx
jmp 0x10ac394d
cmp eax, esi
mov edx, eax
jl 0x10ac394d
mov edx, esi
cmp ebp, edx
jne 0x10ac3c74
mov eax, dword [ebx + 0x132c]
fld dword [esp + 0x3c]
lea esi, [eax - 2]
call fcn.10ddea68
test eax, eax
jge 0x10ac396f
xor edi, edi
jmp 0x10ac3977
cmp eax, esi
mov edi, eax
jl 0x10ac3977
mov edi, esi
fld dword [esp + 0x30]
call fcn.10ddea68
test eax, eax
jge 0x10ac3988
xor ecx, ecx
jmp 0x10ac3990
cmp eax, esi
mov ecx, eax
jl 0x10ac3990
mov ecx, esi
cmp edi, ecx
jne 0x10ac3a63
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10ac3a0c
mov ecx, dword [ebx + 0x3d4]
mov eax, edi
cdq
idiv ecx
mov esi, eax
mov eax, ebp
imul esi, dword [ebx + 0x1330]
cdq
idiv ecx
add esi, eax
mov eax, dword [esp + 0x14]
cmp byte [esi + eax], 0
jne 0x10ac3a02
mov eax, dword [esp + 0xac]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0xb4]
lea edx, [esp + 0x58]
push edx
mov edx, dword [ebx + 0x1310]
push eax
mov eax, dword [edx + esi*4]
push ecx
add eax, 0x48
push eax
call fcn.10a14150
mov edx, dword [esp + 0x28]
add esp, 0x14
test eax, eax
setne cl
inc cl
mov byte [esi + edx], cl
mov eax, dword [esp + 0x14]
cmp byte [esi + eax], 1
je 0x10ac3a56
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0xb4]
push ecx
push edx
push eax
push edi
push ebp
mov ecx, ebx
call fcn.10ac1fb0
test eax, eax
je 0x10ac3a56
mov dword [esp + 0x24], 1
jmp 0x10ac3e8e
mov dword [esp + 0x24], 0
jmp 0x10ac3e8e
fld dword [esp + 0x2c]
xor edx, edx
fsub dword [esp + 0x38]
cmp edi, ecx
fld dword [esp + 0x30]
setle dl
fsub dword [esp + 0x3c]
mov ebp, edi
mov dword [esp + 0x48], 0
fdivp st(1)
mov dword [esp + 0x10], ebp
lea edx, [edx + edx - 1]
mov eax, edx
mov esi, edx
mov dword [esp + 0x50], edx
imul esi, ecx
imul eax, edi
fst dword [esp + 0x1c]
fmul dword [esp + 0x30]
fsubr dword [esp + 0x2c]
fstp dword [esp + 0x28]
cmp eax, esi
mov dword [esp + 0x4c], esi
jg 0x10ac3e8e
mov dword [esp + 0x44], eax
mov eax, edx
imul eax, edx
mov dword [esp + 0x78], eax
fild dword [esp + 0x10]
lea ecx, [ebp + 1]
mov dword [esp + 0x18], ecx
fmul dword [esp + 0x1c]
fadd dword [esp + 0x28]
fild dword [esp + 0x18]
fmul dword [esp + 0x1c]
fadd dword [esp + 0x28]
fst dword [esp + 0x10]
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10ac3b01
fstp st(0)
fstp dword [esp + 0x18]
fld dword [esp + 0x10]
fld dword [esp + 0x18]
fadd dword [esp + 0x20]
mov eax, dword [ebx + 0x1328]
lea esi, [eax - 2]
fstp dword [esp + 0x10]
fsub dword [esp + 0x20]
call fcn.10ddea68
test eax, eax
jge 0x10ac3b23
xor edi, edi
jmp 0x10ac3b2b
cmp eax, esi
mov edi, eax
jl 0x10ac3b2b
mov edi, esi
fld dword [esp + 0x10]
call fcn.10ddea68
test eax, eax
jge 0x10ac3b3c
xor eax, eax
jmp 0x10ac3b42
cmp eax, esi
jl 0x10ac3b42
mov eax, esi
cmp edi, eax
mov dword [esp + 0x10], eax
jg 0x10ac3c22
mov edi, edi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10ac3bc4
mov ecx, dword [ebx + 0x3d4]
mov eax, ebp
cdq
idiv ecx
mov esi, eax
mov eax, edi
imul esi, dword [ebx + 0x1330]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
add esi, eax
cmp byte [esi + edx], 0
jne 0x10ac3bba
mov edx, dword [esp + 0xac]
lea eax, [esp + 0x60]
push eax
mov eax, dword [esp + 0xb4]
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [ebx + 0x1310]
push edx
mov edx, dword [ecx + esi*4]
push eax
add edx, 0x48
push edx
call fcn.10a14150
mov ecx, dword [esp + 0x28]
add esp, 0x14
test eax, eax
setne al
inc al
mov byte [esi + ecx], al
mov edx, dword [esp + 0x14]
cmp byte [esi + edx], 1
je 0x10ac3c15
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xb4]
push eax
push ecx
push edx
push ebp
push edi
mov ecx, ebx
call fcn.10ac1fb0
test eax, eax
je 0x10ac3c15
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x10ac3c0d
mov dword [esp + 0x48], ebp
mov dword [esp + 0x24], 1
mov eax, dword [esp + 0x10]
inc edi
cmp edi, eax
jle 0x10ac3b50
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10ac3c4b
mov eax, dword [esp + 0x48]
sub eax, ebp
jns 0x10ac3c34
neg eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
je 0x10ac3e8e
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
add eax, edx
add ebp, esi
cmp eax, ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x44], eax
jle 0x10ac3ac5
jmp 0x10ac3e8e
fld dword [esp + 0x30]
xor ecx, ecx
fsub dword [esp + 0x3c]
cmp ebp, edx
fld dword [esp + 0x2c]
setle cl
fsub dword [esp + 0x38]
mov dword [esp + 0x48], 0
mov dword [esp + 0x28], ebp
fdivp st(1)
lea ecx, [ecx + ecx - 1]
mov eax, ecx
mov dword [esp + 0x50], ecx
imul ecx, edx
imul eax, ebp
fst dword [esp + 0x10]
fmul dword [esp + 0x2c]
fsubr dword [esp + 0x30]
fstp dword [esp + 0x44]
cmp eax, ecx
mov dword [esp + 0x88], ecx
jg 0x10ac3e8e
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
imul eax, eax
mov dword [esp + 0x78], eax
jmp 0x10ac3ce0
fild dword [esp + 0x28]
lea eax, [ebp + 1]
mov dword [esp + 0x4c], eax
fmul dword [esp + 0x10]
fadd dword [esp + 0x44]
fild dword [esp + 0x4c]
fmul dword [esp + 0x10]
fadd dword [esp + 0x44]
fst dword [esp + 0x1c]
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10ac3d1c
fstp st(0)
fstp dword [esp + 0x4c]
fld dword [esp + 0x1c]
fld dword [esp + 0x4c]
fadd dword [esp + 0x20]
mov eax, dword [ebx + 0x132c]
lea esi, [eax - 2]
fstp dword [esp + 0x1c]
fsub dword [esp + 0x20]
call fcn.10ddea68
test eax, eax
jge 0x10ac3d3e
xor edi, edi
jmp 0x10ac3d46
cmp eax, esi
mov edi, eax
jl 0x10ac3d46
mov edi, esi
fld dword [esp + 0x1c]
call fcn.10ddea68
test eax, eax
jge 0x10ac3d57
xor eax, eax
jmp 0x10ac3d5d
cmp eax, esi
jl 0x10ac3d5d
mov eax, esi
cmp edi, eax
mov dword [esp + 0x1c], eax
jg 0x10ac3e42
lea esp, [esp]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10ac3de4
mov ecx, dword [ebx + 0x3d4]
mov eax, edi
cdq
idiv ecx
mov esi, eax
mov eax, ebp
imul esi, dword [ebx + 0x1330]
cdq
idiv ecx
mov ecx, dword [esp + 0x14]
add esi, eax
cmp byte [esi + ecx], 0
jne 0x10ac3dda
mov ecx, dword [esp + 0xac]
lea edx, [esp + 0x60]
push edx
mov edx, dword [esp + 0xb4]
lea eax, [esp + 0x58]
push eax
mov eax, dword [ebx + 0x1310]
push ecx
mov ecx, dword [eax + esi*4]
push edx
add ecx, 0x48
push ecx
call fcn.10a14150
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0x14]
setne dl
inc dl
mov byte [esi + eax], dl
mov ecx, dword [esp + 0x14]
cmp byte [esi + ecx], 1
je 0x10ac3e35
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0xb4]
push edx
push eax
push ecx
push edi
push ebp
mov ecx, ebx
call fcn.10ac1fb0
test eax, eax
je 0x10ac3e35
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x10ac3e2d
mov dword [esp + 0x48], ebp
mov dword [esp + 0x24], 1
mov eax, dword [esp + 0x1c]
inc edi
cmp edi, eax
jle 0x10ac3d70
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10ac3e67
mov eax, dword [esp + 0x48]
sub eax, ebp
jns 0x10ac3e54
neg eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
je 0x10ac3e8e
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x88]
add eax, edx
add ebp, esi
cmp eax, ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], eax
jle 0x10ac3ce0
mov edx, dword [0x110bb4b0]
mov eax, dword [0x110bb638]
lea ecx, [edx + eax*4]
rdtsc
mov dword [0x10fab810], edx
mov dword [0x10fab80c], eax
mov edx, dword [0x10fab80c]
mov esi, dword [ecx]
mov eax, dword [esp + 0xa0]
add edx, 0xfffffff4
add esi, edx
mov dword [ecx], esi
cmp eax, dword [0x10fccc9c]
pop edi
pop esi
pop ebp
je 0x10ac3ed5
push eax
mov ecx, 0x10fccc90
call fcn.109fe480
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x18]
mov dword [0x10fccc90], eax
xor eax, eax
test ecx, ecx
sete al
pop ebx
add esp, 0x94
ret 0x18
mov eax, 1
pop ebx
add esp, 0x94
ret 0x18