Function at 0x14001ce70
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x618
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x580], xmm13
movdqa xmmword [rbp + 0x570], xmm12
movdqa xmmword [rbp + 0x560], xmm11
movdqa xmmword [rbp + 0x550], xmm10
movdqa xmmword [rbp + 0x540], xmm9
movdqa xmmword [rbp + 0x530], xmm8
movdqa xmmword [rbp + 0x520], xmm7
movdqa xmmword [rbp + 0x510], xmm6
mov qword [rbp + 0x508], 0xfffffffffffffffe
mov qword [rbp + 0x4f8], r8
mov qword [rbp + 0x4e8], rdx
mov qword [rbp + 0x318], rcx
movdqu xmm0, xmmword [rbp + 0x608]
mov rax, qword [rbp + 0x600]
mov qword [rbp + 0x160], r9
mov qword [rbp + 0x168], rax
movdqu xmmword [rbp + 0x150], xmm0
mov dword [rbp + 0x390], 7
mov dword [rbp + 0x390], 8
mov dword [rbp + 0x390], 9
mov dword [rbp + 0x390], 0xa
mov dword [rbp + 0x390], 0xb
mov dword [rbp + 0x390], 0xc
mov dword [rbp + 0x390], 0xd
mov dword [rbp + 0x390], 0xe
mov dword [rbp + 0x390], 0xf
mov dword [rbp + 0x390], 0x10
mov dword [rbp + 0x390], 0x11
mov dword [rbp + 0x390], 0x12
mov dword [rbp + 0x390], 0x13
mov dword [rbp + 0x390], 0x14
mov dword [rbp + 0x390], 0x15
mov dword [rbp + 0x390], 0x16
mov dword [rbp + 0x390], 0x17
mov dword [rbp + 0x390], 0x18
mov dword [rbp + 0x390], 0x19
mov dword [rbp + 0x390], 0x1a
mov dword [rbp + 0x390], 0x1b
mov dword [rbp + 0x390], 0x1c
mov dword [rbp + 0x390], 0x1d
mov dword [rbp + 0x390], 0x1e
mov dword [rbp + 0x390], 0x1f
mov dword [rbp + 0x390], 0x20
mov dword [rbp + 0x390], 0x21
mov dword [rbp + 0x390], 0x22
mov dword [rbp + 0x390], 0x23
mov dword [rbp + 0x390], 0x24
mov dword [rbp + 0x390], 0x25
mov dword [rbp + 0x390], 0x26
mov dword [rbp + 0x390], 0x27
mov dword [rbp + 0x390], 0x28
mov dword [rbp + 0x390], 0x29
mov dword [rbp + 0x390], 0x2a
mov dword [rbp + 0x390], 0x2b
mov dword [rbp + 0x390], 0x2c
mov dword [rbp + 0x390], 0x2d
mov dword [rbp + 0x390], 0x2e
mov dword [rbp + 0x390], 0x2f
mov dword [rbp + 0x390], 0x30
mov dword [rbp + 0x390], 0x31
mov dword [rbp + 0x390], 0x32
mov dword [rbp + 0x390], 0x33
mov dword [rbp + 0x390], 0x34
mov dword [rbp + 0x390], 0x35
mov dword [rbp + 0x390], 0x36
mov dword [rbp + 0x390], 0x37
mov dword [rbp + 0x390], 0x38
mov dword [rbp + 0x390], 0x39
mov dword [rbp + 0x390], 0x3a
mov dword [rbp + 0x390], 0x3b
mov dword [rbp + 0x390], 0x3c
mov dword [rbp + 0x390], 0x3d
mov dword [rbp + 0x390], 0x3e
mov dword [rbp + 0x390], 0x3f
mov dword [rbp + 0x390], 0x40
mov dword [rbp + 0x390], 0x41
mov dword [rbp + 0x390], 0x42
mov dword [rbp + 0x390], 0x43
mov dword [rbp + 0x390], 0x44
mov dword [rbp + 0x390], 0x45
mov dword [rbp + 0x390], 0x46
mov dword [rbp + 0x390], 0x47
mov dword [rbp + 0x390], 0x48
mov dword [rbp + 0x390], 0x49
mov dword [rbp + 0x390], 0x4a
mov dword [rbp + 0x390], 0x4b
mov dword [rbp + 0x390], 0x4c
mov dword [rbp + 0x390], 0x4d
mov dword [rbp + 0x390], 0x4e
mov dword [rbp + 0x390], 0x4f
mov dword [rbp + 0x390], 0x50
mov dword [rbp + 0x390], 0x51
mov dword [rbp + 0x390], 0x52
mov dword [rbp + 0x390], 0x53
mov dword [rbp + 0x390], 0x54
mov dword [rbp + 0x390], 0x55
mov dword [rbp + 0x390], 0x56
mov dword [rbp + 0x390], 0x57
mov dword [rbp + 0x390], 0x58
mov dword [rbp + 0x390], 0x59
mov dword [rbp + 0x390], 0x5a
mov dword [rbp + 0x390], 0x5b
mov dword [rbp + 0x390], 0x5c
mov dword [rbp + 0x390], 0x5d
mov dword [rbp + 0x390], 0x5e
mov dword [rbp + 0x390], 0x5f
mov dword [rbp + 0x390], 0x60
mov dword [rbp + 0x390], 0x61
mov dword [rbp + 0x390], 0x62
mov dword [rbp + 0x390], 0x63
mov dword [rbp + 0x390], 0x64
mov dword [rbp + 0x390], 0x65
mov dword [rbp + 0x390], 0xa
mov dword [rbp + 0x390], 0xd
mov dword [rbp + 0x390], 0x10
mov dword [rbp + 0x390], 0x13
mov dword [rbp + 0x390], 0x16
mov dword [rbp + 0x390], 0x19
mov dword [rbp + 0x390], 0x1c
mov dword [rbp + 0x390], 0x1f
mov dword [rbp + 0x390], 0x22
mov dword [rbp + 0x390], 0x25
mov dword [rbp + 0x390], 0x28
mov dword [rbp + 0x390], 0x2b
mov dword [rbp + 0x390], 0x2e
mov dword [rbp + 0x390], 0x31
mov dword [rbp + 0x390], 0x34
mov dword [rbp + 0x390], 0x37
mov dword [rbp + 0x390], 0x3a
mov dword [rbp + 0x390], 0x3d
mov dword [rbp + 0x390], 0x40
mov dword [rbp + 0x390], 0x43
mov dword [rbp + 0x390], 0x46
mov dword [rbp + 0x390], 0x49
mov dword [rbp + 0x390], 0x4c
mov dword [rbp + 0x390], 0x4f
mov dword [rbp + 0x390], 0x52
mov dword [rbp + 0x390], 0x55
mov dword [rbp + 0x390], 0x58
mov dword [rbp + 0x390], 0x5b
mov dword [rbp + 0x390], 0x5e
mov dword [rbp + 0x390], 0x61
mov dword [rbp + 0x390], 0x64
mov dword [rbp + 0x390], 0x67
lea rdx, [0x1402786ae]
lea rcx, [rbp + 0x390]
mov r8d, 0x86c0
call fcn.14018f1e0
cmp qword [rbp + 0x390], 0
jne 0x14001e58a
mov rax, qword [rbp + 0x398]
mov qword [rbp + 0x280], rax
mov rax, qword [rbp + 0x3a0]
mov qword [rbp + 0x288], rax
lea rdx, str.7340a802c7a311d094ea908fd5655f3101b5ba398f244e0fad873bcfc60bf18bad898f7fb09963ee5a2d181ec923350815737ab8bd10f47f2a4f50d96af649592adf6be6c8acd3e5f29f4ef112a6e3a54311941183dd4ebbb88d80697c385bbf13210def71d0b6f13a1bed08b4d2a55de7af2a026d9b9e65a79b27147a89f92fa45d86727b6d4cb8067ab8aeaafb6aff946d50bcb4df37682f8f97bfc819c36f5d5f4c667e8aea3abffb6f1c84e981e2bbb108c23eddaddbc9a7a682a6794912f91a241812b2aa43d36296ed4d1ac4a20d0612d3e85f1161d00fcbac0a68df2e2fbfcfb1d95b27360c6bb811fe8c353c8ca4f5f98a651b786ebed11f835e913ed9af2be71e77d39ba090db830647f6717b10e5952bed209b5399d602502177d2ed5cc336a0c06e0d3342eb67317b90c7806c51b2af8b8805b59f819eb3c1f51a55a6361ae9dd9e36a0d7baa511f6b571a60b1302372dc81734503d456c40531a77d60a873aea61c219785c0cd2a1c02de3726574f4011e4cd36253c26c35351033b4a9087ba0781a0b71d5a9cd19a9a182b91714d460dd7fe5430ce8cdd825f35c690e8a8401bd62f52a9eb507a45b0959afa01d8ae5d4747657b94d02385b0d33c46d2d62e758238b5f212813fed5816753acf83fbc74397585712dd54d284a4ba74257904d6c81c57f604d89295a42e1d33977d7ae27df5b7cdf0b0aa1ad030ea02277f9d93d31b1b0fc7fb72296200802571120979bed83648b634720282ff49f71264b7879ad98d49e614255d09fb7990bd92ffff9b50510ada3094b2bf7372382a82149744ceae38423abad309ec2ed547d2f0e3a8778b7a53cbbe20caed0820bceecadaad8577b7caffcdf7e886052cc9f049c8cb72dfcbd2edcfd16f8a4eb9ec1ca5ba6c03edb4ff81fa3512f10b09c091b03e4658f6b06873c5c8463a45a4f1b5f208d2c0a0e1f0c45ccc5fe0607582d3b49ec672aeeda949c2a05d47450973249ce37081ec0ab59645365ed17fc289c22a80cb5a1a2c7994ce94ed4a2e39f10eaa635e8a4e494005070f608e9e7681c686fbe8f5bc0b566be6766cd611d3aa345140d37d5fc5ab36cda46ac027ab99903eb6050c4038fca3c9ee8880fd8e6b51145bb942b0660c5bf165ecf3ca5a1b1314ba55805336a26c6a74426332077e58be3111bcf33b391426f2ba25672e5a1ce5c0f1e523edcbd99e2944ab9dce75c543c7b014edf3b3bf19d120bf376704f359ae480be29a1086e35d7563cc127319fff16a98f17558e37b1b59aef61a6174cdeea6cb3d380c8b0388f2e99a2a7beefefe8fa916b3fc70c0f4f40721c108a93d5763e1b82adc1f4af09879aeabf7a4be4daaa7b4c4c7fd17cfe12792ba68d9ca82de38b3e70ee1e296bafbbe81544fd5e2f9cb29060ccce664012f072a2421f93a8f11ebb14dbbd2b3c806b02a2bdcb48c65ceeccb7d862f3e707905e62d607629de5c3743cc04a5751eaa0a9d706eb3ce4e57bcead2b21cabeeb2e432c2963a1f2e34c65bd5325db0a3d8825230606ac33bb7e667b987e7a652aac2489685dc9b7a6cc29de00422518159205691f7a89abc8a316f2faea74e26e692838381ae06b2993521f9baf92121a9f8d121b29caa0e34eace99f07194c2218428f8996368b7022f2e1d22282c8c39bfb6f5a20a48bfba5e5be208dee7a3a9543e3ebe488ec52b625f53ae594fb27758eeff910bae7b0fd95cedb5120a1d5f48c9bf701183ffcdd19d78c77cb12e72dd449bf848a2afcf8b1e5f8226bad2616b0b06e6f7637946093b929416ec73ca06839071657a95f34abf077b8b93388702f013e02188335cfdba969d6d046228ba004c44a0a827590c00f7d99cb100dfe7f61360dcb96f45411eb52b57181a4f84278288b4270bf2774a0fd0198ebb7ef58e28765422f7c1ce6344d1a2c3cdd1d706f87ab970c50d808f9f6000450afeff4b9ca03d6b49b8c908484e7c43438af6064e24be922551f6fd1b0234f09613a1988806c001f6055a32d3829a211827bda3aaa993bfb9d944279ed6b388c89744de1f85008154468dc543151cbeabf6fbc3f1d65dc96c397395763ebe03eefe0e4aa1bc47ae0721f58e2869daa21777faed41621b1432424a5002428af8bc66fb09b783e90b2caf29a971067e3d83400de5cf86daaf53a199856560bf19a5ef345c14640502121a26e35340b0c8b351893fa111a4623f93f33f6baa9df80f86a9ab8d33927ff18f3abf8d2ea4c59420b8c25b8d6932d505fe4b3b83042779188bda474ee2bd76fc99466a1b3325a2f2edcf3f9254fdd3ec69e7e32416fd3682ab732711e7988ba604b0e8d9f082ea523020b9077b51ed32c143e08c7d3c3f7b59d373bedc62d2d67bb47cf3c23e98cf097fc1f5d180523778148eb74a0a58c0015c43a9806829d9552d7e1721b16c88049a1d0fb657749fa836841e35905fa69d06534837dfccf45fcd545f71f387161759b027b2a94e087b264a279187738b18d0072923668ee7436798d13f48e5fad39e6368f26707144bfd24287df380ca396ba70d8d811d38c4b4d7f33ff2737bdc855708adcfc6d5feeba5cff4173ba959b1be955c357f945b9b3930306328c6e17c2c34a9b964ab6dc34bbe12eda2b7a5485102b46d9d546e2cb06149d9802a1e99166e90e514b0245c7b35c20985a56918467badbcdc27b3de3999118e8e3e52b8b90eff2aee3494ce6b2045d447e7a168c08fd738b445f4652fe262aa8e33a4b5361fc442e7ada3e0ab5f384f2f7036168e4c65fce735c741a0ec09d60163fb95e638d2210731f3f1510483b145bfe208670f84808e15e7b70e189712ff9ed39e4472cc354bba955a93608a6ac3373790f97d9ed4a6ed9e10074a22cf001
lea rcx, [rbp + 0x390]
mov r8d, 0x7d20
call fcn.14018f1e0
cmp qword [rbp + 0x390], 0
jne 0x14001e59e
mov rax, qword [rbp + 0x398]
mov qword [rbp + 0x290], rax
mov rax, qword [rbp + 0x3a0]
mov qword [rbp + 0x298], rax
lea rdx, [0x140288ac0]
lea rcx, [rbp + 0x2f8]
mov r8d, 0x21
call fcn.140150bb0
lea rcx, [rbp + 0x390]
call fcn.140150360
movabs rax, 0x8000000000000000
cmp qword [rbp + 0x390], rax
je 0x14001e5d1
lea rcx, [rbp - 0x50]
lea rdx, [rbp + 0x390]
mov r8d, 0x140
call fcn.140263720
lea rdx, [0x140288b00]
lea rcx, [rbp + 0x2e0]
mov r8d, 0x17
call fcn.140150bb0
mov rax, qword [0x140318080]
cmp rax, 2
je 0x14001d519
lea rcx, [section..data]
mov rdx, rcx
call fcn.140266b60
lea rsi, [0x140318008]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x14031b7c8]
mov rax, qword [rax]
shl rax, 1
test rax, rax
je 0x14001df67
call fcn.140272c00
xor al, 1
mov dword [rbp + 0x4dc], eax
movzx eax, byte [0x140318010]
test al, al
jne 0x14001df7e
lea rax, [0x140318030]
mov qword [rbp + 0x310], rax
lea rcx, [rbp + 0x390]
mov rdx, qword [rbp + 0x4e8]
mov r8, qword [rbp + 0x4f8]
call fcn.14017e460
movdqu xmm0, xmmword [rbp + 0x390]
movdqu xmm1, xmmword [rbp + 0x3a0]
movdqa xmmword [rbp + 0x2b0], xmm1
movdqa xmmword [rbp + 0x2a0], xmm0
lea rdx, [0x140288b30]
lea rcx, [rbp + 0x218]
mov r8d, 8
call fcn.140150bb0
mov rdx, qword [rbp + 0x220]
mov r8, qword [rbp + 0x228]
lea rcx, [rbp + 0x2a0]
mov qword [rbp + 0x4f0], rdx
call fcn.1401768e0
mov rdx, qword [rbp + 0x218]
test rdx, rdx
je 0x14001d5fb
mov r8d, 1
mov rcx, qword [rbp + 0x4f0]
call fcn.140001700
mov rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x20]
lea rcx, [rbp + 0x390]
mov qword [rbp + 0x4f0], rdx
mov qword [rbp + 0x4e0], r8
call fcn.140170c10
cmp qword [rbp + 0x390], 0
jne 0x14001e5f0
mov rsi, qword [rbp + 0x398]
mov rdi, qword [rbp + 0x3a0]
mov rdx, qword [rbp + 0x2a8]
mov r8, qword [rbp + 0x2b0]
lea rcx, [rbp + 0x390]
call fcn.140170c10
cmp qword [rbp + 0x390], 0
jne 0x14001e60d
mov rax, qword [rbp + 0x398]
mov rcx, qword [rbp + 0x3a0]
mov qword [rbp + 0x390], rsi
mov qword [rbp + 0x398], rdi
mov qword [rbp + 0x3a0], rax
mov qword [rbp + 0x3a8], rcx
mov qword [rsp + 0x20], 0
lea r9, fcn.1400010a0
lea rcx, [rbp + 0x340]
lea rdx, [rbp + 0x390]
mov r8d, 2
call fcn.140016600
mov rax, qword [rbp + 0x340]
mov qword [rbp + 0x320], rax
mov rax, qword [rbp + 0x348]
mov qword [rbp + 0x328], rax
mov rsi, qword [rbp + 0x350]
mov byte [rbp + 0x507], 1
lea rdx, [0x140288b98]
lea rcx, [rbp + 0x268]
mov r8d, 0x11
call fcn.140150bb0
mov rax, qword [rbp + 0x320]
mov qword [rbp + 0x390], rax
mov rax, qword [rbp + 0x328]
mov qword [rbp + 0x398], rax
mov qword [rbp + 0x3a0], rsi
lea rcx, [rbp + 0x340]
lea rdx, [rbp + 0x390]
call fcn.140015070
mov rax, qword [rbp + 0x270]
mov qword [rbp + 0x330], rax
cmp dword [rbp + 0x340], 2
jne 0x14001e62a
mov rax, qword [rbp + 0x358]
mov qword [rbp + 0x240], rax
movdqu xmm0, xmmword [rbp + 0x348]
movdqa xmmword [rbp + 0x230], xmm0
lea rdx, str.AXWGRP
lea rcx, [rbp + 0x250]
mov r8d, 0x24
call fcn.140150bb0
lea rdx, [0x140288bec]
lea rcx, [rbp + 0x138]
mov r8d, 0x1e
call fcn.140150bb0
mov rbx, qword [rbp + 0x240]
lea rcx, [rbp + 0x390]
lea r8, [rbp + 0x138]
mov rdx, rbx
call fcn.14001cbf0
cmp dword [rbp + 0x390], 2
je 0x14001d7eb
mov rdx, qword [rbp + 0x3a0]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x14001d7eb
test rdx, rdx
je 0x14001d7eb
mov rcx, qword [rbp + 0x3a8]
mov r8d, 1
call fcn.140001700
lea rdx, [0x140288c0a]
lea rcx, [rbp + 0x120]
mov r8d, 0x19
call fcn.140150bb0
lea rcx, [rbp + 0x390]
lea r8, [rbp + 0x120]
mov rdx, rbx
call fcn.14001cbf0
cmp dword [rbp + 0x390], 2
je 0x14001d850
mov rdx, qword [rbp + 0x3a0]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x14001d850
test rdx, rdx
je 0x14001d850
mov rcx, qword [rbp + 0x3a8]
mov r8d, 1
call fcn.140001700
lea rdx, [0x140288c23]
lea r13, [rbp + 0x200]
mov r8d, 0x1ed
mov rcx, r13
call fcn.140150bb0
lea rdx, [0x140288e10]
lea r15, [rbp + 0x1e8]
mov r8d, 4
mov rcx, r15
call fcn.140150bb0
lea rdx, [0x140288e14]
lea rdi, [rbp + 0x1d0]
mov r8d, 0x14
mov rcx, rdi
call fcn.140150bb0
lea rdx, [0x140288e28]
lea r12, [rbp + 0x1b8]
mov r8d, 0x14
mov rcx, r12
call fcn.140150bb0
lea rdx, [0x140288e3c]
lea r14, [rbp + 0x1a0]
mov r8d, 0x40
mov rcx, r14
call fcn.140150bb0
lea rdx, [0x140288e7c]
lea rsi, [rbp + 0x188]
mov r8d, 0x36
mov rcx, rsi
call fcn.140150bb0
mov qword [rbp + 0x390], r13
lea rax, [0x14001caf0]
mov qword [rbp + 0x398], rax
lea rcx, [rbp + 0x160]
mov qword [rbp + 0x3a0], rcx
lea rdx, [0x1400114b0]
mov qword [rbp + 0x3a8], rdx
mov qword [rbp + 0x3b0], r15
mov qword [rbp + 0x3b8], rax
mov qword [rbp + 0x3c0], rcx
mov qword [rbp + 0x3c8], rdx
mov qword [rbp + 0x3d0], rdi
mov qword [rbp + 0x3d8], rax
lea rcx, [rbp + 0x150]
mov qword [rbp + 0x3e0], rcx
mov qword [rbp + 0x3e8], rdx
mov qword [rbp + 0x3f0], r12
mov qword [rbp + 0x3f8], rax
lea rcx, [rbp + 0x310]
mov qword [rbp + 0x400], rcx
lea rcx, [0x14000dc80]
mov qword [rbp + 0x408], rcx
mov qword [rbp + 0x410], r14
mov qword [rbp + 0x418], rax
lea rcx, [rbp + 0x250]
mov qword [rbp + 0x420], rcx
mov qword [rbp + 0x428], rax
mov qword [rbp + 0x430], rsi
mov qword [rbp + 0x438], rax
lea rax, [0x140288eb8]
mov qword [rbp + 0x340], rax
mov qword [rbp + 0x348], 0xb
mov qword [rbp + 0x360], 0
lea rax, [rbp + 0x390]
mov qword [rbp + 0x350], rax
mov qword [rbp + 0x358], 0xb
lea rcx, [rbp + 0x378]
lea rdx, [rbp + 0x340]
call fcn.1401894e0
mov rax, qword [rbp + 0x388]
mov qword [rbp + 0x350], rax
movdqu xmm0, xmmword [rbp + 0x378]
movdqa xmmword [rbp + 0x340], xmm0
lea rcx, [rbp + 0x390]
lea r8, [rbp + 0x340]
mov rdx, rbx
call fcn.14001cbf0
cmp dword [rbp + 0x390], 2
je 0x14001da7d
mov rdx, qword [rbp + 0x3a0]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x14001da7d
test rdx, rdx
je 0x14001da7d
mov rcx, qword [rbp + 0x3a8]
mov r8d, 1
call fcn.140001700
lea rdx, str.__62
lea rcx, [rbp + 0x108]
mov r8d, 0x3c
call fcn.140150bb0
lea rcx, [rbp + 0x390]
lea r8, [rbp + 0x108]
mov rdx, rbx
call fcn.14001cbf0
cmp dword [rbp + 0x390], 2
je 0x14001dae2
mov rdx, qword [rbp + 0x3a0]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x14001dae2
test rdx, rdx
je 0x14001dae2
mov rcx, qword [rbp + 0x3a8]
mov r8d, 1
call fcn.140001700
lea rdx, [0x140288fa4]
lea rcx, [rbp + 0xf0]
mov r8d, 0x54
call fcn.140150bb0
lea rcx, [rbp + 0x390]
lea r8, [rbp + 0xf0]
mov rdx, rbx
call fcn.14001cbf0
cmp dword [rbp + 0x390], 2
je 0x14001db47
mov rdx, qword [rbp + 0x3a0]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x14001db47
test rdx, rdx
je 0x14001db47
mov rcx, qword [rbp + 0x3a8]
mov r8d, 1
call fcn.140001700
lea rcx, [rbp + 0x390]
mov rdx, qword [rbp + 0x4e8]
mov r8, qword [rbp + 0x4f8]
call fcn.14017e460
movdqu xmm0, xmmword [rbp + 0x390]
movdqu xmm1, xmmword [rbp + 0x3a0]
movdqa xmmword [rbp + 0x350], xmm1
movdqa xmmword [rbp + 0x340], xmm0
lea rdx, [0x140288ff8]
lea rcx, [rbp + 0x170]
mov r8d, 0x12
call fcn.140150bb0
mov rdx, qword [rbp + 0x178]
mov r8, qword [rbp + 0x180]
lea rcx, [rbp + 0x340]
mov qword [rbp + 0x4f8], rdx
call fcn.1401768e0
mov rdx, qword [rbp + 0x170]
test rdx, rdx
je 0x14001dbd9
mov r8d, 1
mov rcx, qword [rbp + 0x4f8]
call fcn.140001700
lea rcx, [rbp + 0x390]
mov rdx, qword [rbp + 0x4f0]
mov r8, qword [rbp + 0x4e0]
call fcn.140170c10
cmp qword [rbp + 0x390], 0
jne 0x14001e68a
mov rsi, qword [rbp + 0x398]
mov rdi, qword [rbp + 0x3a0]
mov rdx, qword [rbp + 0x348]
mov r8, qword [rbp + 0x350]
lea rcx, [rbp + 0x390]
call fcn.140170c10
cmp qword [rbp + 0x390], 0
jne 0x14001e6a7
mov rax, qword [rbp + 0x398]
mov rcx, qword [rbp + 0x3a0]
mov qword [rbp + 0x390], rsi
mov qword [rbp + 0x398], rdi
mov qword [rbp + 0x3a0], rax
mov qword [rbp + 0x3a8], rcx
mov qword [rsp + 0x20], 0
lea r9, fcn.1400010a0
lea rcx, [rbp + 0x378]
lea rdx, [rbp + 0x390]
mov r8d, 2
call fcn.140016600
mov rax, qword [rbp + 0x378]
mov qword [rbp + 0x4f8], rax
mov rcx, qword [rbp + 0x380]
mov rdx, qword [rbp + 0x388]
mov qword [rbp + 0x4e8], rcx
call fcn.14017c250
mov rsi, rax
mov rdx, qword [rbp + 0x4f8]
test rdx, rdx
je 0x14001dcd3
mov r8d, 1
mov rcx, qword [rbp + 0x4e8]
call fcn.140001700
mov qword [rbp + 0x390], rsi
test rsi, rsi
je 0x14001dceb
lea rcx, [rbp + 0x390]
call fcn.14000aac0
lea rcx, [rbp + 0x390]
mov rdx, qword [rbp + 0x4f0]
mov r8, qword [rbp + 0x4e0]
call fcn.140170c10
cmp qword [rbp + 0x390], 0
jne 0x14001e6c4
mov rsi, qword [rbp + 0x398]
mov rdi, qword [rbp + 0x3a0]
mov rdx, qword [rbp + 0x348]
mov r8, qword [rbp + 0x350]
lea rcx, [rbp + 0x390]
call fcn.140170c10
cmp qword [rbp + 0x390], 0
jne 0x14001e6e1
mov rax, qword [rbp + 0x398]
mov rcx, qword [rbp + 0x3a0]
mov qword [rbp + 0x390], rsi
mov qword [rbp + 0x398], rdi
mov qword [rbp + 0x3a0], rax
mov qword [rbp + 0x3a8], rcx
mov qword [rsp + 0x20], 0
lea r9, fcn.1400010a0
lea rcx, [rbp + 0x378]
lea rdx, [rbp + 0x390]
mov r8d, 2
call fcn.140016600
mov rax, qword [rbp + 0x378]
mov qword [rbp + 0x4f8], rax
mov rdi, qword [rbp + 0x380]
mov rsi, qword [rbp + 0x388]
mov byte [rbp + 0x506], 1
lea rdx, [0x140289070]
lea rcx, [rbp + 0x2c8]
mov r8d, 0x15
mov qword [rbp + 0x4e8], rdi
call fcn.140150bb0
mov dword [rbp + 0x390], 0
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x398], xmm0
mov dword [rbp + 0x3a8], 7
mov qword [rbp + 0x3ac], 0
mov word [rbp + 0x3b4], 0
mov byte [rbp + 0x3b1], 1
mov byte [rbp + 0x3b4], 1
mov byte [rbp + 0x3b3], 1
lea rcx, [rbp + 0x390]
mov rdx, rdi
mov r8, rsi
call fcn.140170c70
mov rdi, rax
mov rsi, rdx
mov rdx, qword [rbp + 0x4f8]
test rdx, rdx
mov rcx, qword [rbp + 0x4e8]
je 0x14001de5e
mov r8d, 1
call fcn.140001700
test rdi, rdi
jne 0x14001e6fe
mov qword [rbp + 0x338], rsi
mov rax, qword [rbp + 0x310]
mov r12, qword [rax + 8]
mov rdi, qword [rax + 0x10]
cmp rdi, 7
jb 0x14001dec7
cmp rdi, 0x14
ja 0x14001dfc3
mov eax, 0x676f6f67
nop word cs:[rax + rax]
cmp rdi, 6
jb 0x14001deea
mov ecx, dword [r12]
xor ecx, eax
movzx edx, word [r12 + 4]
xor edx, 0x656c
inc r12
dec rdi
or edx, ecx
jne 0x14001dea0
jmp 0x14001e219
cmp rdi, 6
jne 0x14001deea
mov eax, 0x676f6f67
xor eax, dword [r12]
movzx ecx, word [r12 + 4]
xor ecx, 0x656c
or ecx, eax
je 0x14001e219
lea rcx, [rbp + 0x390]
mov rdx, qword [rbp + 0x280]
mov r8, qword [rbp + 0x288]
call fcn.140004380
mov rcx, qword [rbp + 0x390]
movabs rax, 0x8000000000000000
mov qword [rbp + 0x4f0], rcx
cmp rcx, rax
je 0x14001e734
mov rdx, qword [rbp + 0x398]
mov r8, qword [rbp + 0x3a0]
lea rcx, [rbp + 0x338]
mov qword [rbp + 0x4e0], rdx
call fcn.140008260
mov qword [rbp + 0x390], rax
test rax, rax
je 0x14001e28d
lea rcx, [rbp + 0x390]
call fcn.14000aac0
jmp 0x14001e28d
xor eax, eax
mov dword [rbp + 0x4dc], eax
movzx eax, byte [0x140318010]
test al, al
je 0x14001d55b
mov rcx, qword [rbp + 0x2e8]
mov rdx, qword [rbp + 0x2f0]
mov qword [rbp + 0x390], rsi
mov eax, dword [rbp + 0x4dc]
mov byte [rbp + 0x398], al
lea rax, [0x140288b18]
mov qword [rsp + 0x20], rax
lea r9, fcn.1400010a0
lea r8, [rbp + 0x390]
call fcn.140273cd0
jmp 0x14001e7aa
mov qword [rbp + 0x390], r12
mov qword [rbp + 0x398], rdi
lea rax, [0x1402890a1]
mov qword [rbp + 0x3a0], rax
mov qword [rbp + 0x3a8], 5
cmp rdi, 0x46
jb 0x14001e159
xor r15d, r15d
movdqa xmm6, xmmword [str.ggggggggggggggggeeeeeeeeeeeeeeee]
movdqa xmm7, xmmword [0x1402784b0]
lea r14, [rbp + 0x390]
xor ebx, ebx
movdqu xmm0, xmmword [r12 + r15]
movdqu xmm1, xmmword [r12 + r15 + 5]
movdqu xmm12, xmmword [r12 + r15 + 0x10]
movdqu xmm13, xmmword [r12 + r15 + 0x15]
pcmpeqb xmm0, xmm6
pcmpeqb xmm1, xmm7
pand xmm1, xmm0
pmovmskb r8d, xmm1
movdqu xmm10, xmmword [r12 + r15 + 0x20]
movdqu xmm11, xmmword [r12 + r15 + 0x25]
movdqu xmm8, xmmword [r12 + r15 + 0x30]
movdqu xmm9, xmmword [r12 + r15 + 0x35]
test r8d, r8d
jne 0x14001e0d1
pcmpeqb xmm12, xmm6
pcmpeqb xmm13, xmm7
pand xmm13, xmm12
pmovmskb r8d, xmm13
test r8w, r8w
jne 0x14001e0ee
pcmpeqb xmm10, xmm6
pcmpeqb xmm11, xmm7
pand xmm11, xmm10
pmovmskb r8d, xmm11
test r8w, r8w
jne 0x14001e10c
pcmpeqb xmm8, xmm6
pcmpeqb xmm9, xmm7
pand xmm9, xmm8
pmovmskb r8d, xmm9
test r8w, r8w
jne 0x14001e12a
lea rsi, [r15 + 0x40]
add r15, 0x85
cmp r15, rdi
jae 0x14001e15d
mov eax, ebx
mov r15, rsi
and al, 1
je 0x14001e010
jmp 0x14001e15d
mov r9d, ebx
and r9b, 1
mov rcx, r14
mov rdx, r15
call fcn.1402680e0
or al, bl
and al, 1
mov ebx, eax
jmp 0x14001e05d
lea rdx, [r15 + 0x10]
mov r9d, ebx
and r9b, 1
mov rcx, r14
call fcn.1402680e0
or al, bl
and al, 1
mov ebx, eax
jmp 0x14001e077
lea rdx, [r15 + 0x20]
mov r9d, ebx
and r9b, 1
mov rcx, r14
call fcn.1402680e0
or al, bl
and al, 1
mov ebx, eax
jmp 0x14001e091
lea rdx, [r15 + 0x30]
mov r9d, ebx
and r9b, 1
mov rcx, r14
call fcn.1402680e0
or al, bl
and al, 1
mov ebx, eax
lea rsi, [r15 + 0x40]
add r15, 0x85
cmp r15, rdi
jb 0x14001e0bf
jmp 0x14001e15d
xor ebx, ebx
xor esi, esi
lea rax, [rsi + 0x15]
mov r9d, ebx
and r9b, 1
cmp rax, rdi
jae 0x14001e1e0
test r9b, r9b
jne 0x14001e1e0
movdqa xmm6, xmmword [str.ggggggggggggggggeeeeeeeeeeeeeeee]
movdqa xmm7, xmmword [0x1402784b0]
lea r14, [rbp + 0x390]
nop dword [rax]
movdqu xmm0, xmmword [r12 + rsi]
pcmpeqb xmm0, xmm6
movdqu xmm1, xmmword [r12 + rsi + 5]
pcmpeqb xmm1, xmm7
pand xmm1, xmm0
pmovmskb r8d, xmm1
test r8d, r8d
jne 0x14001e1ce
lea rax, [rsi + 0x25]
mov r9d, ebx
and r9b, 1
cmp rax, rdi
jae 0x14001e1e0
add rsi, 0x10
test r9b, r9b
je 0x14001e190
jmp 0x14001e1e0
mov rcx, r14
mov rdx, rsi
xor r9d, r9d
call fcn.1402680e0
mov ebx, eax
jmp 0x14001e1b3
movdqu xmm0, xmmword [r12 + rdi - 0x15]
movdqu xmm1, xmmword [r12 + rdi - 0x10]
pcmpeqb xmm0, xmmword [str.ggggggggggggggggeeeeeeeeeeeeeeee]
pcmpeqb xmm1, xmmword [0x1402784b0]
pand xmm1, xmm0
pmovmskb r8d, xmm1
test r8d, r8d
jne 0x14001e55d
test bl, 1
je 0x14001deea
lea rcx, [rbp + 0x390]
mov rdx, qword [rbp + 0x290]
mov r8, qword [rbp + 0x298]
call fcn.140004380
mov rcx, qword [rbp + 0x390]
movabs rax, 0x8000000000000000
mov qword [rbp + 0x4f0], rcx
cmp rcx, rax
je 0x14001e76f
mov rdx, qword [rbp + 0x398]
mov r8, qword [rbp + 0x3a0]
lea rcx, [rbp + 0x338]
mov qword [rbp + 0x4e0], rdx
call fcn.140008260
mov qword [rbp + 0x390], rax
test rax, rax
je 0x14001e28d
lea rcx, [rbp + 0x390]
call fcn.14000aac0
mov rdx, qword [rbp + 0x4f0]
test rdx, rdx
je 0x14001e2ab
mov r8d, 1
mov rcx, qword [rbp + 0x4e0]
call fcn.140001700
lea rdx, [0x1402890d8]
lea rcx, [rbp + 0x378]
mov r8d, 0x11
call fcn.140150bb0
lea rcx, [rbp + 0x390]
lea rdx, [rbp + 0x378]
call fcn.14018a4a0
mov rax, qword [rbp + 0x3a0]
mov rcx, qword [rbp + 0x318]
mov qword [rcx + 0x10], rax
movdqu xmm0, xmmword [rbp + 0x390]
movdqu xmmword [rcx], xmm0
mov rdx, qword [rbp + 0x378]
test rdx, rdx
je 0x14001e313
mov rcx, qword [rbp + 0x380]
mov r8d, 1
call fcn.140001700
mov rcx, qword [rbp + 0x338]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rdx, qword [rbp + 0x2c8]
test rdx, rdx
je 0x14001e33e
mov rcx, qword [rbp + 0x2d0]
mov r8d, 1
call fcn.140001700
mov rdx, qword [rbp + 0x340]
test rdx, rdx
je 0x14001e35c
mov rcx, qword [rbp + 0x348]
mov r8d, 1
call fcn.140001700
mov rdx, qword [rbp + 0x188]
test rdx, rdx
je 0x14001e37a
mov rcx, qword [rbp + 0x190]
mov r8d, 1
call fcn.140001700
mov rdx, qword [rbp + 0x1a0]
test rdx, rdx
je 0x14001e398
mov rcx, qword [rbp + 0x1a8]
mov r8d, 1
call fcn.140001700
mov rdx, qword [rbp + 0x1b8]
test rdx, rdx
je 0x14001e3b6
mov rcx, qword [rbp + 0x1c0]
mov r8d, 1
call fcn.140001700
mov rdx, qword [rbp + 0x1d0]
test rdx, rdx
je 0x14001e3d4
mov rcx, qword [rbp + 0x1d8]
mov r8d, 1
call fcn.140001700
mov rdx, qword [rbp + 0x1e8]
test rdx, rdx
je 0x14001e3f2
mov rcx, qword [rbp + 0x1f0]
mov r8d, 1
call fcn.140001700
mov rdx, qword [rbp + 0x200]
test rdx, rdx
je 0x14001e410
mov rcx, qword [rbp + 0x208]
mov r8d, 1
call fcn.140001700
mov rdx, qword [rbp + 0x250]
test rdx, rdx
je 0x14001e42e
mov rcx, qword [rbp + 0x258]
mov r8d, 1
call fcn.140001700
lea rcx, [rbp + 0x230]
call fcn.14001c980
mov rdx, qword [rbp + 0x268]
test rdx, rdx
je 0x14001e458
mov r8d, 1
mov rcx, qword [rbp + 0x330]
call fcn.140001700
mov rdx, qword [rbp + 0x2a0]
test rdx, rdx
je 0x14001e476
mov rcx, qword [rbp + 0x2a8]
mov r8d, 1
call fcn.140001700
cmp byte [rbp + 0x4dc], 0
je 0x14001e52e
lea rcx, [0x140318008]
call qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov rdx, qword [rbp + 0x2e0]
test rdx, rdx
je 0x14001e4ae
mov rcx, qword [rbp + 0x2e8]
mov r8d, 1
call fcn.140001700
lea rcx, [rbp - 0x50]
call fcn.14001c830
mov rdx, qword [rbp + 0x2f8]
test rdx, rdx
je 0x14001e4d5
mov rcx, qword [rbp + 0x300]
mov r8d, 1
call fcn.140001700
mov rax, qword [rbp + 0x318]
movaps xmm6, xmmword [rbp + 0x510]
movaps xmm7, xmmword [rbp + 0x520]
movaps xmm8, xmmword [rbp + 0x530]
movaps xmm9, xmmword [rbp + 0x540]
movaps xmm10, xmmword [rbp + 0x550]
movaps xmm11, xmmword [rbp + 0x560]
movaps xmm12, xmmword [rbp + 0x570]
movaps xmm13, xmmword [rbp + 0x580]
add rsp, 0x618
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [0x14031b7c8]
mov rax, qword [rax]
shl rax, 1
test rax, rax
je 0x14001e483
call fcn.140272c00
test al, al
jne 0x14001e483
mov byte [0x140318010], 1
jmp 0x14001e483
add rdi, 0xffffffffffffffeb
test r9b, r9b
setne sil
lea rcx, [rbp + 0x390]
mov rdx, rdi
call fcn.1402680e0
mov ebx, eax
or bl, sil
test bl, 1
je 0x14001deea
jmp 0x14001e219
movups xmm0, xmmword [rbp + 0x398]
movaps xmmword [rbp - 0x50], xmm0
lea rax, [0x140280d70]
jmp 0x14001e5b0
movups xmm0, xmmword [rbp + 0x398]
movaps xmmword [rbp - 0x50], xmm0
lea rax, [0x140288aa8]
mov qword [rsp + 0x20], rax
lea rcx, [0x140278520]
lea r9, [0x140278550]
lea r8, [rbp - 0x50]
mov edx, 0x2b
call fcn.140273cd0
mov rcx, qword [rbp + 0x300]
mov rdx, qword [rbp + 0x308]
lea r8, [0x140288ae8]
call fcn.1402737c0
jmp 0x14001e7aa
lea rcx, [0x140288b38]
lea r8, [0x140288b68]
mov edx, 0x2b
call fcn.140273900
jmp 0x14001e7aa
lea rcx, [0x140288b38]
lea r8, [0x140288b80]
mov edx, 0x2b
call fcn.140273900
jmp 0x14001e7aa
mov rdx, qword [rbp + 0x278]
mov rax, qword [rbp + 0x360]
mov qword [rbp + 0x3b0], rax
movdqu xmm0, xmmword [rbp + 0x340]
movdqu xmm1, xmmword [rbp + 0x350]
movdqa xmmword [rbp + 0x3a0], xmm1
movdqa xmmword [rbp + 0x390], xmm0
lea rax, [0x140288bb0]
mov qword [rsp + 0x20], rax
lea r9, [0x1402784e0]
lea r8, [rbp + 0x390]
mov rcx, qword [rbp + 0x330]
call fcn.140273cd0
jmp 0x14001e7aa
lea rcx, [0x140288b38]
lea r8, [0x140289010]
mov edx, 0x2b
call fcn.140273900
jmp 0x14001e7aa
lea rcx, [0x140288b38]
lea r8, [0x140289028]
mov edx, 0x2b
call fcn.140273900
jmp 0x14001e7aa
lea rcx, [0x140288b38]
lea r8, [0x140289040]
mov edx, 0x2b
call fcn.140273900
jmp 0x14001e7aa
lea rcx, [0x140288b38]
lea r8, [0x140289058]
mov edx, 0x2b
call fcn.140273900
jmp 0x14001e7aa
mov rcx, qword [rbp + 0x2d0]
mov rdx, qword [rbp + 0x2d8]
mov qword [rbp + 0x390], rsi
lea rax, [0x140289088]
mov qword [rsp + 0x20], rax
lea r9, fcn.14000aac0
lea r8, [rbp + 0x390]
call fcn.140273cd0
jmp 0x14001e7aa
movups xmm0, xmmword [rbp + 0x398]
movups xmmword [rbp + 0x378], xmm0
lea rax, [0x1402890a8]
mov qword [rsp + 0x20], rax
lea rcx, [0x140278520]
lea r9, [0x140278570]
lea r8, [rbp + 0x378]
mov edx, 0x2b
call fcn.140273cd0
jmp 0x14001e7aa
movdqu xmm0, xmmword [rbp + 0x398]
movdqu xmmword [rbp + 0x378], xmm0
lea rax, [0x1402890c0]
mov qword [rsp + 0x20], rax
lea rcx, [0x140278520]
lea r9, [0x140278570]
lea r8, [rbp + 0x378]
mov edx, 0x2b
call fcn.140273cd0
ud2