Function at 0x10004ac1
Capabilities:
Check for peb beingdebugged flag
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1f0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
cmp byte [eax + 2], 0
jne 0x10004f95
lea esi, [esp + 0x50]
push esi
call fcn.1000aed0
add esp, 4
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
cmp edx, 0x80000000
jne 0x10004b15
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
cmp al, 4
jne 0x10004f02
jmp 0x100053b1
mov edi, dword [esp + 0x5c]
lea ebx, [esp + 0x160]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edi
push ebx
push esi
call fcn.10004044
add esp, 8
cmp byte [esp + 0x50], 4
jne 0x10004b42
mov edi, dword [esp + 0x54]
jmp 0x10004b52
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
cmp al, 4
jne 0x10004ecb
push 0x2000
call fcn.1000165d
add esp, 4
lea ecx, [esp + 0x108]
mov dword [ecx], eax
mov dword [ecx + 4], edx
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edi
lea edi, [esp + 0x44]
mov dword [edi], eax
mov dword [edi + 4], 1
mov dword [edi + 8], eax
push edi
push ecx
push esi
call fcn.100045bf
add esp, 0xc
cmp byte [esp + 0x50], 4
je 0x10004ba7
mov eax, dword [esp + 0x50]
cmp al, 4
jne 0x10004ed8
lea esi, [esp + 0x198]
xorps xmm0, xmm0
movups xmmword [esi + 0x30], xmm0
movups xmmword [esi + 0x20], xmm0
movups xmmword [esi + 0x10], xmm0
movups xmmword [esi], xmm0
mov byte [esi + 0x40], 0
movups xmm0, xmmword [0x1004aad0]
movaps xmmword [esi - 0x28], xmm0
movups xmm0, xmmword [0x1004aae0]
movaps xmmword [esi - 0x18], xmm0
xor eax, eax
mov dword [esi - 4], eax
mov dword [esi - 8], eax
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
cmp edi, 0x40
jae 0x10004c07
push 0x1004a8bc
push edi
push ecx
push edi
push esi
call fcn.10007b4b
add esp, 0x14
mov ebx, edi
jmp 0x10004c8b
mov al, 1
test al, al
jne 0x10004c46
mov eax, 0x40
sub edi, eax
push 0x1004a89c
push eax
push ecx
add ecx, eax
push eax
push esi
mov ebx, ecx
call fcn.10007b4b
add esp, 0x14
lea eax, [esp + 0x170]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
push 1
push esi
push eax
call fcn.10005ed2
mov ecx, ebx
add esp, 0xc
mov esi, edi
and esi, 0xffffffc0
mov ebx, edi
and ebx, 0x3f
add esi, ecx
cmp edi, 0x40
jb 0x10004c73
shr edi, 6
lea eax, [esp + 0x170]
add dword [eax + 0x20], edi
adc dword [eax + 0x24], 0
push edi
push ecx
push eax
call fcn.10005ed2
add esp, 0xc
push 0x1004a8ac
push ebx
push esi
push ebx
lea eax, [esp + 0x1a8]
push eax
call fcn.10007b4b
add esp, 0x14
lea esi, [esp + 0x170]
mov byte [esi + 0x68], bl
lea eax, [esp + 0x50]
mov ecx, 0x1c
mov edi, eax
rep movsd dword es:[edi], dword [esi]
xorps xmm0, xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0xe0], xmm0
movzx ebx, byte [eax + 0x68]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
shld eax, ecx, 9
shl ecx, 9
lea edx, [ebx*8]
or edx, ecx
bswap edx
bswap eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov byte [esp + ebx + 0x78], 0x80
mov eax, ebx
xor eax, 0x3f
je 0x10004d0d
lea ecx, [esp + ebx]
add ecx, 0x79
test ecx, ecx
je 0x10004d0d
push eax
push 0
push ecx
call fcn.10034910
add esp, 0xc
lea esi, [esp + 0x78]
not ebx
test bl, 0x38
jne 0x10004d6a
xor edi, edi
inc edi
push edi
push esi
lea esi, [esp + 0x58]
push esi
call fcn.10005ed2
add esp, 0xc
xorps xmm0, xmm0
lea eax, [esp + 0x158]
movaps xmmword [eax - 8], xmm0
movaps xmmword [eax - 0x18], xmm0
movaps xmmword [eax - 0x28], xmm0
movaps xmmword [eax - 0x38], xmm0
mov ecx, 8
lea edx, [esp + 0x38]
push 0x1004a8dc
push ecx
push edx
push ecx
push eax
call fcn.10007b4b
add esp, 0x14
lea eax, [esp + 0x120]
push edi
push eax
push esi
jmp 0x10004d93
lea eax, [esp + 0xb0]
mov ecx, 8
lea edx, [esp + 0x38]
push 0x1004a8cc
push ecx
push edx
push ecx
push eax
call fcn.10007b4b
add esp, 0x14
push 1
push esi
lea eax, [esp + 0x58]
push eax
call fcn.10005ed2
add esp, 0xc
mov byte [esp + 0xb8], 0
xor esi, esi
mov ebx, 4
lea edi, [esp + 0x120]
lea eax, [esp + esi]
add eax, 0xe0
mov ecx, dword [esp + esi + 0x50]
bswap ecx
mov dword [esp + 0x120], ecx
push 0x1004aabc
push ebx
push edi
push ebx
push eax
call fcn.10007b4b
add esp, 0x14
add esi, ebx
cmp esi, 0x20
jne 0x10004db1
mov eax, 0x20
lea esi, [esp + 0xe0]
lea ebx, [esp + 0xc0]
push 0x1004a878
push eax
push esi
push eax
push ebx
call fcn.10007b4b
add esp, 0x14
movaps xmm0, xmmword [ebx]
movaps xmm1, xmmword [ebx + 0x10]
movaps xmmword [esp + 0x120], xmm0
movaps xmmword [esp + 0x130], xmm1
mov dword [esi], edi
mov dword [esi + 4], 0x10002af4
mov dword [esp + 0x50], 0x1004ac88
xor eax, eax
inc eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x38]
lea ebx, [esp + 0x50]
push ebx
push eax
call fcn.1001dbd0
add esp, 8
push esi
call fcn.1000aed0
add esp, 4
mov eax, dword [esi]
lea ecx, [esp + 0xe4]
cmp eax, 0x80000000
jne 0x10004e7a
call fcn.1000453f
lea edi, [esp + 0x44]
jmp 0x1000537d
mov edx, dword [ecx + 8]
mov dword [esp + 0x5c], edx
movsd xmm0, qword [ecx]
movsd qword [esp + 0x54], xmm0
mov dword [esp + 0x50], eax
push ebx
call fcn.100146a0
add esp, 4
push edx
push eax
call fcn.1000f310
add esp, 8
test eax, eax
je 0x10004f10
push edx
push eax
push esi
call fcn.100146b0
add esp, 0xc
push esi
lea eax, [esp + 0xc4]
push eax
call fcn.100032bc
add esp, 8
mov esi, dword [esp + 0xc0]
jmp 0x10004f20
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], eax
jmp 0x10004b08
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
push edi
call fcn.10001352
add esp, 4
push edi
call fcn.1000556f
add esp, 4
lea ecx, [esp + 0x108]
call fcn.1000459d
lea ecx, [esp + 0x50]
call fcn.1000453f
jmp 0x100053b1
mov dword [esp + 0xc0], 0x80000000
mov esi, 0x80000000
lea edi, [esp + 0x44]
push ebx
call fcn.10001352
add esp, 4
push ebx
call fcn.1000556f
add esp, 4
cmp esi, 0x80000000
je 0x1000537d
mov edx, dword [esp + 0x40]
test edx, edx
je 0x10004f95
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x3c]
cmp edx, ecx
jae 0x10004f81
cmp edx, 1
jne 0x10004f9f
mov dl, byte [esi]
cmp ecx, 7
ja 0x1000512b
xor esi, esi
cmp byte [eax + esi], dl
je 0x10004f95
inc esi
cmp ecx, esi
jne 0x10004f72
jmp 0x10005364
push ecx
push eax
push edx
push esi
call fcn.10005e60
add esp, 0x10
test al, al
je 0x10005364
push 0x100
call fcn.1000f390
push edx
push esi
push ecx
push eax
push ebx
call fcn.10024110
add esp, 0x14
cmp dword [esp + 0x50], 0
je 0x10005147
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc], eax
lea ecx, [eax - 1]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c], eax
mov dword [esp + 8], esi
cmp esi, 0xffffffff
mov eax, ebx
mov dword [esp + 4], edx
mov dword [esp + 0x34], ecx
je 0x10005236
mov edi, dword [esp + 0x6c]
add ecx, edi
cmp ecx, edx
jae 0x10005360
mov edx, dword [esp + 0x58]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x28], esi
sub edx, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x14]
neg edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x2c], edx
mov cl, byte [ebx + ecx]
xor edx, edx
xor esi, esi
inc esi
shld edx, esi, cl
shl esi, cl
test cl, 0x20
cmovne edx, esi
mov ecx, 0
cmovne esi, ecx
and edx, dword [esp + 0x2c]
and esi, dword [esp + 0x30]
or esi, edx
je 0x100050bd
xor ebx, ebx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
cmp edx, ecx
mov esi, ecx
cmova esi, edx
mov dword [esp + 0x10], edi
add edi, esi
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + esi]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], esi
sub ecx, esi
cmovb ecx, ebx
sub ecx, 1
jb 0x100050cf
mov esi, dword [esp + 4]
cmp edi, esi
jae 0x100053d0
mov bl, byte [edx]
lea esi, [edi + 1]
inc edx
cmp bl, byte [eax + edi]
mov edi, esi
je 0x1000508d
mov ebx, eax
add esi, dword [esp + 0x20]
mov dword [esp + 8], 0
mov edi, esi
jmp 0x100050c9
add edi, dword [esp + 0xc]
mov dword [esp + 8], 0
mov esi, dword [esp + 4]
jmp 0x10005118
mov ecx, dword [esp + 0x14]
cmp dword [esp + 8], ecx
mov edx, dword [esp + 0x10]
jae 0x10004f95
dec ecx
cmp ecx, dword [esp + 0xc]
jae 0x100053b9
add edx, ecx
mov esi, dword [esp + 4]
cmp edx, esi
jae 0x100053c4
mov edi, dword [esp + 0x1c]
mov bl, byte [edi + ecx]
cmp bl, byte [eax + edx]
je 0x100050d3
mov ebx, eax
mov edi, dword [esp + 0x10]
add edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x34]
add ecx, edi
cmp ecx, esi
jb 0x1000503b
jmp 0x10005360
movzx edx, dl
push ecx
push eax
push edx
call fcn.100237b0
add esp, 0xc
cmp eax, 1
jne 0x10005364
jmp 0x10004f95
cmp byte [esp + 0x5e], 0
jne 0x10005360
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
cmp byte [esp + 0x5c], 0
sete bl
mov dword [esp + 0xc], edi
test ecx, ecx
je 0x1000518f
cmp ecx, dword [esp + 4]
jae 0x10005189
cmp byte [edi + ecx], 0xbf
jg 0x1000518f
jmp 0x10005422
jne 0x10005422
cmp ecx, dword [esp + 4]
je 0x10005357
mov dl, byte [edi + ecx]
movzx esi, dl
test dl, dl
jns 0x100051f2
and esi, 0x1f
movzx eax, byte [edi + ecx + 1]
and eax, 0x3f
cmp dl, 0xdf
jbe 0x100051e2
movzx edi, byte [edi + ecx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp dl, 0xf0
jb 0x100051e9
mov edx, dword [esp + 0xc]
movzx eax, byte [edx + ecx + 3]
and esi, 7
shl esi, 0x12
shl edi, 6
and eax, 0x3f
or eax, edi
or esi, eax
mov edi, edx
jmp 0x100051f2
shl esi, 6
or esi, eax
jmp 0x100051f2
shl esi, 0xc
or esi, edi
mov edi, dword [esp + 0xc]
test bl, 1
je 0x10004f95
cmp esi, 0x110000
je 0x10005360
xor eax, eax
inc eax
cmp esi, 0x80
jb 0x1000522d
mov eax, 2
cmp esi, 0x800
jb 0x1000522d
cmp esi, 0x10000
mov eax, 4
sbb eax, 0
add ecx, eax
xor ebx, ebx
jmp 0x10005174
mov edi, dword [esp + 0x6c]
mov dword [esp + 8], edi
add ecx, edi
cmp ecx, edx
jae 0x10005360
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0xc]
cmp esi, edx
cmova edx, esi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
xor edx, edx
inc edx
sub edx, esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], edx
lea edx, [esi - 1]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
add edx, esi
dec edx
mov dword [esp + 0x24], edx
mov cl, byte [ebx + ecx]
xor edx, edx
xor esi, esi
inc esi
shld edx, esi, cl
shl esi, cl
test cl, 0x20
cmovne edx, esi
mov ecx, 0
cmovne esi, ecx
and edx, dword [esp + 0x14]
and esi, dword [esp + 0x2c]
or esi, edx
je 0x100052f4
mov edi, dword [esp + 8]
mov ecx, edi
neg ecx
lea edx, [ebx + edi]
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x30], esi
je 0x100052fe
add edi, esi
cmp edi, dword [esp + 4]
jae 0x10005405
mov edi, dword [esp + 0x1c]
mov bl, byte [edi + esi]
dec ecx
cmp bl, byte [edx + esi]
mov ebx, eax
lea esi, [esi + 1]
mov edi, dword [esp + 8]
je 0x100052c6
neg ecx
mov edx, ecx
jmp 0x10005341
mov edx, dword [esp + 8]
add edx, dword [esp + 0xc]
jmp 0x10005341
mov ecx, dword [esp + 0x10]
add ecx, edi
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
cmp edi, 1
je 0x10004f95
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0xc]
jae 0x100053e9
cmp ecx, dword [esp + 4]
jae 0x100053fa
mov dl, byte [esi]
inc edi
dec esi
cmp dl, byte [ebx + ecx]
lea ecx, [ecx - 1]
je 0x1000530c
mov edx, dword [esp + 8]
add edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov dword [esp + 8], edx
add ecx, edx
cmp ecx, dword [esp + 4]
jb 0x10005290
jmp 0x10005360
test bl, 1
je 0x10004f95
lea edi, [esp + 0x44]
lea esi, [esp + 0xc0]
push esi
call fcn.10001352
add esp, 4
push esi
call fcn.1000556f
add esp, 4
lea esi, [esp + 0x38]
push esi
call fcn.10001352
add esp, 4
push esi
call fcn.1000556f
add esp, 4
push edi
call fcn.10001352
add esp, 4
push edi
call fcn.1000556f
add esp, 4
lea ecx, [esp + 0x108]
call fcn.1000459d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x1004aa64
push dword [esp + 0x10]
jmp 0x1000541c
push 0x1004aa74
push esi
push edx
call fcn.100496f0
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x18]
cmp esi, eax
cmova eax, esi
push 0x1004aa84
push esi
push eax
call fcn.100496f0
neg edi
push 0x1004aa64
push dword [esp + 0x10]
push edi
call fcn.100496f0
push 0x1004aa74
push dword [esp + 8]
jmp 0x1000541c
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 4]
cmp eax, ecx
cmova ecx, eax
push 0x1004aa84
push eax
push ecx
call fcn.100496f0
push 0x1004aa94
mov eax, dword [esp + 8]
push eax
push ecx
push eax
push edi
call fcn.10049a20