Function at 0x140373230
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, 0xc8
xor r14d, r14d
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rdx
mov dword [rsp + 0x120], r8d
mov qword [rsp + 0x128], r9
mov dword [rsp + 0x3c], r8d
mov qword [rsp + 0x68], 0
mov dword [rsp + 0x4c], 1
nop dword [rax]
mov rax, qword [rsp + 0x110]
mov r15, qword [rsp + 0x118]
mov qword [rsp + 0xa8], 0
mov dword [rax + 0x24], 0
mov eax, dword [rsp + 0x3c]
mov ebx, eax
test eax, eax
jle 0x14037412b
nop dword [rax]
movzx eax, byte [r15]
lea edx, [rax - 9]
cmp dl, 4
jbe 0x1403735a0
cmp al, 0x20
je 0x1403735a0
lea rsi, [0x140763fe0]
xor eax, eax
lea r12, [rsi + 0x40]
test al, 0xfe
jne 0x140373338
movzx r13d, byte [rsi + 8]
cmp r13d, ebx
jg 0x140373338
movzx edi, r13b
mov rdx, qword [rsi]
mov rcx, r15
mov r8, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x140373338
movzx edx, byte [rsi + 0xa]
cmp dl, 1
je 0x1403739d0
mov eax, 0xa
movzx ecx, byte [r15 + rdi]
cmp cl, 0x29
ja 0x140373338
movabs rdi, 0x30500003e01
bt rdi, rcx
jb 0x140373f30
nop dword [rax]
add rsi, 0x10
cmp r12, rsi
je 0x140373352
movzx eax, byte [rsi + 9]
test al, 0xfe
je 0x1403732e1
add rsi, 0x10
cmp r12, rsi
jne 0x140373341
movzx eax, byte [r15]
cmp al, 0x22
je 0x1403735b8
cmp al, 0x28
je 0x140373a50
cmp al, 0x29
mov rax, qword [rsp + 0x110]
je 0x140373feb
mov eax, dword [rax + 0x20]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x110]
movsxd rsi, dword [rax + 0x1c]
test esi, esi
jle 0x140373908
mov rdi, qword [rax + 0x10]
xor r12d, r12d
jmp 0x1403733ad
add r12, 1
cmp r12, rsi
je 0x140373908
mov r13, qword [rdi + r12*8]
mov rcx, r13
call sub.msvcrt.dll_strlen
mov rbp, rax
cmp eax, ebx
jge 0x1403733a0
cdqe
cmp byte [r15 + rax], 0x3a
jne 0x1403733a0
mov r8d, ebp
mov rdx, r15
mov rcx, r13
call fcn.14030c790
test eax, eax
jne 0x1403733a0
mov r10, r15
sub r10, qword [rsp + 0x118]
mov edi, dword [rsp + 0x3c]
mov dword [rsp + 0x40], r12d
lea eax, [r10 + rbp + 1]
mov dword [rsp + 0x48], eax
movsxd rbp, eax
sub edi, eax
add rbp, qword [rsp + 0x118]
nop dword [rax]
mov rax, qword [rsp + 0x110]
mov rcx, qword [rax]
mov rax, qword [rcx]
mov r13, rax
test edi, edi
jle 0x14037409a
mov rdx, rbp
xor ebx, ebx
jmp 0x14037343f
cmp al, 0x22
je 0x14037344c
add ebx, 1
add rdx, 1
cmp ebx, edi
je 0x14037344c
movzx eax, byte [rdx]
lea r8d, [rax - 0x28]
cmp r8b, 1
ja 0x140373430
mov rax, qword [rsp + 0x110]
mov r9d, ebx
mov r8, rbp
xor r15d, r15d
mov edx, dword [rax + 8]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
call fcn.140309770
mov esi, eax
test eax, eax
jne 0x140373510
lea rax, [rsp + 0xa4]
lea r12, [rsp + 0xb8]
mov dword [rsp + 0x98], 0
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov rdx, r12
lea rax, [rsp + 0xa0]
lea r9, [rsp + 0x9c]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x98]
mov dword [rsp + 0x9c], 0
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0xa4], 0
call qword [r13 + 0x28]
test eax, eax
je 0x140373e0d
test ebx, ebx
je 0x140373e03
cmp eax, 0x65
jne 0x140373e03
mov rax, r13
mov rcx, qword [rsp + 0xb0]
call qword [rax + 0x20]
add ebx, dword [rsp + 0x48]
mov qword [rsp + 0xa8], r15
mov dword [rsp + 0x48], ebx
test esi, esi
jne 0x140373762
mov r9, qword [rsp + 0xa8]
test r9, r9
je 0x140373ac8
mov edx, dword [r9]
cmp edx, 5
je 0x14037354c
cmp qword [r9 + 0x10], 0
je 0x140373c3b
cmp dword [rsp + 0x4c], 1
jne 0x140373b10
xor eax, eax
test r14, r14
jne 0x1403740a1
cmp qword [rsp + 0x68], 0
mov r14, qword [rsp + 0xa8]
je 0x140373bcf
mov qword [rax + 0x18], r14
mov dword [rsp + 0x4c], 0
mov qword [r14 + 8], rax
movsxd rbx, dword [rsp + 0x48]
sub dword [rsp + 0x3c], ebx
add qword [rsp + 0x118], rbx
jmp 0x140373280
add r15, 1
sub ebx, 1
jne 0x1403732b8
jmp 0x140374008
lea rdx, [r15 + 1]
mov eax, 1
mov ecx, 1
cmp ebx, 1
jg 0x1403735df
jmp 0x1403735e6
add eax, 1
add rdx, 1
cmp eax, ebx
je 0x140373ae0
cmp byte [rdx], 0x22
jne 0x1403735d0
mov ecx, eax
mov rdx, r15
sub rdx, qword [rsp + 0x118]
lea edi, [rcx + rdx + 1]
mov dword [rsp + 0x48], edi
cmp eax, ebx
je 0x140373af4
lea r9d, [rax - 1]
mov rax, qword [rsp + 0x110]
lea r8, [r15 + 1]
mov dword [rsp + 0x74], r9d
mov rcx, qword [rax]
mov qword [rsp + 0x78], r8
mov rax, qword [rcx]
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x110]
mov edx, dword [rax + 8]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
call fcn.140309770
mov dword [rsp + 0x70], 0
mov esi, eax
test eax, eax
jne 0x140373ca2
lea rax, [rsp + 0xa4]
mov ecx, 0xc0
mov qword [rsp + 0x60], 0
lea r12, [rsp + 0xb8]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0xa0]
xor ebp, ebp
lea rdi, [rsp + 0x9c]
mov qword [rsp + 0x50], rax
lea r13, [rsp + 0x98]
mov qword [rsp + 0x80], r15
mov r15, rcx
mov qword [rsp + 0x88], r14
mov r14, r12
nop dword [rax]
mov rax, qword [rsp + 0x58]
mov r9, rdi
mov r8, r13
mov rdx, r14
mov dword [rsp + 0x98], 0
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x50]
mov dword [rsp + 0x9c], 0
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x40]
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0xa4], 0
call qword [rax + 0x28]
mov r12d, eax
test eax, eax
je 0x140373780
mov rax, qword [rsp + 0x40]
mov r14, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xb0]
call qword [rax + 0x20]
mov eax, esi
mov esi, r12d
mov qword [rsp + 0xb0], 0
cmp esi, 0x65
je 0x140373cb8
mov qword [rsp + 0xa8], rbp
test esi, esi
je 0x140373528
mov edi, dword [rsp + 0x48]
sub dword [rsp + 0x3c], edi
cmp esi, 0x65
je 0x140374008
mov dword [rsp + 0x4c], esi
jmp 0x140373970
mov r10d, dword [0x140442314]
test r10d, r10d
jne 0x140373be8
call fcn.14030ae50
test eax, eax
jne 0x140373928
call fcn.14034e2b0
test eax, eax
jne 0x140373928
test rbp, rbp
je 0x140373bf4
cmp r15, 0x7ffffeff
ja 0x140373928
mov rdx, r15
mov rcx, rbp
call fcn.14030edb0
mov rbx, rax
test rbx, rbx
je 0x140373928
mov eax, dword [0x140442314]
mov ebp, dword [rsp + 0x98]
test eax, eax
jne 0x140373c08
call fcn.14030ae50
test eax, eax
jne 0x140373a90
call fcn.14034e2b0
test eax, eax
jne 0x140373a90
lea edx, [rbp + rsi]
cmp qword [rsp + 0x60], 0
movsxd rdx, edx
je 0x140373c1e
test rdx, rdx
je 0x140374078
cmp rdx, 0x7ffffeff
ja 0x140373a90
mov rcx, qword [rsp + 0x60]
call fcn.14030edb0
mov rbp, rax
test rbp, rbp
je 0x140373a90
lea rax, [rbx + r15 - 0x28]
movsxd rcx, esi
mov qword [rax], 0
add rcx, rbp
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0
mov rdx, qword [rsp + 0xb8]
movsxd r8, dword [rsp + 0x98]
call sub.msvcrt.dll_memcpy
movsxd rax, dword [rsp + 0x70]
mov edx, dword [rsp + 0x98]
lea rcx, [rax + rax*4]
add esi, edx
mov dword [rbx + rcx*8 + 0xa0], edx
movsxd rdx, dword [rsp + 0xa0]
cmp dword [rsp + 0x74], edx
jg 0x140373ab0
xor edx, edx
lea rcx, [rax + rax*4]
mov dword [rbx + rcx*8 + 0xa4], edx
movsxd rdx, dword [rsp + 0x9c]
test edx, edx
jle 0x1403738e3
mov rcx, qword [rsp + 0x80]
xor r12d, r12d
cmp byte [rcx + rdx], 0x5e
sete r12b
lea rax, [rax + rax*4]
mov qword [rsp + 0x60], rbp
add r15, 0x28
mov rbp, rbx
add dword [rsp + 0x70], 1
mov dword [rbx + rax*8 + 0xa8], r12d
jmp 0x1403736c0
mov dword [rsp + 0x48], 0
mov rbp, qword [rsp + 0x118]
mov edi, dword [rsp + 0x3c]
jmp 0x140373408
mov rcx, rbp
xor edi, edi
call fcn.14030bf10
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x140373947
mov rax, qword [rsp + 0x40]
call qword [rax + 0x20]
mov rcx, qword [rsp + 0x60]
call fcn.14030bf10
mov rcx, rdi
call fcn.14030bf10
mov edi, dword [rsp + 0x48]
sub dword [rsp + 0x3c], edi
mov dword [rsp + 0x4c], 7
nop dword [rax]
mov rdi, qword [rsp + 0x130]
mov eax, dword [rsp + 0x120]
sub eax, dword [rsp + 0x3c]
mov dword [rdi], eax
mov rcx, qword [rsp + 0x68]
call fcn.140373090
xor ecx, ecx
call fcn.140373090
mov qword [rsp + 0x68], 0
mov rax, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x68]
mov qword [rax], rdi
mov eax, dword [rsp + 0x4c]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [r15 + 4], 0x2f
jne 0x14037330e
movzx ecx, byte [r15 + 5]
sub ecx, 0x30
cmp cl, 9
ja 0x14037330e
movzx ecx, byte [r15 + rdi + 1]
sub ecx, 0x30
cmp cl, 9
ja 0x140374120
movsx rax, cl
mov r8d, 1
lea r10, [r15 + rdi]
jmp 0x140373a2c
movsx rcx, cl
lea rax, [rax + rax*4]
add r8, 1
lea rax, [rcx + rax*2]
mov ecx, 0x80000000
cmp rax, rcx
jae 0x14037330e
movzx ecx, byte [r10 + r8 + 1]
mov r9d, r8d
sub ecx, 0x30
cmp cl, 9
jbe 0x140373a0e
add r9d, 1
add r13d, r9d
movsxd rdi, r13d
jmp 0x140373313
mov rax, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x110]
mov dword [rsp + 0xb8], 0
mov eax, dword [rax + 0x30]
mov dword [rsp + 0x48], eax
add eax, 1
mov dword [rdi + 0x30], eax
cmp eax, 0x3e8
jle 0x140373d9d
mov dword [rsp + 0x4c], 1
jmp 0x140373970
mov rdi, rbx
mov rcx, qword [rsp + 0x60]
call fcn.14030bf10
mov qword [rsp + 0x60], 0
jmp 0x140373932
mov rcx, qword [rsp + 0x78]
cmp byte [rcx + rdx], 0x2a
sete dl
movzx edx, dl
jmp 0x1403738b9
movsxd rbx, dword [rsp + 0x48]
sub dword [rsp + 0x3c], ebx
add qword [rsp + 0x118], rbx
jmp 0x140373280
mov r10, r15
sub r10, qword [rsp + 0x118]
lea eax, [rax + r10 + 1]
mov dword [rsp + 0x48], eax
mov edi, dword [rsp + 0x48]
mov dword [rsp + 0x4c], 1
sub dword [rsp + 0x3c], edi
jmp 0x140373970
mov r8d, dword [0x140442314]
test r8d, r8d
jne 0x140374048
call fcn.14030ae50
test eax, eax
jne 0x140373de9
call fcn.14034e2b0
test eax, eax
jne 0x140373de9
mov ecx, 0x40
call fcn.14030ef00
test rax, rax
je 0x140373de9
mov qword [rax], 0
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0
mov qword [rax + 0x38], 0
mov dword [rax], 3
jmp 0x140373ba2
cmp dword [r14], 3
jg 0x140373c2e
mov rdx, r14
mov r14, qword [r14 + 8]
test r14, r14
jne 0x140373b98
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x68], 0
mov qword [rax + 0x10], rdx
mov r14, qword [rsp + 0xa8]
mov qword [rdx + 8], rax
jne 0x140373576
mov qword [rsp + 0x68], r14
mov dword [rsp + 0x4c], 0
jmp 0x140373586
mfence
test rbp, rbp
jne 0x1403737b3
mov rcx, r15
call fcn.14030ef00
mov rbx, rax
jmp 0x1403737ce
mfence
lea edx, [rbp + rsi]
movsxd rdx, edx
cmp qword [rsp + 0x60], 0
jne 0x140373819
mov rcx, rdx
call fcn.14030ef00
mov rbp, rax
jmp 0x14037383c
mov qword [r14 + 0x18], rax
mov qword [rax + 8], r14
jmp 0x140373bb3
mov ecx, dword [rsp + 0x4c]
test ecx, ecx
jne 0x1403740dc
test r14, r14
je 0x140373c5b
cmp edx, 1
jne 0x140373c5b
cmp dword [r14], 5
jne 0x1403740ac
mov rax, qword [rsp + 0xa8]
jmp 0x140373c6f
mov edi, dword [rax]
cmp dword [r14], edi
jg 0x140373c98
mov rdx, r14
mov r14, qword [r14 + 8]
test r14, r14
jne 0x140373c68
mov qword [rsp + 0x68], rax
mov qword [rax + 0x10], rdx
mov r14, rax
mov qword [rdx + 8], rax
mov dword [rsp + 0x4c], 1
jmp 0x140373586
mov qword [r14 + 0x18], rax
mov qword [rax + 8], r14
jmp 0x140373c80
mov qword [rsp + 0x60], 0
xor eax, eax
xor ebp, ebp
cmp esi, 0x65
jne 0x140373752
movsxd rdx, dword [rsp + 0x70]
movsxd rbx, eax
mov rcx, rbp
lea rsi, [rdx + rdx*4]
shl rsi, 3
lea rdx, [rbx + rsi + 0xc0]
call fcn.14034f100
test rax, rax
je 0x1403740f1
xor edx, edx
mov r8d, 0x98
lea rdi, [rax + 0x40]
mov rcx, rax
call sub.msvcrt.dll_memset
cmp qword [rsp + 0x60], 0
lea rsi, [rdi + rsi + 0x58]
mov qword [rax + 0x20], rdi
mov r9, rax
mov dword [rax], 5
mov rax, qword [rsp + 0x110]
mov eax, dword [rax + 0x20]
mov dword [r9 + 0x94], eax
mov eax, dword [rsp + 0x70]
mov dword [r9 + 0x90], eax
je 0x140373d5c
mov rdi, qword [rsp + 0x60]
mov r8, rbx
mov rcx, rsi
mov qword [rsp + 0x40], r9
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rcx, rdi
call fcn.14030bf10
mov r9, qword [rsp + 0x40]
mov rdi, qword [r9 + 0x20]
mov eax, dword [rdi + 0x50]
mov dword [rsp + 0x70], eax
mov ecx, dword [rsp + 0x70]
test ecx, ecx
jle 0x140374110
lea edx, [rcx - 1]
lea rax, [rdi + 0x58]
lea rdx, [rdx + rdx*4]
lea rcx, [rdi + rdx*8 + 0x80]
nop dword [rax + rax]
movsxd rdx, dword [rax + 8]
mov qword [rax], rsi
add rax, 0x28
add rsi, rdx
cmp rcx, rax
jne 0x140373d80
mov rbp, r9
xor esi, esi
jmp 0x140373752
mov rcx, qword [rsp + 0x110]
lea rdx, [r15 + 1]
lea r8d, [rbx - 1]
lea r12, [rsp + 0xb8]
lea r9, [rsp + 0xa8]
mov qword [rsp + 0x20], r12
call fcn.140373230
mov r10, r15
sub r10, qword [rsp + 0x118]
mov esi, eax
mov eax, dword [rsp + 0xb8]
lea eax, [rax + r10 + 1]
mov dword [rsp + 0x48], eax
jmp 0x140373520
mov rcx, qword [rsp + 0xa8]
call fcn.140373090
mov dword [rsp + 0x4c], 7
jmp 0x140373985
mov esi, eax
xor r15d, r15d
jmp 0x140373502
mov r9d, dword [0x140442314]
movsxd rbx, dword [rsp + 0x98]
test r9d, r9d
jne 0x14037408a
call fcn.14030ae50
test eax, eax
jne 0x140373f1f
call fcn.14034e2b0
test eax, eax
jne 0x140373f1f
add rbx, 0xc0
mov rcx, rbx
call fcn.14030ef00
mov r15, rax
test rax, rax
je 0x140373f1f
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
lea rax, [r15 + 0x40]
mov dword [r15], 5
lea rcx, [r15 + 0xc0]
mov qword [r15 + 0x20], rax
mov eax, dword [rsp + 0x40]
mov dword [r15 + 0x90], 1
mov dword [r15 + 0x94], eax
movsxd r8, dword [rsp + 0x98]
mov qword [r15 + 0x98], rcx
mov rdx, qword [rsp + 0xb8]
mov dword [r15 + 0xa0], r8d
call sub.msvcrt.dll_memcpy
mov ebx, dword [rsp + 0xa0]
cmp ebx, edi
jl 0x140374050
mov rax, qword [rsp + 0x110]
mov esi, dword [rax + 0x18]
test esi, esi
je 0x140373502
movsxd rax, dword [rsp + 0x9c]
xor edx, edx
jmp 0x140373f07
sub rax, 1
cmp byte [rbp + rax], 0x5e
jne 0x1403740c6
mov dword [r15 + 0xa8], 1
mov edx, 1
mov ecx, eax
test eax, eax
jg 0x140373ee8
test dl, dl
je 0x140373f18
mov dword [rsp + 0x9c], eax
xor esi, esi
jmp 0x140373502
mov ebx, dword [rsp + 0xa0]
mov esi, 7
jmp 0x140373502
mov r11d, dword [0x140442314]
mov ebp, eax
test r11d, r11d
jne 0x140374092
mov byte [rsp + 0x48], dl
call fcn.14030ae50
movzx edx, byte [rsp + 0x48]
test eax, eax
jne 0x140373961
mov byte [rsp + 0x48], dl
call fcn.14034e2b0
movzx edx, byte [rsp + 0x48]
test eax, eax
jne 0x140373961
mov ecx, 0x40
mov byte [rsp + 0x48], dl
call fcn.14030ef00
movzx edx, byte [rsp + 0x48]
test rax, rax
mov r9, rax
je 0x140373961
mov r10, r15
sub r10, qword [rsp + 0x118]
mov qword [rax + 8], 0
mov dword [rax], edx
mov dword [rax + 4], ebp
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0
mov qword [rax + 0x38], 0
mov qword [rsp + 0xa8], rax
lea eax, [r13 + r10]
mov dword [rsp + 0x48], eax
jmp 0x14037353c
mov r10, r15
sub r10, qword [rsp + 0x118]
sub dword [rax + 0x30], 1
lea eax, [r10 + 1]
sub dword [rsp + 0x3c], eax
nop word [rax + rax]
mov eax, dword [rsp + 0x120]
sub eax, dword [rsp + 0x3c]
cmp qword [rsp + 0x68], 0
mov rdi, qword [rsp + 0x130]
je 0x140374101
test byte [rsp + 0x4c], 1
je 0x140374101
mov dword [rdi], eax
mov dword [rsp + 0x4c], 1
jmp 0x140373985
mfence
jmp 0x140373b3a
movsxd rax, ebx
cmp byte [rbp + rax], 0x2a
jne 0x140373ec5
mov dword [r15 + 0xa4], 1
add ebx, 1
mov dword [rsp + 0xa0], ebx
jmp 0x140373ec5
mov rcx, qword [rsp + 0x60]
mov rdi, rbx
call fcn.14030bf10
jmp 0x140373a93
mfence
jmp 0x140373e3f
mfence
jmp 0x140373f6e
xor ebx, ebx
jmp 0x14037344c
cmp edx, 5
je 0x1403740e9
cmp dword [r14], 1
jne 0x1403740e9
mov rcx, qword [rsp + 0xa8]
call fcn.140373090
mov dword [rsp + 0x4c], 1
jmp 0x140373985
test dl, dl
je 0x140373f18
mov dword [rsp + 0x9c], ecx
xor esi, esi
jmp 0x140373502
mov rcx, r9
call fcn.140373090
jmp 0x140373985
mov rax, r14
jmp 0x140373562
mov rcx, rbp
mov rdi, rax
call fcn.14030bf10
jmp 0x140373932
mov dword [rdi], eax
mov dword [rsp + 0x4c], 0
jmp 0x14037399f
mov qword [rsp + 0xa8], r9
mov edx, dword [r9]
jmp 0x14037353c
mov r9d, 1
jmp 0x140373a41
je 0x140374008
jmp 0x1403732d0