Function at 0x140039440
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x3e8
movzx eax, byte [0x1400c56f8]
test eax, eax
jne 0x14003950c
call fcn.14002c9d0
mov qword [rsp + 0x20], rax
xor eax, eax
cmp eax, 1
je 0x1400394ca
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
jne 0x1400394bb
mov rax, qword [rsp + 0x20]
movsxd rax, dword [rax + 0x3c]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0x40
jb 0x1400394bb
cmp qword [rsp + 0x30], 0x400
jae 0x1400394bb
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
cmp dword [rax], 0x4550
jne 0x1400394bb
jmp 0x1400394ca
mov rax, qword [rsp + 0x20]
dec rax
mov qword [rsp + 0x20], rax
jmp 0x140039460
lea r9, [rsp + 0x38]
mov r8d, 0x40
mov edx, 0x1000
mov rcx, qword [rsp + 0x20]
call fcn.140030c90
mov edx, 0x1000
mov rcx, qword [rsp + 0x20]
call fcn.140026fc0
lea r9, [rsp + 0x48]
mov r8d, dword [rsp + 0x38]
mov edx, 0x1000
mov rcx, qword [rsp + 0x20]
call fcn.140030c90
call fcn.14002f140
mov dword [rsp + 0x3c], eax
call fcn.14002ec20
mov ecx, dword [rsp + 0x3c]
add ecx, eax
mov eax, ecx
mov dword [0x1400c43f8], eax
lea rdx, [0x1400c5930]
lea rcx, [0x1400769b0]
call fcn.140027390
lea rdx, [0x1400c5720]
lea rcx, [0x1400769b8]
call fcn.140027390
lea rdx, [0x1400c5b40]
lea rcx, [0x1400769c0]
call fcn.140027390
lea rdx, [rsp + 0x180]
lea rcx, [0x1400769c8]
call fcn.140027390
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rcx, [rsp + 0x50]
call fcn.14002d2b0
mov byte [0x14008ff23], al
lea rdx, [rsp + 0x180]
lea rcx, [0x140076e38]
call fcn.140027390
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rcx, [rsp + 0x50]
call fcn.140052520
movabs rcx, 0x777777777777777
xor rax, rcx
mov qword [0x1400c5718], rax
movzx eax, byte [0x14008ff23]
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 5
ja case.default.0x140039607
movsxd rax, dword [rsp + 0x28]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x39ac4]
add rax, rcx
jmp rax
mov rax, qword [0x1400c5928]
mov dword [rax + 0x140], 0xfffdb933
mov rax, qword [0x1400c5928]
mov dword [rax + 0x144], 0xdd411445
mov dword [0x1400c61cc], 0xffffffff
mov dword [0x1400c61d0], 0xff0000ff
mov dword [0x1400c61d4], 0xffffffff
mov dword [0x1400c61d8], 0xffd71345
mov dword [0x1400c61dc], 0xff00e5ee
jmp case.default.0x140039607
mov rax, qword [0x1400c5928]
mov dword [rax + 0x140], 0xffc0ffff
mov rax, qword [0x1400c5928]
mov dword [rax + 0x144], 0xdd1b315e
mov dword [0x1400c61cc], 0xffc0ffff
mov dword [0x1400c61d0], 0xff0000ff
mov dword [0x1400c61d4], 0xffc0ffff
mov dword [0x1400c61d8], 0xffd71345
mov dword [0x1400c61dc], 0xffc0ffff
jmp case.default.0x140039607
mov rax, qword [0x1400c5928]
mov dword [rax + 0x140], 0xff00ff00
mov rax, qword [0x1400c5928]
mov dword [rax + 0x144], 0xdd000000
mov dword [0x1400c61cc], 0xffffff00
mov dword [0x1400c61d0], 0xffff0000
mov dword [0x1400c61d4], 0xffffff00
mov dword [0x1400c61d8], 0xffe4b73f
mov dword [0x1400c61dc], 0xffa0f809
jmp case.default.0x140039607
mov rax, qword [0x1400c5928]
mov dword [rax + 0x140], 0xffef5b9c
mov rax, qword [0x1400c5928]
mov dword [rax + 0x144], 0xdd000000
mov dword [0x1400c61cc], 0xffff0000
mov dword [0x1400c61d0], 0xffffffff
mov dword [0x1400c61d4], 0xffff0000
mov dword [0x1400c61d8], 0xffff50c6
mov dword [0x1400c61dc], 0xffffff00
jmp case.default.0x140039607
mov rax, qword [0x1400c5928]
mov dword [rax + 0x140], 0xff840228
mov rax, qword [0x1400c5928]
mov dword [rax + 0x144], 0xdd1d953f
mov dword [0x1400c61cc], 0xff0000ff
mov dword [0x1400c61d0], 0xff45b97c
mov dword [0x1400c61d4], 0xff0000ff
mov dword [0x1400c61d8], 0xffffe600
mov dword [0x1400c61dc], 0xff7fb80e
jmp case.default.0x140039607
mov rax, qword [0x1400c5928]
mov dword [rax + 0x140], 0xffd3d7d4
mov rax, qword [0x1400c5928]
mov dword [rax + 0x144], 0xdd464547
mov dword [0x1400c61cc], 0xffffffff
mov dword [0x1400c61d0], 0xff0000ff
mov dword [0x1400c61d4], 0xffffffff
mov dword [0x1400c61d8], 0xffd71345
mov dword [0x1400c61dc], 0xff00e5ee
lea rdx, [rsp + 0x180]
lea rcx, [0x1400769d0]
call fcn.140027390
lea rdx, [0x14008ff58]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rdx, [rsp + 0x180]
lea rcx, [0x1400769d8]
call fcn.140027390
lea rdx, [0x14008ff68]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rdx, [0x1400c5720]
lea rcx, [0x1400c5720]
call fcn.140044a40
lea rdx, [rsp + 0x180]
lea rcx, [0x140076a08]
call fcn.140027390
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rcx, [rsp + 0x50]
call fcn.14002d2b0
cmp eax, 0x2537
jne 0x1400398b8
mov byte [0x1400c5b38], 1
lea rdx, [rsp + 0x180]
lea rcx, [0x140076a38]
call fcn.140027390
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rcx, [rsp + 0x50]
call fcn.14002d2b0
cmp eax, 0x16c5
jne 0x1400398f6
mov byte [0x1400c4940], 1
lea rdx, [rsp + 0x180]
lea rcx, [0x140076e40]
call fcn.140027390
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rcx, [rsp + 0x50]
call fcn.140026dd0
movzx eax, al
test eax, eax
je 0x140039956
call fcn.14002f140
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x50]
call fcn.14002e420
test eax, eax
jne 0x140039956
call fcn.14002f140
sub eax, dword [rsp + 0x40]
cmp eax, 0xfa0
jae 0x140039956
jmp 0x140039936
lea rdx, [rsp + 0x180]
lea rcx, [0x140076e48]
call fcn.140027390
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rcx, [rsp + 0x50]
call fcn.140026dd0
movzx eax, al
test eax, eax
je 0x1400399b6
call fcn.14002f140
mov dword [rsp + 0x44], eax
lea rcx, [rsp + 0x50]
call fcn.14002e420
test eax, eax
jne 0x1400399b6
call fcn.14002f140
sub eax, dword [rsp + 0x44]
cmp eax, 0xfa0
jae 0x1400399b6
jmp 0x140039996
lea rdx, [rsp + 0x180]
lea rcx, [0x140076e50]
call fcn.140027390
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rcx, [rsp + 0x50]
call fcn.14002d2b0
mov dword [0x1400c56fc], eax
lea rdx, [rsp + 0x180]
lea rcx, [0x140076e58]
call fcn.140027390
mov rax, qword [0x1400c5928]
add rax, 0x14
mov rdx, rax
lea rcx, [rsp + 0x180]
call fcn.1400022c0
lea rdx, [rsp + 0x180]
mov ecx, 0x104
call fcn.14002f0e0
lea rcx, [rsp + 0x180]
call fcn.1400448e0
mov byte [rsp + rax + 0x17b], 0
lea rdx, [rsp + 0x50]
lea rcx, [0x140076e60]
call fcn.1400022c0
mov rdx, rax
lea rcx, [rsp + 0x180]
call fcn.1400449a0
lea rdx, [0x1400c5d50]
lea rcx, [rsp + 0x180]
call fcn.140002350
lea rdx, [rsp + 0x180]
lea rcx, [0x1400c5930]
call fcn.1400022c0
mov rcx, rax
call fcn.140029530
call fcn.140027ad0
call fcn.140024c70
call fcn.140024a00
call fcn.14002ec70
mov edx, 2
mov rcx, rax
call fcn.1400306f0
call fcn.14003aad0
add rsp, 0x3e8
ret