Function at 0x401710
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
lea rbp, [rsp - 0x520]
sub rsp, 0x620
mov dword [rbp - 0x50], 4
mov rax, qword gs:[0x30]
mov qword [rbp + 0x48], rax
test rax, rax
je 0x402031
mov rcx, qword [rax + 0x60]
mov qword [rbp + 0x58], rcx
test rcx, rcx
je 0x402031
xor ebx, ebx
mov dword [rbp - 8], ebx
mov rax, qword [rcx + 0x18]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x402031
lea rdx, [rax + 0x20]
mov qword [rbp - 0x78], rdx
test rdx, rdx
je 0x402031
mov rdx, qword [rdx]
lea r8d, [rbx + 0x12]
mov ecx, 0x375cb84f
mov rdx, qword [rdx + 0x50]
call section..text
mov edx, 0xf963b9b9
mov dword [rbp - 0x80], eax
mov r8d, 0xf4db647d
lea rcx, [rsp + 0x40]
call fcn.00401040
mov qword [rbp + 8], rax
test rax, rax
je 0x402031
mov edx, 0x7a2d8825
mov r8d, 0x4fb6b390
mov rcx, rax
call fcn.004010d0
mov qword [rbp + 0x88], rax
test rax, rax
je 0x402031
mov rcx, qword [rbp + 8]
mov edx, 0xb6e2d6e8
mov r8d, 0xc950f6b
call fcn.004010d0
mov qword [rbp - 0x70], rax
test rax, rax
je 0x402031
mov rcx, qword [rbp + 8]
mov edx, 0x36fe7b3c
mov r8d, 0x38c2efa5
call fcn.004010d0
mov qword [rbp + 0xd8], rax
test rax, rax
je 0x402041
mov rcx, qword [rbp + 8]
mov edx, 0xd4c1b7dd
mov r8d, 0x62541e42
call fcn.004010d0
mov qword [rbp + 0x18], rax
test rax, rax
je 0x402031
mov rcx, qword [rbp + 8]
mov edx, 0x9f5015a4
mov r8d, 0xbee195e8
call fcn.004010d0
mov qword [rsp + 0x68], rax
test rax, rax
je 0x402031
mov rcx, qword [rbp + 8]
mov edx, 0x459876e6
mov r8d, 0x935097d0
call fcn.004010d0
mov qword [rbp + 0x78], rax
test rax, rax
je 0x402031
mov rcx, qword [rbp + 8]
mov edx, 0x4efbfd76
mov r8d, 0xfd368fef
call fcn.004010d0
mov qword [rbp + 0x28], rax
test rax, rax
je 0x402031
mov rax, qword [rbp - 0x78]
lea r8d, [rbx + 0x12]
mov ecx, 0x6482b38c
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x50]
call section..text
mov dword [rbp - 0x48], eax
lea r8d, [rbx + 0x12]
mov rax, qword [rbp - 0x78]
mov ecx, 0x473c4914
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x50]
call section..text
or eax, 1
mov dword [rsp + 0x20], 0xff1324a7
mov edx, 0xdca74fad
mov dword [rbp + 0x50], eax
mov r9d, 0x2380b053
lea rcx, [rsp + 0x40]
mov r8d, 0x28acde59
call fcn.00401490
lea rcx, [rsp + 0x40]
call fcn.004016d0
test eax, eax
je 0x402031
lea rcx, [rbp - 0x2c]
call qword [rbp + 0x88]
mov qword [rbp + 0x68], rax
test rax, rax
je 0x402031
mov edx, 0x43f301a8
mov dword [rsp + 0x20], 0x299a45db
mov r9d, 0xde2c8e1e
lea rcx, [rsp + 0x40]
mov r8d, 0x324b4cbb
call fcn.00401490
lea rcx, [rbp - 0x2c]
call qword [rbp + 0x88]
mov qword [rbp + 0xb8], rax
test rax, rax
je 0x402031
lea edx, [rbx + 0x71]
xor ecx, ecx
lea r9d, [rbx + 4]
mov r8d, 0x3000
call qword [rbp - 0x70]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x402031
mov rcx, qword [rbp + 0x68]
mov edx, 0xd2422fef
mov r8d, 0xa6fe13de
call fcn.004010d0
mov qword [rbp + 0xb0], rax
test rax, rax
je 0x402031
mov rcx, qword [rbp + 0x68]
mov edx, 0xef1b726c
mov r8d, 0xb051c75b
call fcn.004010d0
mov qword [rbp - 0x40], rax
test rax, rax
je 0x402031
mov rcx, qword [rbp + 0xb8]
mov edx, 0x1d265b1b
mov r8d, 0x13f3a82a
call fcn.004010d0
mov qword [rsp + 0x48], rax
test rax, rax
je 0x402031
mov qword [rsp + 0x630], rsi
lea rcx, [rsp + 0x40]
mov edx, 0xa7c391af
mov qword [rsp + 0x638], rdi
mov r9d, 0xb328f60
mov dword [rsp + 0x20], 0xe3267cf2
mov r8d, 0x3851a0dc
call fcn.00401490
mov rdi, qword [rsp + 0x60]
lea rsi, [rbp - 0x2c]
add rdi, 0x30
mov dword [rsp + 0x20], 0xca0a263e
mov ecx, 0x10
mov edx, 0x6be117e3
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x40]
mov r9d, 0xc906906
mov r8d, 0x53fb0a5
call fcn.00401490
mov rdi, qword [rsp + 0x60]
lea rsi, [rbp - 0x2c]
add rdi, 0x60
mov dword [rsp + 0x20], 0xcb8464d5
mov ecx, 0x10
mov edx, 0x972d78ae
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x40]
mov r9d, 0x2034f81d
mov r8d, 0xed735602
call fcn.00401490
mov rdi, qword [rsp + 0x60]
lea rsi, [rbp - 0x2c]
mov ecx, 0x10
mov edx, 0xc4121af
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rbp + 8]
mov r8d, 0xc4107669
call fcn.004010d0
mov qword [rbp - 0x10], rax
test rax, rax
je 0x402021
mov rcx, qword [rbp + 8]
mov edx, 0xdde6a46d
mov r8d, 0xe44d6304
call fcn.004010d0
mov qword [rbp + 0xa0], rax
test rax, rax
je 0x402021
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor r8d, r8d
lea edx, [rbx + 1]
xor ecx, ecx
call qword [rbp - 0x40]
mov qword [rbp + 0x38], rax
test rax, rax
je 0x402021
mov rcx, qword [rbp + 0x68]
mov edx, 0x48a8c2e9
mov r8d, 0xf0d83345
call fcn.004010d0
mov qword [rbp - 0x58], rax
test rax, rax
je 0x402021
mov edx, 0xa72ee4bb
mov dword [rsp + 0x20], 0x76c6523a
mov r9d, 0x61db9f90
lea rcx, [rsp + 0x40]
mov r8d, 0x533490cc
call fcn.00401490
mov rdi, qword [rsp + 0x60]
lea rsi, [rbp - 0x2c]
add rdi, 0x70
mov dword [rsp + 0x20], 0x87ddef1f
mov ecx, 0x10
mov edx, 0xbd6f4441
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x40]
mov r9d, 0x48b37e71
mov r8d, 0xadaab1b0
call fcn.00401490
mov rdi, qword [rsp + 0x60]
lea rsi, [rbp - 0x2c]
add rdi, 0x40
mov dword [rsp + 0x20], 0x92cbc372
mov ecx, 0x10
mov edx, 0xd0fc66f8
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x40]
mov r9d, 0xa95e7a86
mov r8d, 0x5d892122
call fcn.00401490
mov rdi, qword [rsp + 0x60]
lea rsi, [rbp - 0x2c]
add rdi, 0x20
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rbp + 8]
mov edx, 0x298b7706
mov r8d, 0x845f6aa9
call fcn.004010d0
mov qword [rbp + 0x20], rax
test rax, rax
je 0x402021
mov edx, 0x62c9c522
mov dword [rsp + 0x20], 0x80fd3849
mov r9d, 0x8b991499
lea rcx, [rsp + 0x40]
mov r8d, 0xe13b4e5a
call fcn.00401490
mov rdi, qword [rsp + 0x60]
lea rsi, [rbp - 0x2c]
add rdi, 0x50
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rbp + 0x68]
mov edx, 0x929c64f4
mov r8d, 0x5b2cc1b7
call fcn.004010d0
mov qword [rbp - 0x68], rax
test rax, rax
je 0x402021
mov rcx, qword [rbp + 0x68]
mov edx, 0xdf60cb35
mov r8d, 0x4958e8c
call fcn.004010d0
mov qword [rsp + 0x70], rax
test rax, rax
je 0x402021
mov edx, 0x7536bab7
mov dword [rsp + 0x20], 0x5d14e116
mov r9d, 0x4bcda897
lea rcx, [rsp + 0x40]
mov r8d, 0x4b27b38f
call fcn.00401490
mov rdi, qword [rsp + 0x60]
lea rsi, [rbp - 0x2c]
add rdi, 0x10
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rbp + 8]
mov edx, 0x29f84877
mov r8d, 0x16edc1b5
call fcn.004010d0
mov qword [rbp + 0x98], rax
test rax, rax
je 0x402021
mov rcx, qword [rbp + 8]
mov edx, 0x1110dba6
mov r8d, 0x76205792
call fcn.004010d0
mov qword [rbp + 0xe8], rax
test rax, rax
je 0x402021
mov rcx, qword [rbp + 8]
mov edx, 0x796a5541
mov r8d, 0x11e9bf2d
call fcn.004010d0
mov qword [rbp + 0x80], rax
test rax, rax
je 0x402021
mov rcx, qword [rbp + 0x68]
mov edx, 0xf619a88b
mov r8d, 0xa377ea17
call fcn.004010d0
mov qword [rbp + 0xa8], rax
test rax, rax
je 0x402021
lea rdx, [rbp + 0x100]
mov ecx, 0x104
call qword [rbp + 0x78]
test eax, eax
je 0x402021
lea rcx, [rbp + 0x100]
call qword [rbp + 0x98]
test eax, eax
je 0x402021
mov rcx, qword [rbp + 0x68]
mov edx, 0x72305be2
mov r8d, 0x529d880c
call fcn.004010d0
mov qword [rbp + 0x90], rax
test rax, rax
je 0x402021
mov rcx, qword [rbp + 8]
mov edx, 0xf93731f
mov r8d, 0x8329dd82
call fcn.004010d0
mov qword [rbp + 0x60], rax
test rax, rax
je 0x402021
mov edx, 0xf06ea6f6
mov dword [rsp + 0x20], 0xb9e3ef4f
mov r9d, 0xebd9b9d0
lea rcx, [rsp + 0x40]
mov r8d, 0x654be595
call fcn.00401490
mov rcx, qword [rbp + 0x38]
lea rdx, [rbp - 0x2c]
mov qword [rsp + 0x38], rbx
mov r8d, 0x1bb
mov dword [rsp + 0x30], ebx
xor r9d, r9d
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], rbx
call qword [rbp + 0x90]
mov qword [rbp + 0xd0], rax
test rax, rax
je 0x402021
lea rdx, [rbp + 0x310]
lea rcx, [rsp + 0x40]
call fcn.00401520
mov rcx, qword [rbp + 0x10]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x402021
mov rdx, qword [rsp + 0x60]
lea r9, [rbp]
lea r8d, [rbx + 0x71]
mov qword [rsp + 0x20], rbx
call qword [rbp - 0x10]
test eax, eax
je 0x402021
mov rcx, qword [rbp + 0x10]
call qword [rbp + 0x18]
mov edx, 0x51899c50
mov dword [rsp + 0x20], 0xba384447
mov r9d, 0x6960c39
lea rcx, [rsp + 0x40]
mov r8d, 0x801076ed
call fcn.00401490
mov rcx, qword [rbp + 0xd0]
lea r8, [rbp - 0x28]
mov qword [rsp + 0x38], rbx
lea rdx, [rbp - 0x2c]
mov dword [rsp + 0x30], 0x80800000
xor r9d, r9d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call qword [rbp - 0x58]
mov qword [rbp + 0x40], rax
test rax, rax
je 0x402021
mov dword [rsp + 0x28], 1
lea r8, [rbp + 0x310]
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor edx, edx
xor ecx, ecx
call qword [rsp + 0x48]
cmp rax, 0x20
jb 0x402021
mov rcx, qword [rbp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], ebx
xor edx, edx
call qword [rsp + 0x70]
test eax, eax
je 0x402021
mov rcx, qword [rbp + 0x40]
lea rax, [rbp - 8]
lea r9, [rbp - 0x50]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x38]
mov edx, 0x20000005
call qword [rbp + 0xb0]
test eax, eax
je 0x402021
mov edx, dword [rbp - 0x38]
lea r9d, [rbx + 4]
xor ecx, ecx
mov r8d, 0x3000
call qword [rbp - 0x70]
mov qword [rbp - 0x18], rax
test rax, rax
je 0x402021
mov r8d, dword [rbp - 0x38]
lea r9, [rsp + 0x58]
mov rcx, qword [rbp + 0x40]
mov rdx, rax
call qword [rbp - 0x68]
test eax, eax
je 0x402021
mov eax, dword [rbp - 0x38]
cmp dword [rsp + 0x58], eax
jne 0x402021
mov rcx, qword [rbp + 0xd0]
call qword [rbp + 0xa8]
mov rcx, qword [rbp + 0x38]
call qword [rbp + 0xa8]
mov rcx, qword [rbp + 0x40]
call qword [rbp + 0xa8]
mov rcx, qword [rbp - 0x18]
mov eax, 0x5a4d
mov qword [rbp - 0x60], rcx
cmp word [rcx], ax
jne 0x402021
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
mov qword [rbp + 0xf0], rdx
cmp dword [rdx], 0x4550
jne 0x402021
mov eax, 0x8664
cmp word [rdx + 4], ax
jne 0x402021
mov eax, 0x20b
cmp word [rdx + 0x18], ax
jne 0x402021
movzx ecx, word [rdx + 0x14]
lea r9d, [rbx + 0x40]
add rcx, 0x18
mov r8d, 0x3000
add rcx, rdx
mov qword [rbp + 0xc8], rcx
xor ecx, ecx
mov edx, dword [rdx + 0x50]
call qword [rbp - 0x70]
mov qword [rbp + 0x70], rax
test rax, rax
je 0x402021
lea rcx, [rsp + 0x40]
call fcn.00401200
mov rax, qword [rbp + 0xf0]
mov rdi, qword [rbp + 0x70]
mov rsi, qword [rbp - 0x18]
mov ecx, dword [rax + 0x54]
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x40]
call fcn.00401280
lea rcx, [rsp + 0x40]
call fcn.00401370
lea rcx, [rsp + 0x40]
call fcn.00401420
mov rsi, qword [rsp + 0x630]
mov rdi, qword [rsp + 0x638]
mov rax, qword [rbp + 0xd8]
test rax, rax
je 0x402041
xor ecx, ecx
call rax
mov rbx, qword [rsp + 0x640]
xor eax, eax
add rsp, 0x620
pop rbp
ret