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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov rax, qword [0x1000355a0]
xor rax, rsp
mov qword [rsp + 0x88], rax
xor ebx, ebx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x2c], r9d
mov r15, rdx
lea r10, [rsp + 0x68]
mov dword [rsp + 0x28], 1
mov word [rsp + 0x24], bx
mov edi, ebx
mov r13d, ebx
mov dword [rsp + 0x20], ebx
mov r14d, ebx
mov r12d, ebx
mov esi, ebx
mov ecx, ebx
mov r11, r8
mov al, byte [r8]
cmp al, 0x20
je 0x100031327
cmp al, 9
je 0x100031327
cmp al, 0xa
je 0x100031327
cmp al, 0xd
jne 0x10003132d
add r8, 1
jmp 0x100031314
mov bpl, byte [rsp + 0x108]
mov dl, byte [r8]
add r8, 1
cmp ecx, 5
jg 0x100031519
je 0x1000314fb
cmp ecx, ebx
mov r9d, ecx
je 0x1000314b7
sub r9d, 1
je 0x100031476
sub r9d, 1
je 0x10003143f
sub r9d, 1
je 0x100031402
sub r9d, 1
jne 0x1000315e6
cmp edi, ebx
lea r13d, [r9 + 1]
mov dword [rsp + 0x20], r13d
jne 0x1000313bc
jmp 0x100031396
mov dl, byte [r8]
sub esi, r13d
add r8, r13
cmp dl, 0x30
je 0x10003138d
jmp 0x1000313bc
cmp dl, 0x39
jg 0x1000313c1
cmp edi, 0x19
jae 0x1000313b6
sub dl, 0x30
add edi, r13d
mov byte [r10], dl
add r10, r13
sub esi, r13d
mov dl, byte [r8]
add r8, r13
cmp dl, 0x30
jge 0x10003139d
cmp dl, 0x2b
je 0x1000313f5
cmp dl, 0x2d
je 0x1000313f5
cmp dl, 0x43
jle 0x1000315f0
cmp dl, 0x45
jle 0x1000313eb
cmp dl, 0x63
jle 0x1000315f0
cmp dl, 0x65
jg 0x1000315f0
mov ecx, 6
jmp 0x100031335
sub r8, r13
mov ecx, 0xb
jmp 0x100031335
mov r13d, 1
jmp 0x10003142b
cmp dl, 0x39
jg 0x100031430
cmp edi, 0x19
jae 0x100031422
sub dl, 0x30
add edi, r13d
mov byte [r10], dl
add r10, r13
jmp 0x100031425
add esi, r13d
mov dl, byte [r8]
add r8, r13
cmp dl, 0x30
jge 0x10003140a
cmp dl, bpl
jne 0x1000313c1
mov ecx, 4
jmp 0x100031335
lea eax, [rdx - 0x31]
cmp al, 8
ja 0x100031454
mov ecx, 3
sub r8, 1
jmp 0x100031335
cmp dl, bpl
jne 0x100031463
mov ecx, 5
jmp 0x100031335
cmp dl, 0x30
jne 0x100031644
mov ecx, 1
jmp 0x100031335
lea eax, [rdx - 0x31]
mov r13d, 1
cmp al, 8
ja 0x10003148f
lea ecx, [r13 + 2]
sub r8, r13
jmp 0x100031335
cmp dl, bpl
je 0x100031435
cmp dl, 0x2b
je 0x1000313f5
cmp dl, 0x2d
je 0x1000313f5
cmp dl, 0x30
jne 0x1000313cb
mov ecx, r13d
jmp 0x100031335
lea eax, [rdx - 0x31]
cmp al, 8
jbe 0x100031446
cmp dl, bpl
je 0x100031459
cmp dl, 0x2b
je 0x1000314ec
cmp dl, 0x2d
je 0x1000314db
cmp dl, 0x30
je 0x10003146c
sub r8, 1
jmp 0x100031647
mov ecx, 2
mov word [rsp + 0x24], 0x8000
jmp 0x100031335
mov ecx, 2
mov word [rsp + 0x24], bx
jmp 0x100031335
sub dl, 0x30
mov dword [rsp + 0x20], 1
cmp dl, 9
ja 0x100031644
mov ecx, 4
jmp 0x10003144b
mov r9d, ecx
sub r9d, 6
je 0x1000315ca
sub r9d, 1
je 0x1000315a6
sub r9d, 1
je 0x10003157a
sub r9d, 1
je 0x1000315f5
sub r9d, 2
jne 0x1000315e6
cmp dword [rsp + 0x100], ebx
je 0x1000314d2
cmp dl, 0x2b
lea r11, [r8 - 1]
je 0x100031570
cmp dl, 0x2d
jne 0x100031644
or dword [rsp + 0x28], 0xffffffff
mov ecx, 7
jmp 0x100031335
mov ecx, 7
jmp 0x100031335
mov r14d, 1
jmp 0x100031588
mov dl, byte [r8]
add r8, r14
cmp dl, 0x30
je 0x100031582
sub dl, 0x31
sub r8, r14
cmp dl, 8
ja 0x100031647
mov ecx, 9
jmp 0x100031335
lea eax, [rdx - 0x31]
cmp al, 8
ja 0x1000315b7
mov ecx, 9
jmp 0x10003144b
cmp dl, 0x30
jne 0x100031644
mov ecx, 8
jmp 0x100031335
lea eax, [rdx - 0x31]
lea r11, [r8 - 2]
cmp al, 8
jbe 0x1000315ad
cmp dl, 0x2b
je 0x1000315e1
cmp dl, 0x2d
je 0x100031561
jmp 0x1000315b7
mov ecx, 7
cmp ecx, 0xa
je 0x100031647
jmp 0x100031335
sub r8, r13
jmp 0x100031647
mov r14d, 1
mov r9b, 0x30
jmp 0x100031620
cmp dl, 0x39
jg 0x10003163a
lea ecx, [r12 + r12*4]
movsx eax, dl
lea r12d, [rax + rcx*2 - 0x30]
cmp r12d, 0x1450
jg 0x100031627
mov dl, byte [r8]
add r8, r14
cmp dl, r9b
jge 0x100031600
jmp 0x10003163a
mov r12d, 0x1451
jmp 0x10003163a
cmp dl, 0x39
jg 0x10003163f
mov dl, byte [r8]
add r8, r14
cmp dl, r9b
jge 0x10003162f
sub r8, r14
jmp 0x100031647
mov r8, r11
cmp r13d, ebx
mov qword [r15], r8
je 0x100031aa5
cmp edi, 0x18
jbe 0x100031672
mov al, byte [rsp + 0x7f]
cmp al, 5
jl 0x100031666
add al, 1
mov byte [rsp + 0x7f], al
sub r10, 1
mov edi, 0x18
add esi, 1
cmp edi, ebx
jbe 0x100031a99
sub r10, 1
or r13d, 0xffffffff
jmp 0x10003168e
add edi, r13d
add esi, 1
sub r10, 1
cmp byte [r10], bl
je 0x100031684
lea r8, [rsp + 0x48]
lea rcx, [rsp + 0x68]
mov edx, edi
call fcn.100031094
cmp dword [rsp + 0x28], ebx
jge 0x1000316ad
neg r12d
add r12d, esi
cmp r14d, ebx
jne 0x1000316bd
add r12d, dword [rsp + 0xf0]
cmp dword [rsp + 0x20], ebx
jne 0x1000316cb
sub r12d, dword [rsp + 0xf8]
cmp r12d, 0x1450
jg 0x100031a84
cmp r12d, 0xffffebb0
jl 0x100031a73
lea rbp, [0x1000366a0]
sub rbp, 0x60
cmp r12d, ebx
je 0x100031a5d
jge 0x100031709
lea rbp, [0x100036800]
neg r12d
sub rbp, 0x60
neg dword [rsp + 0x2c]
sbb ax, ax
and ax, word [rsp + 0x48]
cmp r12d, ebx
mov word [rsp + 0x48], ax
je 0x100031a5d
mov r9w, 0x7fff
mov edi, 0x80000000
mov eax, r12d
sar r12d, 3
add rbp, 0x54
and eax, 7
mov dword [rsp + 0x28], r12d
cmp eax, ebx
je 0x100031a54
cdqe
mov r11w, 0x8000
lea rcx, [rax + rax*2]
lea rdx, [rbp + rcx*4]
cmp word [rdx], r11w
jb 0x100031784
mov rax, qword [rdx]
lea rcx, [rsp + 0x58]
mov qword [rcx], rax
mov eax, dword [rdx + 8]
lea rdx, [rsp + 0x58]
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0x58]
shr rax, 0x10
sub eax, 1
mov dword [rsp + 0x5a], eax
movzx ecx, word [rdx + 0xa]
mov eax, ebx
movzx eax, word [rsp + 0x52]
movzx esi, cx
and cx, r9w
mov dword [rsp + 0x38], ebx
xor si, ax
and ax, r9w
mov dword [rsp + 0x3c], ebx
and si, r11w
cmp ax, r9w
lea r8d, [rax + rcx]
mov dword [rsp + 0x40], ebx
jae 0x100031a3c
cmp cx, r9w
jae 0x100031a3c
cmp r8w, 0xbffd
ja 0x100031a3c
cmp r8w, 0x3fbf
ja 0x1000317e2
mov dword [rsp + 0x50], ebx
jmp 0x100031a4c
cmp ax, bx
jne 0x10003180e
mov eax, dword [rsp + 0x50]
add r8w, 1
btr eax, 0x1f
cmp eax, ebx
jne 0x10003180e
cmp dword [rsp + 0x4c], ebx
jne 0x10003180e
cmp dword [rsp + 0x48], ebx
jne 0x10003180e
mov word [rsp + 0x52], bx
jmp 0x100031a54
cmp cx, bx
jne 0x10003182c
mov eax, dword [rdx + 8]
add r8w, 1
btr eax, 0x1f
cmp eax, ebx
jne 0x10003182c
cmp dword [rdx + 4], ebx
jne 0x10003182c
cmp dword [rdx], ebx
je 0x1000317d9
mov r13d, ebx
lea rcx, [rsp + 0x3c]
mov r10d, 5
cmp r10d, ebx
lea eax, [r13 + r13]
mov dword [rsp + 0x2c], r10d
movsxd r9, eax
jle 0x1000318a9
mov edi, r13d
lea r14, [rsp + r9 + 0x48]
lea r15, [rdx + 8]
and edi, 1
movzx eax, word [r15]
movzx r9d, word [r14]
mov r11d, ebx
imul r9d, eax
mov eax, dword [rcx - 4]
lea r12d, [rax + r9]
cmp r12d, eax
jb 0x10003187b
cmp r12d, r9d
jae 0x100031881
mov r11d, 1
cmp r11d, ebx
mov dword [rcx - 4], r12d
je 0x10003188e
add word [rcx], 1
mov r11d, dword [rsp + 0x2c]
add r14, 2
sub r15, 2
sub r11d, 1
cmp r11d, ebx
mov dword [rsp + 0x2c], r11d
jg 0x10003185b
sub r10d, 1
add rcx, 2
add r13d, 1
cmp r10d, ebx
jg 0x10003183a
mov r10d, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x38]
add r8w, 0xc002
cmp r8w, bx
jle 0x100031917
bt r10d, 0x1f
jb 0x100031911
mov r11d, dword [rsp + 0x3c]
mov edx, r9d
add r10d, r10d
shr edx, 0x1f
add r9d, r9d
mov ecx, r11d
shr ecx, 0x1f
lea eax, [r11 + r11]
add r8w, 0xffff
or eax, edx
or r10d, ecx
cmp r8w, bx
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x38], r9d
jg 0x1000318d0
cmp r8w, bx
jg 0x10003198e
add r8w, 0xffff
jns 0x10003198e
movzx eax, r8w
neg ax
movzx edx, ax
add r8w, dx
test byte [rsp + 0x38], 1
je 0x100031937
add ebx, 1
mov r11d, dword [rsp + 0x3c]
mov eax, r10d
shr r9d, 1
mov ecx, r11d
shl eax, 0x1f
shr r11d, 1
shl ecx, 0x1f
or r11d, eax
shr r10d, 1
or r9d, ecx
sub rdx, 1
mov dword [rsp + 0x3c], r11d
mov dword [rsp + 0x38], r9d
jne 0x10003192d
mov dword [rsp + 0x20], ebx
xor ebx, ebx
mov dword [rsp + 0x40], r10d
mov eax, dword [rsp + 0x20]
cmp eax, ebx
je 0x10003198e
movzx eax, r9w
or ax, 1
mov word [rsp + 0x38], ax
mov r9d, dword [rsp + 0x38]
jmp 0x100031993
mov ax, word [rsp + 0x38]
mov r11w, 0x8000
mov edi, 0x80000000
cmp ax, r11w
ja 0x1000319b3
and r9d, 0x1ffff
cmp r9d, 0x18000
jne 0x100031a09
mov eax, dword [rsp + 0x3a]
or r13d, 0xffffffff
cmp eax, r13d
jne 0x100031a02
mov eax, dword [rsp + 0x3e]
mov dword [rsp + 0x3a], ebx
cmp eax, r13d
jne 0x1000319f4
movzx eax, word [rsp + 0x42]
mov dword [rsp + 0x3e], ebx
cmp ax, 0xffff
jne 0x1000319e9
mov word [rsp + 0x42], r11w
add r8w, 1
jmp 0x1000319fb
add ax, 1
mov word [rsp + 0x42], ax
jmp 0x1000319fb
add eax, 1
mov dword [rsp + 0x3e], eax
mov r10d, dword [rsp + 0x40]
jmp 0x100031a09
add eax, 1
mov dword [rsp + 0x3a], eax
mov r12d, dword [rsp + 0x28]
mov r9w, 0x7fff
cmp r8w, r9w
jae 0x100031a3c
movzx eax, word [rsp + 0x3a]
or r8w, si
mov dword [rsp + 0x4e], r10d
mov word [rsp + 0x48], ax
mov eax, dword [rsp + 0x3c]
mov word [rsp + 0x52], r8w
mov dword [rsp + 0x4a], eax
jmp 0x100031a54
neg si
sbb eax, eax
and eax, edi
add eax, 0x7fff8000
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x4c], ebx
cmp r12d, ebx
jne 0x10003172d
mov eax, dword [rsp + 0x50]
movzx ecx, word [rsp + 0x48]
mov edx, dword [rsp + 0x4a]
mov edi, dword [rsp + 0x4e]
shr eax, 0x10
jmp 0x100031ab4
mov cx, bx
mov ax, bx
mov edi, ebx
mov edx, ebx
mov ebx, 1
jmp 0x100031ab4
mov edx, ebx
mov cx, bx
mov ax, 0x7fff
mov ebx, 2
mov edi, 0x80000000
jmp 0x100031ab4
mov cx, bx
mov ax, bx
mov edi, ebx
mov edx, ebx
jmp 0x100031ab4
mov cx, bx
mov ax, bx
mov edi, ebx
mov edx, ebx
mov ebx, 4
mov r8, qword [rsp + 0x30]
or ax, word [rsp + 0x24]
mov word [r8 + 0xa], ax
mov eax, ebx
mov word [r8], cx
mov dword [r8 + 2], edx
mov dword [r8 + 6], edi
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.100023280
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret