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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov ebp, dword [rdx + 8]
mov r13b, 1
cmp ebp, 2
jl 0x140280135
mov r14, rdx
mov rdi, rcx
cmp ebp, 0x3f
ja 0x14028011d
mov r8b, byte [rdi + 0x10]
lea rcx, [rsp + 0x48]
mov rdx, r14
mov r9d, 0x1f
call fcn.14031b270
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.14031b850
mov r8b, byte [rdi + 0x10]
lea rbx, [rsp + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, rbx
mov r9d, 0x1f
call fcn.14031b270
mov eax, dword [rsp + 0x3c]
test eax, eax
jle 0x14027fdec
cmp eax, 0x18
jb 0x14027fde2
mov rcx, qword [rsp + 0x30]
lock sub dword [rcx - 4], 1
jne 0x14027fdec
add rcx, 0xfffffffffffffffc
call fcn.140309590
jmp 0x14027fdec
mov rcx, qword [rsp + 0x30]
call fcn.140309590
cmp ebp, 2
jne 0x14027fe43
movsx rax, byte [rsp + 0x57]
cmp rax, 0xd
jg 0x14027fe0b
lea ecx, [rax + 1]
mov byte [rsp + 0x57], cl
mov byte [rsp + rax + 0x48], 0x7f
jmp 0x14027fe1a
lea rcx, [rsp + 0x48]
mov edx, 0x7f
call fcn.14030b2c0
movsx rax, byte [rsp + 0x2f]
cmp rax, 0xd
jg 0x14027fe34
lea ecx, [rax + 1]
mov byte [rsp + 0x2f], cl
mov byte [rsp + rax + 0x20], 0x7f
jmp 0x14027fe43
lea rcx, [rsp + 0x20]
mov edx, 0x7f
call fcn.14030b2c0
cmp byte [rsp + 0x2e], 0
je 0x14027fe4f
mov rbx, qword [rsp + 0x20]
movsx ecx, byte [rbx]
mov dl, byte [rdi + 0x10]
call fcn.14031a800
mov ebx, eax
cmp byte [rsp + 0x2e], 0
je 0x14027fe6a
mov rax, qword [rsp + 0x20]
jmp 0x14027fe6f
lea rax, [rsp + 0x20]
movsx ecx, byte [rax + 1]
mov dl, byte [rdi + 0x10]
call fcn.14031a800
mov ebp, eax
cmp byte [rsp + 0x2e], 0
je 0x14027fe8b
mov rax, qword [rsp + 0x20]
jmp 0x14027fe90
lea rax, [rsp + 0x20]
movsx ecx, byte [rax + 2]
mov dl, byte [rdi + 0x10]
call fcn.14031a800
shl ebp, 8
add ebp, ebx
shl eax, 0x10
add eax, ebp
movabs rcx, 0x8642b0fe3e86671b
imul rcx, rax
bswap rcx
or ecx, 0x80000000
mov rdx, qword [rdi + 0x828]
and ecx, dword [rdi + 0x838]
mov ecx, dword [rdx + rcx*4]
test ecx, ecx
js 0x1402800fb
mov rbp, qword [rdi + 0x830]
mov rbx, qword [rdi + 0x840]
mov edx, ecx
nop word cs:[rax + rax]
nop
movsxd rsi, edx
cmp dword [rbx + rsi*4], eax
je 0x14027ff09
lea rdx, [rsi + rsi*2]
mov edx, dword [rbp + rdx*4]
cmp edx, ecx
jne 0x14027fef0
jmp 0x1402800fb
test edx, edx
js 0x1402800fb
mov rax, qword [rdi + 0x850]
mov ecx, edx
shl rcx, 4
mov r15, qword [rax + rcx]
mov r12, qword [rax + rcx + 8]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp r15, r12
jae 0x14028002e
sub r12, r15
xor ebp, ebp
lea rsi, [rsp + 0x30]
jmp 0x14027ff78
sub rax, rcx
mov rbx, qword [rdi + rax*8 + 0x18]
test rbx, rbx
je 0x140280026
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov r8, rax
mov rcx, rsi
mov rdx, rbx
call fcn.14030ec10
add rbp, 1
cmp r12, rbp
je 0x14028003c
movzx eax, byte [r15 + rbp]
movsxd rcx, dword [rdi + 0x818]
cmp ecx, eax
jle 0x14027ff44
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp rax, rcx
jne 0x14027ffa7
mov rdx, qword [rsp + 0x30]
cmp rdx, qword [rsp + 0x48]
je 0x1402800bc
or rcx, rax
movabs rdx, 0xff000000000000
test rcx, rdx
je 0x14027ffd3
mov rcx, rsi
lea rdx, [rsp + 0x48]
call fcn.14030e250
test al, al
jne 0x1402800bc
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x28]
cmp rax, rcx
jne 0x14027ffed
mov rdx, qword [rsp + 0x30]
cmp rdx, qword [rsp + 0x20]
je 0x1402800bc
or rcx, rax
movabs rax, 0xff000000000000
test rcx, rax
je 0x140280014
mov rcx, rsi
lea rdx, [rsp + 0x20]
call fcn.14030e250
test al, al
jne 0x1402800bc
movzx edx, byte [r15 + rbp]
mov rcx, rsi
call fcn.14030ebb0
jmp 0x14027ff6b
xor r8d, r8d
jmp 0x14027ff60
xor eax, eax
mov rcx, qword [rsp + 0x50]
cmp rax, rcx
je 0x14028004b
jmp 0x140280057
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
cmp rax, rcx
jne 0x140280057
mov rdx, qword [rsp + 0x30]
cmp rdx, qword [rsp + 0x48]
je 0x1402800bc
or rcx, rax
movabs rax, 0xff000000000000
test rcx, rax
je 0x14028007c
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x48]
call fcn.14030e250
test al, al
jne 0x1402800bc
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x28]
cmp rax, rcx
jne 0x140280097
mov rdx, qword [rsp + 0x30]
cmp rdx, qword [rsp + 0x20]
je 0x1402800bc
or rcx, rax
movabs rax, 0xff000000000000
test rcx, rax
je 0x1402800f1
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x20]
call fcn.14030e250
test al, al
je 0x1402800f1
cmp byte [rsp + 0x3e], 0
je 0x1402800cd
lea rcx, [rsp + 0x30]
call fcn.14030abf0
cmp byte [rsp + 0x2e], 0
je 0x1402800de
lea rcx, [rsp + 0x20]
call fcn.14030abf0
cmp byte [rsp + 0x56], 0
je 0x140280135
lea rcx, [rsp + 0x48]
call fcn.14030abf0
jmp 0x140280135
lea rcx, [rsp + 0x30]
call fcn.140001760
cmp byte [rsp + 0x2e], 0
je 0x14028010c
lea rcx, [rsp + 0x20]
call fcn.14030abf0
cmp byte [rsp + 0x56], 0
je 0x14028011d
lea rcx, [rsp + 0x48]
call fcn.14030abf0
add rdi, 0x860
mov rcx, rdi
mov rdx, r14
call fcn.1402e9c20
test eax, eax
setns r13b
mov eax, r13d
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movaps xmmword [rsp + 0x160], xmm6
mov rbp, r8
mov rdi, rcx
mov ecx, edx
call fcn.140280400
test rax, rax
je 0x140281464
mov r13, rax
cmp byte [rax + 0xe], 0
je 0x14028146b
mov eax, dword [r13 + 8]
test eax, eax
je 0x140281474
mov rcx, r13
mov rdx, rdi
movaps xmm6, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x14027fd50
mov bl, 1
jmp 0x140281c10
movsx eax, byte [r13 + 0xf]
test eax, eax
jne 0x14028143e
lea rsi, [rsp + 0x38]
mov rcx, rsi
mov rdx, rdi
call fcn.14031b930
lea rcx, [rsp + 0xf8]
mov rdx, rsi
xor r8d, r8d
mov r9d, 0x1f
call fcn.14031b270
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0xf8]
xor r8d, r8d
call fcn.14031c090
cmp byte [rsp + 0x106], 0
je 0x1402814c9
lea rcx, [rsp + 0xf8]
call fcn.14030abf0
mov eax, dword [rsp + 0x44]
test eax, eax
jle 0x1402814f7
cmp eax, 0x18
jb 0x1402814ed
mov rcx, qword [rsp + 0x38]
lock sub dword [rcx - 4], 1
jne 0x1402814f7
add rcx, 0xfffffffffffffffc
call fcn.140309590
jmp 0x1402814f7
mov rcx, qword [rsp + 0x38]
call fcn.140309590
mov rdx, qword [rdi]
mov r8d, dword [rdi + 8]
lea rcx, [rsp + 0x38]
call fcn.140257c20
lea rcx, [rsp + 0xf8]
mov rdx, rdi
call fcn.14031b850
mov rdx, qword [rsp + 0xf8]
mov r8d, dword [rsp + 0x100]
lea rcx, [rsp + 0x58]
call fcn.140257c20
mov eax, dword [rsp + 0x104]
test eax, eax
jle 0x140281569
cmp eax, 0x18
jb 0x14028155c
mov rcx, qword [rsp + 0xf8]
lock sub dword [rcx - 4], 1
jne 0x140281569
add rcx, 0xfffffffffffffffc
call fcn.140309590
jmp 0x140281569
mov rcx, qword [rsp + 0xf8]
call fcn.140309590
mov qword [rsp + 0xc0], rbp
mov qword [rsp + 0xa8], rdi
mov ecx, 1
lea rsi, [rsp + 0x48]
jmp 0x1402815a0
mov rcx, rsi
call fcn.14030e4e0
lea rcx, [r14 + 1]
test eax, eax
jle 0x140281604
mov r14, rcx
movsxd rax, dword [r13 + 0x8a8]
cmp rcx, rax
jge 0x140281604
mov rax, qword [r13 + 0x8a0]
mov rax, qword [rax + r14*8]
lea rdx, [rax + 8]
movzx ecx, byte [rax + 0x16]
or cl, byte [rsp + 0x56]
jne 0x140281590
mov rcx, qword [rsp + 0x48]
bswap rcx
mov rdx, qword [rdx]
bswap rdx
cmp rcx, rdx
jne 0x1402815fd
mov rcx, qword [rsp + 0x50]
bswap rcx
mov rdx, qword [rax + 0x10]
bswap rdx
xor eax, eax
cmp rcx, rdx
setae cl
je 0x140281604
mov al, cl
add eax, eax
add eax, 0xffffffff
jmp 0x140281598
mov eax, 1
jae 0x140281598
lea rax, [r13 + 0x888]
mov qword [rsp + 0xb8], rax
add r14, 0xffffffffffffffff
xorps xmm6, xmm6
lea rbx, [rsp + 0xf8]
lea rsi, [rsp + 0x20]
mov qword [rsp + 0xb0], r13
jmp 0x140281655
add r14, 1
mov rcx, rbx
call fcn.140282720
test bpl, bpl
je 0x140281bb6
movsxd rax, dword [r13 + 0x8a8]
cmp r14, rax
jge 0x140281b9d
mov rax, qword [r13 + 0x8a0]
mov rdi, qword [rax + r14*8]
lea rcx, [rdi + 8]
mov al, byte [rsp + 0x56]
or al, byte [rdi + 0x16]
je 0x140281690
lea rdx, [rsp + 0x48]
call fcn.14030e4e0
test eax, eax
jle 0x1402816e0
jmp 0x140281bc1
mov rax, qword [rcx]
bswap rax
mov rcx, qword [rsp + 0x48]
bswap rcx
cmp rax, rcx
jne 0x1402816cc
mov rcx, qword [rdi + 0x10]
bswap rcx
mov rdx, qword [rsp + 0x50]
bswap rdx
xor eax, eax
cmp rcx, rdx
setae cl
je 0x1402816e0
mov al, cl
add eax, eax
add eax, 0xffffffff
test eax, eax
jle 0x1402816e0
jmp 0x140281bc1
jae 0x140281bc1
nop word cs:[rax + rax]
nop dword [rax]
mov rdx, qword [rsp + 0xb8]
cmp byte [rdx + 0xe], 0
je 0x1402816f9
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rax]
mov dword [rsp + 0x12c], 0
and byte [rsp + 0x128], 0xc0
lea rax, [rsp + 0x100]
movups xmmword [rax + 0x10], xmm6
movups xmmword [rax], xmm6
mov qword [rax + 0x20], 0
mov qword [rsp + 0x158], 0xffffffffffffffff
lea rax, [0x1403ac210]
mov qword [rsp + 0xf8], rax
mov rcx, rbx
xor r8d, r8d
call fcn.1402706a0
mov r8d, dword [rdi + 0x18]
mov r9d, dword [rdi + 0x1c]
lea rcx, [rsp + 0x78]
mov rdx, rbx
call fcn.140281de0
mov r8d, dword [rdi + 0x1c]
mov r9d, dword [rdi + 0x20]
add r8d, dword [rdi + 0x18]
lea rcx, [rsp + 0x68]
mov rdx, rbx
call fcn.140281de0
mov rax, qword [rsp + 0xf8]
mov rcx, rbx
call qword [rax + 0x50]
test al, al
je 0x1402817e1
mov rax, qword [rsp + 0xf8]
mov rcx, rbx
call qword [rax + 0x40]
mov rcx, qword [rsp + 0x158]
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
test eax, eax
jne 0x1402817d5
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov ecx, dword [rsp + 0x128]
mov edx, ecx
and edx, 0x1f
and ecx, 0xffc00000
movzx eax, ax
shl eax, 6
or eax, edx
add eax, ecx
add eax, 0x20
mov dword [rsp + 0x128], eax
mov qword [rsp + 0x158], 0xffffffffffffffff
cmp byte [rsp + 0x86], 0
mov r15, qword [rsp + 0x78]
lea rax, [rsp + 0x78]
cmove r15, rax
movsx eax, byte [rsp + 0x87]
cmovne eax, dword [rsp + 0x80]
movaps xmmword [rsp + 0x20], xmm6
cmp byte [rsp + 0x76], 0
mov rdi, qword [rsp + 0x68]
movsx ecx, byte [rsp + 0x77]
cmovne ecx, dword [rsp + 0x70]
lea rdx, [rsp + 0x68]
cmove rdi, rdx
mov bpl, 1
test eax, eax
jle 0x140281b67
test ecx, ecx
lea r12, [rsp + 0x88]
jle 0x140281b67
cdqe
add rax, r15
mov qword [rsp + 0xe0], rax
movsxd rax, ecx
add rax, rdi
mov qword [rsp + 0xd8], rax
nop
movsx edx, byte [r15]
mov rcx, rsi
call fcn.14030ebb0
mov cl, byte [rdi]
jmp 0x140281883
lea edx, [rax + 1]
mov byte [rsp + 0x2f], dl
mov byte [rsp + rax + 0x20], cl
movzx ecx, byte [rdi + 1]
add rdi, 1
test cl, cl
je 0x1402818a0
movsx rax, byte [rsp + 0x2f]
cmp rax, 0xd
jle 0x140281870
movsx edx, cl
mov rcx, rsi
call fcn.14030b2c0
jmp 0x14028187b
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x40]
cmp rax, rcx
jne 0x1402818bf
mov rdx, qword [rsp + 0x20]
cmp rdx, qword [rsp + 0x38]
je 0x140281b4a
or rcx, rax
movabs rdx, 0xff000000000000
test rcx, rdx
je 0x1402818eb
mov rcx, rsi
lea rdx, [rsp + 0x38]
call fcn.14030e250
test al, al
jne 0x140281b30
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x60]
cmp rax, rcx
jne 0x140281905
mov rdx, qword [rsp + 0x20]
cmp rdx, qword [rsp + 0x58]
je 0x140281b30
or rcx, rax
movabs rax, 0xff000000000000
test rcx, rax
je 0x14028192c
mov rcx, rsi
lea rdx, [rsp + 0x58]
call fcn.14030e250
test al, al
jne 0x140281b30
cmp qword [rsp + 0xc0], 0
je 0x140281ad0
mov rcx, r12
mov rdx, rsi
call fcn.14030f0c0
lea rbp, [rsp + 0xc8]
mov rcx, rbp
mov rdx, r12
call fcn.14031b930
lea rbx, [rsp + 0xe8]
mov rcx, rbx
mov rdx, rbp
xor r8d, r8d
mov r9d, 0x1f
call fcn.14031b270
lea rcx, [rsp + 0x98]
mov rdx, rbx
xor r8d, r8d
call fcn.14031c200
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0xa0]
mov rax, rdx
shr rax, 0x30
cmp rcx, rdx
jne 0x1402819b3
mov rbp, qword [rsp + 0x58]
mov r13b, 1
cmp rbp, qword [rsp + 0x98]
je 0x1402819e1
or rdx, rcx
movabs rcx, 0xff000000000000
test rdx, rcx
je 0x1402819e7
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x98]
call fcn.14030e250
mov r13d, eax
mov al, byte [rsp + 0xa6]
test al, al
jne 0x1402819ee
jmp 0x1402819fb
xor r13d, r13d
test al, al
je 0x1402819fb
lea rcx, [rsp + 0x98]
call fcn.14030abf0
cmp byte [rsp + 0xf6], 0
je 0x140281a12
lea rcx, [rsp + 0xe8]
call fcn.14030abf0
mov eax, dword [rsp + 0xd4]
test eax, eax
jle 0x140281a49
cmp eax, 0x18
jb 0x140281a3c
mov rcx, qword [rsp + 0xc8]
lock sub dword [rcx - 4], 1
jne 0x140281a49
add rcx, 0xfffffffffffffffc
call fcn.140309590
jmp 0x140281a49
mov rcx, qword [rsp + 0xc8]
call fcn.140309590
mov eax, dword [rsp + 0x94]
test eax, eax
jle 0x140281a80
cmp eax, 0x18
jb 0x140281a73
mov rcx, qword [rsp + 0x88]
lock sub dword [rcx - 4], 1
jne 0x140281a80
add rcx, 0xfffffffffffffffc
call fcn.140309590
jmp 0x140281a80
mov rcx, qword [rsp + 0x88]
call fcn.140309590
test r13b, r13b
je 0x140281ad0
mov rcx, qword [rsp + 0xc0]
movsxd rax, dword [rcx + 8]
cmp eax, dword [rcx + 0xc]
jge 0x140281ac3
mov rbx, qword [rcx]
lea edx, [rax + 1]
mov dword [rcx + 8], edx
shl rax, 4
lea rbp, [rbx + rax]
cmp byte [rsp + 0x2e], 0
je 0x140281af5
mov rcx, rbp
mov rdx, rsi
call fcn.14030aaa0
lea r12, [rsp + 0x88]
jmp 0x140281ad0
mov rdx, rsi
call fcn.1400f7880
nop dword [rax + rax]
add r15, 1
mov bpl, 1
cmp r15, qword [rsp + 0xe0]
jae 0x140281b50
add rdi, 1
cmp rdi, qword [rsp + 0xd8]
jb 0x140281860
jmp 0x140281b50
mov rdx, qword [rsp + 0x20]
mov qword [rbp], rdx
mov rdx, qword [rsp + 0x28]
mov qword [rbx + rax + 8], rdx
lea r12, [rsp + 0x88]
add r15, 1
mov bpl, 1
cmp r15, qword [rsp + 0xe0]
jb 0x140281ae1
jmp 0x140281b50
xor ebp, ebp
cmp byte [rsp + 0x2e], 0
jne 0x140281b57
mov r13, qword [rsp + 0xb0]
cmp byte [rsp + 0x76], 0
jne 0x140281b6e
jmp 0x140281b78
xor ebp, ebp
nop dword [rax]
cmp byte [rsp + 0x2e], 0
je 0x140281b39
mov rcx, rsi
call fcn.14030abf0
mov r13, qword [rsp + 0xb0]
cmp byte [rsp + 0x76], 0
je 0x140281b78
lea rcx, [rsp + 0x68]
call fcn.14030abf0
cmp byte [rsp + 0x86], 0
lea rbx, [rsp + 0xf8]
je 0x140281640
lea rcx, [rsp + 0x78]
call fcn.14030abf0
jmp 0x140281640
add r13, 0x860
mov rcx, r13
mov rdx, qword [rsp + 0xa8]
call fcn.1402e9c20
jmp 0x140281bd8
mov bl, 1
cmp byte [rsp + 0x66], 0
jne 0x140281be4
jmp 0x140281bee
add r13, 0x860
mov rcx, r13
mov rdx, qword [rsp + 0xa8]
call fcn.1402e9c20
test eax, eax
setns bl
cmp byte [rsp + 0x66], 0
je 0x140281bee
lea rcx, [rsp + 0x58]
call fcn.14030abf0
cmp byte [rsp + 0x46], 0
je 0x140281bff
lea rcx, [rsp + 0x38]
call fcn.14030abf0
cmp byte [rsp + 0x56], 0
je 0x140281c10
lea rcx, [rsp + 0x48]
call fcn.14030abf0
mov eax, ebx
movaps xmm6, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret