Function at 0x7ff64863
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x7ff93b91
call fcn.7ff890d8
sub esp, 0x3f4
cmp dword [ebp + 0x10], 0
je 0x7ff6489c
push 0
push 0x80
push 4
push 0
push 1
push 0x80000000
push dword [ebp + 8]
call dword [0x7ff960a8]
mov dword [ebp - 0x40], eax
jmp 0x7ff649d7
and dword [ebp - 0x2d4], 0
and dword [ebp - 0x2cc], 0
and dword [ebp - 4], 0
push 0
lea eax, [ebp - 0x2d4]
push eax
push 3
push dword [ebp + 8]
call fcn.7ff80086
add esp, 0x10
test eax, eax
jne 0x7ff648e9
and byte [ebp - 0x330], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2d4]
call fcn.7ff86114
mov al, byte [ebp - 0x330]
jmp 0x7ff650ef
cmp dword [ebp - 0x2d0], 1
jne 0x7ff64915
push 0
push 0x80
push 4
push 0
push 1
push 0x80000000
push dword [ebp + 8]
call dword [0x7ff960a8]
mov dword [ebp - 0x40], eax
jmp 0x7ff649c8
mov eax, dword [ebp - 0x2cc]
mov eax, dword [eax + 0x28]
shr eax, 5
and eax, 7
mov dword [ebp - 0x2dc], eax
mov eax, dword [ebp - 0x2cc]
mov eax, dword [eax + 0x28]
and eax, 7
mov dword [ebp - 0x2d8], eax
mov eax, dword [ebp - 0x2cc]
mov eax, dword [eax + 0x28]
and al, 0x1f
or al, 0x20
mov ecx, dword [ebp - 0x2cc]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0x2cc]
mov eax, dword [eax + 0x28]
and al, 0xf8
or al, 3
mov ecx, dword [ebp - 0x2cc]
mov dword [ecx + 0x28], eax
push 0
push 0x80
push 4
push 0
push 1
push 0x80000000
push dword [ebp + 8]
call fcn.7ff6299c
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x2d8]
and eax, 7
mov ecx, dword [ebp - 0x2cc]
mov ecx, dword [ecx + 0x28]
and ecx, 0xfffffff8
or ecx, eax
mov eax, dword [ebp - 0x2cc]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0x2dc]
and eax, 7
shl eax, 5
mov ecx, dword [ebp - 0x2cc]
mov ecx, dword [ecx + 0x28]
and cl, 0x1f
or ecx, eax
mov eax, dword [ebp - 0x2cc]
mov dword [eax + 0x28], ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2d4]
call fcn.7ff86114
cmp dword [ebp - 0x40], 0xffffffff
jne 0x7ff649e4
xor al, al
jmp 0x7ff650ef
mov dword [ebp - 0x20], 0x7ff96498
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x1c], eax
and dword [ebp - 0x18], 0
mov dword [ebp - 0x20], 0x7ff97484
and dword [ebp - 0x14], 0
mov dword [ebp - 4], 1
lea eax, [ebp - 0x20]
mov dword [ebp - 0x188], eax
push 0x40
lea eax, [ebp - 0x184]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax]
movzx eax, word [ebp - 0x184]
cmp eax, 0x5a4d
je 0x7ff64a55
and byte [ebp - 0x334], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.7ff5d5cb
mov al, byte [ebp - 0x334]
jmp 0x7ff650ef
push dword [ebp - 0x148]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax + 8]
mov ecx, dword [ebp - 0x188]
call fcn.7ff866f4
cmp eax, 0x4550
je 0x7ff64a9c
and byte [ebp - 0x338], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.7ff5d5cb
mov al, byte [ebp - 0x338]
jmp 0x7ff650ef
push 0x14
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax]
push 0xe0
lea eax, [ebp - 0x128]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax]
mov al, byte [ebp - 0x33c]
mov byte [ebp - 0x13c], al
and dword [ebp - 0x138], 0
and dword [ebp - 0x134], 0
and dword [ebp - 0x130], 0
mov byte [ebp - 4], 2
and dword [ebp - 0x44], 0
jmp 0x7ff64b00
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
movzx eax, word [ebp - 0x3a]
cmp dword [ebp - 0x44], eax
jge 0x7ff64b36
push 0x28
lea eax, [ebp - 0x304]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax]
lea eax, [ebp - 0x304]
push eax
lea ecx, [ebp - 0x13c]
call fcn.7ff5ae7a
jmp 0x7ff64af9
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x48], 0
je 0x7ff64b54
cmp dword [ebp - 0x28], 0
jne 0x7ff64b81
and byte [ebp - 0x340], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x13c]
call fcn.7ff67225
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.7ff5d5cb
mov al, byte [ebp - 0x340]
jmp 0x7ff650ef
and dword [ebp - 0x10], 0
and dword [ebp - 0x44], 0
jmp 0x7ff64b92
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x138], 0
jne 0x7ff64ba4
and dword [ebp - 0x3f8], 0
jmp 0x7ff64bbc
mov eax, dword [ebp - 0x134]
sub eax, dword [ebp - 0x138]
cdq
push 0x28
pop ecx
idiv ecx
mov dword [ebp - 0x3f8], eax
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x3f8]
jae 0x7ff64c6c
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x374], eax
mov eax, dword [ebp - 0x44]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x374]
mov edx, dword [ebp - 0x48]
cmp edx, dword [ecx + eax + 0xc]
jb 0x7ff64c67
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x378], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x37c], eax
mov eax, dword [ebp - 0x44]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x44]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x378]
mov eax, dword [edx + eax + 0xc]
mov edx, dword [ebp - 0x37c]
add eax, dword [edx + ecx + 0x10]
cmp dword [ebp - 0x48], eax
jae 0x7ff64c67
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x380], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x384], eax
mov eax, dword [ebp - 0x44]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x380]
mov edx, dword [ebp - 0x48]
sub edx, dword [ecx + eax + 0xc]
mov eax, dword [ebp - 0x44]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x384]
add edx, dword [ecx + eax + 0x14]
mov dword [ebp - 0x10], edx
jmp 0x7ff64b8b
cmp dword [ebp - 0x10], 0
jne 0x7ff64c9f
and byte [ebp - 0x344], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x13c]
call fcn.7ff67225
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.7ff5d5cb
mov al, byte [ebp - 0x344]
jmp 0x7ff650ef
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax + 8]
push dword [ebp - 0x28]
push 0
call dword [0x7ff9603c]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
jne 0x7ff64cfa
and byte [ebp - 0x348], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x13c]
call fcn.7ff67225
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.7ff5d5cb
mov al, byte [ebp - 0x348]
jmp 0x7ff650ef
push dword [ebp - 0x28]
push dword [ebp - 0x140]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax]
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x144]
movzx eax, word [eax + 0xc]
mov ecx, dword [ebp - 0x144]
lea eax, [ecx + eax*8 + 0x10]
mov dword [ebp - 0x12c], eax
and dword [ebp - 0x44], 0
jmp 0x7ff64d5b
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x12c]
add eax, 8
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x144]
movzx eax, word [eax + 0xe]
cmp dword [ebp - 0x44], eax
jge 0x7ff650bb
mov eax, dword [ebp - 0x12c]
mov eax, dword [eax + 4]
shr eax, 0x1f
and eax, 1
test eax, eax
je 0x7ff650b6
mov eax, dword [ebp - 0x12c]
cmp dword [eax], 0x10
jne 0x7ff650b6
mov eax, dword [ebp - 0x12c]
mov eax, dword [eax + 4]
and eax, 0x7fffffff
mov ecx, dword [ebp - 0x24]
add ecx, eax
mov dword [ebp - 0x310], ecx
mov eax, dword [ebp - 0x310]
add eax, 0x10
mov dword [ebp - 0x30c], eax
and dword [ebp - 0x308], 0
jmp 0x7ff64de1
mov eax, dword [ebp - 0x308]
inc eax
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x30c]
add eax, 8
mov dword [ebp - 0x30c], eax
mov eax, dword [ebp - 0x310]
movzx eax, word [eax + 0xc]
mov ecx, dword [ebp - 0x310]
movzx ecx, word [ecx + 0xe]
add eax, ecx
cmp dword [ebp - 0x308], eax
jge 0x7ff650b6
mov eax, dword [ebp - 0x30c]
mov eax, dword [eax + 4]
shr eax, 0x1f
and eax, 1
test eax, eax
je 0x7ff650b1
mov eax, dword [ebp - 0x30c]
mov eax, dword [eax + 4]
and eax, 0x7fffffff
mov ecx, dword [ebp - 0x24]
add ecx, eax
mov dword [ebp - 0x31c], ecx
mov eax, dword [ebp - 0x31c]
add eax, 0x10
mov dword [ebp - 0x318], eax
and dword [ebp - 0x314], 0
jmp 0x7ff64e67
mov eax, dword [ebp - 0x314]
inc eax
mov dword [ebp - 0x314], eax
mov eax, dword [ebp - 0x318]
add eax, 8
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x31c]
movzx eax, word [eax + 0xc]
mov ecx, dword [ebp - 0x31c]
movzx ecx, word [ecx + 0xe]
add eax, ecx
cmp dword [ebp - 0x314], eax
jge 0x7ff650b1
mov eax, dword [ebp - 0x318]
mov ecx, dword [ebp - 0x140]
add ecx, dword [eax + 4]
mov dword [ebp - 0x320], ecx
mov eax, dword [ebp - 0x318]
cmp dword [eax + 4], 0
jb 0x7ff650ac
mov eax, dword [ebp - 0x318]
mov eax, dword [eax + 4]
cmp eax, dword [ebp - 0x28]
jae 0x7ff650ac
and dword [ebp - 0x324], 0
mov eax, dword [ebp - 0x320]
mov eax, dword [eax]
mov dword [ebp - 0x32c], eax
and dword [ebp - 0x328], 0
jmp 0x7ff64eeb
mov eax, dword [ebp - 0x328]
inc eax
mov dword [ebp - 0x328], eax
cmp dword [ebp - 0x138], 0
jne 0x7ff64efd
and dword [ebp - 0x3fc], 0
jmp 0x7ff64f15
mov eax, dword [ebp - 0x134]
sub eax, dword [ebp - 0x138]
cdq
push 0x28
pop ecx
idiv ecx
mov dword [ebp - 0x3fc], eax
mov eax, dword [ebp - 0x328]
cmp eax, dword [ebp - 0x3fc]
jae 0x7ff64fe7
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a0], eax
mov eax, dword [ebp - 0x328]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x3a0]
mov edx, dword [ebp - 0x32c]
cmp edx, dword [ecx + eax + 0xc]
jb 0x7ff64fe2
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a4], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a8], eax
mov eax, dword [ebp - 0x328]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x328]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x3a4]
mov eax, dword [edx + eax + 0xc]
mov edx, dword [ebp - 0x3a8]
add eax, dword [edx + ecx + 0x10]
cmp dword [ebp - 0x32c], eax
jae 0x7ff64fe2
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3b0], eax
mov eax, dword [ebp - 0x328]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x3ac]
mov edx, dword [ebp - 0x32c]
sub edx, dword [ecx + eax + 0xc]
mov eax, dword [ebp - 0x328]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x3b0]
add edx, dword [ecx + eax + 0x14]
mov dword [ebp - 0x324], edx
jmp 0x7ff64ede
cmp dword [ebp - 0x324], 0
je 0x7ff650ac
push dword [ebp - 0x324]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax + 8]
and byte [ebp - 0x34c], 0
lea eax, [ebp - 0x34c]
push eax
mov eax, dword [ebp - 0x320]
push dword [eax + 4]
mov ecx, dword [ebp + 0xc]
call fcn.7ff85327
mov eax, dword [ebp + 0xc]
cmp dword [eax + 4], 0
jne 0x7ff6503c
and dword [ebp - 0x400], 0
jmp 0x7ff6504e
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 8]
sub eax, dword [ecx + 4]
mov dword [ebp - 0x400], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x3dc], eax
push dword [ebp - 0x400]
push dword [ebp - 0x3dc]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x188]
call dword [eax]
push dword [ebp - 0x140]
call dword [0x7ff96188]
mov byte [ebp - 0x350], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x13c]
call fcn.7ff67225
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.7ff5d5cb
mov al, byte [ebp - 0x350]
jmp 0x7ff650ef
jmp 0x7ff64e4b
jmp 0x7ff64dc5
jmp 0x7ff64d45
push dword [ebp - 0x140]
call dword [0x7ff96188]
and byte [ebp - 0x354], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x13c]
call fcn.7ff67225
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.7ff5d5cb
mov al, byte [ebp - 0x354]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
leave
ret