Function at 0x140050b01
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x268
mov rax, qword [rsp + 0x2d8]
mov r15, r8
xor r8d, r8d
mov rbx, r9
xor r9d, r9d
mov dword [rax], r8d
mov rax, qword [rsp + 0x2e0]
xor r8d, r8d
lea rdi, [rsp + 0xc8]
mov qword [rsp + 0x2b0], rcx
mov dword [rax], r9d
mov r9d, 0x40
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r15
mov dword [rsp + 0x2b8], edx
call fcn.1400515d0
test eax, eax
je 0x140051485
mov rax, qword [rsp + 0xc8]
xor esi, esi
cmp byte [rax], 0x4d
jne 0x140050b8a
cmp byte [rax + 1], 0x5a
jne 0x140050b8a
mov esi, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x2b0]
mov r9, rbx
mov r8, r15
mov rdx, rdi
call fcn.1400516aa
mov qword [rsp + 0x30], rdi
mov r8, rsi
mov edx, dword [rsp + 0x2b8]
mov qword [rsp + 0x28], rbx
mov rcx, qword [rsp + 0x2b0]
mov r9d, 0x18
mov qword [rsp + 0x20], r15
call fcn.1400515d0
test eax, eax
je 0x140051485
mov r12, qword [rsp + 0xc8]
test rsi, rsi
je 0x140050c1e
mov r8d, 4
lea rdx, [0x140148eea]
mov rcx, r12
xor ebp, ebp
call sub.msvcrt.dll_memcmp
movups xmm0, xmmword [r12 + 4]
test eax, eax
mov eax, dword [r12 + 0x14]
sete bpl
movups xmmword [rsp + 0xb4], xmm0
add rsi, 4
mov dword [rsp + 0xc4], eax
jmp 0x140050c39
mov eax, dword [r12 + 0x10]
movups xmm1, xmmword [r12]
xor ebp, ebp
mov dword [rsp + 0xc4], eax
movups xmmword [rsp + 0xb4], xmm1
mov rcx, qword [rsp + 0x2b0]
mov r9, rbx
mov r8, r15
mov rdx, rdi
call fcn.1400516aa
test ebp, ebp
jne 0x140050c68
xor r8d, r8d
lea rdx, str.executable_file_is_not_COFF
mov rcx, rbx
call r15
jmp 0x140051485
mov ax, word [rsp + 0xb6]
mov qword [rsp + 0x28], rbx
lea r8, [rsi + 0x14]
lea rdx, [rsp + 0xe0]
mov qword [rsp + 0x30], rdx
movzx edi, word [rsp + 0xc4]
mov word [rsp + 0x72], ax
mov eax, dword [rsp + 0xc0]
mov qword [rsp + 0x20], r15
mov edx, dword [rsp + 0x2b8]
mov dword [rsp + 0x68], eax
movzx eax, word [rsp + 0x72]
mov rcx, qword [rsp + 0x2b0]
imul rax, rax, 0x28
lea r9, [rax + rdi]
call fcn.1400515d0
test eax, eax
je 0x140051485
mov r13, qword [rsp + 0xe0]
cmp di, 0x20
jbe 0x140050d22
mov eax, dword [r13]
cmp ax, 0x10b
jne 0x140050cef
mov eax, dword [r13 + 0x1c]
mov qword [rsp + 0x78], rax
jmp 0x140050d29
cmp ax, 0x20b
jne 0x140050d04
mov rax, qword [r13 + 0x18]
mov dword [rsp + 0x74], ebp
mov qword [rsp + 0x78], rax
jmp 0x140050d31
xor r8d, r8d
lea rdx, str.bad_magic_in_PE_optional_header
mov rcx, rbx
xor r12d, r12d
call r15
xor eax, eax
mov dword [rsp + 0x5c], eax
jmp 0x14005141c
xor eax, eax
mov qword [rsp + 0x78], rax
xor r14d, r14d
mov dword [rsp + 0x74], r14d
mov r14d, dword [rsp + 0xbc]
test r14d, r14d
je 0x140050de2
imul esi, dword [rsp + 0x68], 0x12
lea rax, [rsp + 0x110]
mov r8, r14
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rax
mov edx, dword [rsp + 0x2b8]
mov qword [rsp + 0x20], r15
mov rcx, qword [rsp + 0x2b0]
lea r9, [rsi + 4]
call fcn.1400515d0
mov r12d, eax
test eax, eax
je 0x140051416
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + rsi]
mov qword [rsp + 0x60], rax
cmp rax, 4
jbe 0x140050df8
mov qword [rsp + 0x28], rbx
mov r9, qword [rsp + 0x60]
lea rax, [rsp + 0xf8]
lea r8, [r14 + rsi]
mov qword [rsp + 0x30], rax
mov edx, dword [rsp + 0x2b8]
mov qword [rsp + 0x20], r15
mov rcx, qword [rsp + 0x2b0]
call fcn.1400515d0
mov dword [rsp + 0x5c], ebp
mov r12d, eax
test eax, eax
je 0x14005141c
mov r12d, ebp
jmp 0x140050dff
xor esi, esi
xor r12d, r12d
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x5c], esi
xor esi, esi
mov qword [rsp + 0x60], r12
jmp 0x140050dfc
mov dword [rsp + 0x5c], ebp
xor r12d, r12d
movzx eax, word [rsp + 0x72]
lea rdx, [rsp + 0x140]
mov ecx, 0x24
mov dword [rsp + 0x80], eax
lea rax, [r13 + rdi]
mov rdi, rdx
xor r13d, r13d
mov qword [rsp + 0x88], rax
xor eax, eax
mov r14, qword [rsp + 0x88]
rep stosd dword [rdi], eax
mov eax, dword [rsp + 0x80]
cmp r13d, eax
jae 0x140050f45
xor r8d, r8d
cmp byte [r14], 0x2f
jne 0x140050e5c
lea rcx, [r14 + 1]
call sub.msvcrt.dll_atoi
mov r8d, eax
mov rax, qword [rsp + 0xf8]
mov r9d, r8d
mov r10, qword [rsp + 0x108]
xor edi, edi
add rax, r9
mov qword [rsp + 0x90], rax
lea rax, [0x140148fe0]
mov rcx, qword [rax + rdi*8]
test r8d, r8d
je 0x140050edc
cmp r9, r10
jae 0x140050f2c
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0xa8], r10
mov qword [rsp + 0xa0], r9
mov dword [rsp + 0x98], r8d
call sub.msvcrt.dll_strcmp
mov r8d, dword [rsp + 0x98]
mov r9, qword [rsp + 0xa0]
test eax, eax
mov r10, qword [rsp + 0xa8]
sete al
movzx eax, al
jmp 0x140050efd
xor eax, eax
mov dl, byte [rcx + rax]
cmp dl, byte [r14 + rax]
jne 0x140050f2c
test dl, dl
je 0x140050f01
inc rax
cmp rax, 8
jne 0x140050ede
xor eax, eax
cmp byte [rcx + 8], 0
sete al
test eax, eax
je 0x140050f2c
mov eax, dword [r14 + 0x14]
movsxd rdi, edi
mov edx, dword [r14 + 0x10]
shl rdi, 4
mov qword [rsp + rdi + 0x140], rax
mov eax, dword [r14 + 8]
cmp eax, edx
cmova rax, rdx
mov qword [rsp + rdi + 0x148], rax
jmp 0x140050f39
inc rdi
cmp rdi, 9
jne 0x140050e7c
inc r13d
add r14, 0x28
jmp 0x140050e37
cmp dword [rsp + 0x68], 0
je 0x140051272
mov rcx, qword [rsp + 0x2b0]
mov r9, rbx
mov r8, r15
mov edx, 0x18
call fcn.140050520
mov r13, rax
test rax, rax
je 0x14005141c
mov rax, qword [rsp + 0xf8]
xor edx, edx
xor r9d, r9d
xor r14d, r14d
mov ecx, 0x12
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x80], rax
mov rax, rsi
xor esi, esi
div rcx
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x90]
cmp r9, rax
jae 0x14005104f
imul rax, r9, 0x12
mov rdi, qword [rsp + 0x80]
add rax, rdi
mov cx, word [rax + 0xc]
mov dx, word [rax + 0xe]
test cx, cx
setg r8b
cmp word [rsp + 0x72], cx
jae 0x140050fec
test r8b, r8b
jne 0x140051000
mov cl, byte [rax]
test cl, cl
jne 0x140051015
mov r10d, dword [rax + 4]
mov rdi, qword [rsp + 0x60]
cmp r10, rdi
jb 0x140051015
xor r8d, r8d
lea rdx, str.invalid_section_or_offset_in_coff_symbol
mov rcx, rbx
call r15
jmp 0x140051226
shr dx, 4
cmp dx, 2
jne 0x140051041
test r8b, r8b
je 0x140051041
inc r14
test cl, cl
je 0x140051041
xor edx, edx
cmp byte [rax + rdx], 0
je 0x14005103c
inc rdx
cmp rdx, 8
jne 0x14005102d
lea rsi, [rdx + rsi + 1]
movzx eax, byte [rax + 0x11]
lea r9, [r9 + rax + 1]
jmp 0x140050fb1
lea rdi, [r14 + 1]
mov rcx, qword [rsp + 0x2b0]
mov r9, rbx
mov r8, r15
shl rdi, 4
mov rdx, rdi
call fcn.140050520
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140051226
test rsi, rsi
jne 0x14005108f
xor eax, eax
mov r9, qword [rsp + 0x68]
xor r10d, r10d
jmp 0x140051112
mov rcx, qword [rsp + 0x2b0]
mov r9, rbx
mov r8, r15
mov rdx, rsi
call fcn.140050520
test rax, rax
jne 0x140051082
mov qword [rsp + 0x20], rbx
mov rdx, qword [rsp + 0x68]
mov r9, r15
mov r8, rdi
mov rcx, qword [rsp + 0x2b0]
call fcn.140050562
jmp 0x140051226
imul rdx, r10, 0x12
mov rdi, qword [rsp + 0x80]
add rdx, rdi
mov r8w, word [rdx + 0xc]
mov cx, word [rdx + 0xe]
test r8w, r8w
setg r11b
cmp word [rsp + 0x72], r8w
jb 0x140051124
mov r8b, byte [rdx]
mov rsi, rdx
test r8b, r8b
je 0x14005112b
shr cx, 4
cmp cx, 2
je 0x14005114a
movzx edx, byte [rdx + 0x11]
lea r10, [r10 + rdx + 1]
mov rsi, qword [rsp + 0x90]
cmp r10, rsi
jb 0x1400510cc
jmp 0x1400511bc
test r11b, r11b
je 0x1400510f4
jmp 0x140051145
mov esi, dword [rdx + 4]
mov rdi, qword [rsp + 0x60]
cmp rsi, rdi
jae 0x140051145
mov rdi, qword [rsp + 0x98]
add rsi, rdi
jmp 0x1400510ff
call sub.msvcrt.dll_abort
test r11b, r11b
je 0x140051109
test r8b, r8b
je 0x14005117c
xor r8d, r8d
cmp byte [rsi + r8], 0
je 0x140051167
inc r8
cmp r8, 8
jne 0x140051157
mov rdi, rax
mov ecx, r8d
rep movsb byte [rdi], byte [rsi]
mov byte [rax + r8], 0
mov rsi, rax
lea rax, [rax + r8 + 1]
cmp dword [rsp + 0x74], 0
jne 0x14005118b
cmp byte [rsi], 0x5f
jne 0x14005118b
inc rsi
movsx rcx, word [rdx + 0xc]
mov qword [r9], rsi
add r9, 0x10
mov rsi, qword [rsp + 0x88]
imul r8, rcx, 0x28
mov ecx, dword [rdx + 8]
add ecx, dword [rsi + r8 - 0x1c]
mov rsi, qword [rsp + 0x78]
add rcx, rsi
mov qword [r9 - 8], rcx
jmp 0x140051109
xor r10d, r10d
mov qword [r9 + 8], 0xffffffffffffffff
mov rcx, qword [rsp + 0x68]
mov rdx, r14
mov qword [r9], r10
mov r8d, 0x10
lea r9, [0x140050a11]
call fcn.140055bcd
mov rax, qword [rsp + 0x68]
xor r11d, r11d
mov qword [r13 + 0x10], r14
mov qword [r13], r11
mov qword [r13 + 8], rax
mov rax, qword [rsp + 0x2d8]
mov dword [rax], 1
mov rax, qword [rsp + 0x2b0]
cmp dword [rax + 8], 0
lea rdx, [rax + 0x30]
jne 0x140051262
mov rax, qword [rsp + 0x2b0]
mov rax, qword [rax + 0x30]
jmp 0x140051249
mov qword [rsp + 0x20], rbx
mov r9, r15
mov r8d, 0x18
mov rdx, r13
mov rcx, qword [rsp + 0x2b0]
call fcn.140050562
jmp 0x14005141c
test rax, rax
je 0x140051256
mov rdx, rax
mov rax, qword [rax]
jmp 0x140051249
mov qword [rdx], r13
jmp 0x140051272
lock cmpxchg qword [rcx], r13
je 0x140051272
mov rcx, rdx
mov rax, qword [rcx]
test rax, rax
je 0x14005125b
mov rcx, rax
jmp 0x140051265
mov rcx, qword [rsp + 0x2b0]
lea rdx, [rsp + 0xe0]
mov r9, rbx
mov r8, r15
call fcn.1400516aa
cmp dword [rsp + 0x5c], 0
je 0x1400512af
mov rcx, qword [rsp + 0x2b0]
lea rdx, [rsp + 0x110]
mov r9, rbx
mov r8, r15
call fcn.1400516aa
lea rdx, [rsp + 0x140]
lea rdi, [rsp + 0x1d0]
xor r9d, r9d
xor esi, esi
mov r13, rdx
mov rcx, qword [rdx + 8]
test rcx, rcx
je 0x1400512ee
mov rax, qword [rdx]
test rsi, rsi
je 0x1400512e1
cmp rsi, rax
cmovg rsi, rax
jmp 0x1400512e4
mov rsi, rax
add rax, rcx
cmp r9, rax
cmovl r9, rax
add rdx, 0x10
cmp rdi, rdx
jne 0x1400512c7
test rsi, rsi
je 0x140051301
test r9, r9
jne 0x140051332
mov ecx, dword [rsp + 0x2b8]
mov r8, rbx
mov rdx, r15
call fcn.1400509a1
test eax, eax
je 0x1400514c4
mov rax, qword [rsp + 0x2d0]
lea rbx, [0x1400509e0]
mov qword [rax], rbx
jmp 0x1400514e3
lea rax, [rsp + 0x128]
mov qword [rsp + 0x28], rbx
mov edx, dword [rsp + 0x2b8]
sub r9, rsi
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x2b0]
mov r8, rsi
mov qword [rsp + 0x20], r15
call fcn.1400515d0
test eax, eax
je 0x1400514c4
mov ecx, dword [rsp + 0x2b8]
mov r8, rbx
mov rdx, r15
call fcn.1400509a1
test eax, eax
je 0x1400514d3
mov r8, qword [rsp + 0x128]
xor eax, eax
lea r9, [rsp + 0x218]
mov rcx, qword [r13 + rax*2 + 8]
xor edx, edx
mov qword [r9 + rax], rcx
test rcx, rcx
je 0x1400513b2
mov rdx, r8
sub rdx, rsi
add rdx, qword [r13 + rax*2]
mov qword [rdi + rax], rdx
add rax, 8
cmp rax, 0x48
jne 0x140051397
mov rax, qword [rsp + 0x2d0]
xor ecx, ecx
xor r8d, r8d
xor r9d, r9d
mov qword [rsp + 0x40], rcx
mov rcx, qword [rsp + 0x2b0]
xor edx, edx
mov qword [rsp + 0x20], r8
mov r8, rdi
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r15
call fcn.140055139
test eax, eax
je 0x1400514c8
mov rax, qword [rsp + 0x2e0]
mov dword [rax], 1
jmp 0x1400514e3
xor eax, eax
mov dword [rsp + 0x5c], eax
mov rcx, qword [rsp + 0x2b0]
lea rdx, [rsp + 0xe0]
mov r9, rbx
mov r8, r15
call fcn.1400516aa
test r12d, r12d
je 0x14005145c
xor ebp, ebp
mov rcx, qword [rsp + 0x2b0]
mov r9, rbx
mov r8, r15
mov r12d, ebp
lea rdx, [rsp + 0xf8]
call fcn.1400516aa
cmp dword [rsp + 0x5c], 0
jne 0x1400514a7
mov ebp, r12d
test ebp, ebp
je 0x140051485
mov rcx, qword [rsp + 0x2b0]
lea rdx, [rsp + 0x128]
mov r9, rbx
mov r8, r15
call fcn.1400516aa
cmp dword [rsp + 0x2b8], 0xffffffff
jne 0x140051493
xor ebp, ebp
jmp 0x1400514e3
mov ecx, dword [rsp + 0x2b8]
mov r8, rbx
mov rdx, r15
call fcn.1400509a1
jmp 0x14005148f
mov rcx, qword [rsp + 0x2b0]
lea rdx, [rsp + 0x110]
mov r9, rbx
mov r8, r15
call fcn.1400516aa
jmp 0x140051463
xor ebp, ebp
jmp 0x1400514d3
mov dword [rsp + 0x2b8], 0xffffffff
test r12d, r12d
je 0x140051466
xor edx, edx
mov dword [rsp + 0x5c], edx
jmp 0x14005143e
mov eax, ebp
add rsp, 0x268
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret