Function at 0x140059a4e
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, 0xf8
mov byte [rsp + 0x3b], r9b
mov r14, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x1400d80e0]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rdi, rdx
shr rdi, 0x20
mov rbp, r8
shr rbp, 0x20
movaps xmm0, xmmword [0x1400b1f20]
movaps xmmword [rsp + 0x80], xmm0
xor eax, eax
mov qword [rsp + 0x60], rax
mov ecx, 0x1400
mov edx, 2
xor r8d, r8d
call fcn.140012298
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
mov ecx, 0x1400
mov edx, 4
xor r8d, r8d
call fcn.140012298
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rax
mov ecx, 0x1400
mov edx, 8
xor r8d, r8d
call fcn.140012298
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rax
xor eax, eax
cmp edi, ebp
setl al
xor ecx, ecx
cmp ebx, r14d
setl cl
cmovne eax, ecx
cmp al, 1
mov qword [rsp + 0x58], rsi
jne 0x140059fe7
mov r15, rdi
cmp byte [rsp + 0x3b], 0
mov rax, qword [rsp + 0x60]
cmovne eax, r15d
mov qword [rsp + 0x60], rax
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x48], rbp
mov rcx, rsi
mov qword [rsp + 0x40], rbx
mov edx, ebx
mov r8d, 0x1863
xor r9d, r9d
call fcn.14005833c
mov rbx, rax
mov ecx, dword [rsi + 0x178]
movzx ebp, word [rax]
test bpl, 0x10
jne 0x140059bf0
movsxd rax, ecx
movsxd r8, r15d
lea rdx, [rax + rax*4]
lea rdx, [rdx*4 - 4]
mov rcx, rax
test rax, rax
je 0x140059bc3
mov rbp, qword [rbx + 0x18]
mov eax, dword [rbp + rdx - 0x10]
cmp eax, 0x20
je 0x140059baf
and eax, 0xfffffcff
cmp eax, 0xd820
jne 0x140059bc3
cmp rcx, r8
jle 0x140059bc3
lea rax, [rcx - 1]
cmp dword [rbp + rdx], 0
lea rdx, [rdx - 0x14]
je 0x140059b8e
xor eax, eax
mov r9, qword [rsp + 0x48]
cmp ecx, r9d
setl al
xor r8d, r8d
mov r14, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x40]
cmp ebp, r14d
setl r8b
cmove r8d, eax
mov eax, ebp
mov dword [rsp + 0x3c], ebp
jmp 0x140059c4a
lea edx, [rcx - 3]
xor r8d, r8d
cmp ecx, 3
cmovl edx, r8d
cmp byte [rbx + 0x20], 0
cmove edx, ecx
test bpl, 0x20
jne 0x140059c1e
mov ecx, edx
mov rbp, qword [rsp + 0x40]
mov eax, ebp
mov dword [rsp + 0x3c], ebp
mov r14, qword [rsp + 0x50]
jmp 0x140059c45
test edx, edx
mov r14, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x40]
je 0x140059c3b
dec edx
xor r8d, r8d
mov ecx, edx
mov eax, ebp
mov dword [rsp + 0x3c], ebp
jmp 0x140059c45
lea eax, [rbp - 1]
mov dword [rsp + 0x3c], eax
xor r8d, r8d
mov r9, qword [rsp + 0x48]
xor r10d, r10d
mov rdx, r15
cmp edx, r9d
setl r10b
xor r11d, r11d
cmp ebp, r14d
setl r11b
cmovne r10d, r11d
cmp byte [rsp + 0x3b], 0
mov r15d, ecx
cmovne r15d, r9d
movzx eax, r8b
cmovne eax, r11d
mov dword [rsp + 0x70], eax
cmp ecx, r9d
cmovle r15d, ecx
mov dword [rsp + 0x74], r15d
cmp r10b, 1
jne 0x140059f65
mov qword [rsp + 0x78], rbx
xor eax, eax
cmp edx, dword [rsp + 0x74]
setl al
xor ecx, ecx
cmp ebp, dword [rsp + 0x3c]
setl cl
cmove ecx, eax
cmp cl, 1
jne 0x140059f65
mov rax, qword [rbx + 0x18]
movsxd rcx, edx
lea rcx, [rcx + rcx*4]
mov r15d, dword [rax + rcx*4]
cmp r15d, 0xdfff
je 0x140059f42
mov qword [rsp + 0x68], rdx
mov ebp, edx
mov ecx, r15d
and ecx, 0xffffff00
cmp ecx, 0xd800
je 0x140059d03
cmp ecx, 0xda00
je 0x140059d1b
cmp ecx, 0xd900
jne 0x140059d4a
cmp byte [rsi + 0x1197], 0
je 0x140059d30
mov rcx, qword [rsi + 0x10d0]
movzx edx, r15b
lea rcx, [rcx + rdx*2]
add rcx, 0x214
jmp 0x140059d46
mov rcx, qword [rsi + 0x10d0]
movzx edx, r15b
lea rcx, [rcx + rdx*2]
add rcx, 0x14
jmp 0x140059d46
mov rcx, qword [rsi + 0x10d0]
movzx edx, r15b
lea rcx, [rcx + rdx*2]
add rcx, 0x614
movzx r15d, word [rcx]
mov ecx, r15d
and ecx, 0xffffff00
cmp ecx, 0xdc00
je 0x140059d7b
cmp ecx, 0xdd00
jne 0x140059d95
mov rcx, qword [rsi + 0x10d0]
movzx edx, r15b
lea rcx, [rcx + rdx*2]
add rcx, 0x414
jmp 0x140059d91
mov rcx, qword [rsi + 0x10d0]
movzx edx, r15b
lea rcx, [rcx + rdx*2]
add rcx, 0x814
movzx r15d, word [rcx]
lea ecx, [r15 - 0x10001]
cmp ecx, 0xffffe
ja 0x140059de2
lea r12d, [r15 + 0xff0000]
shr r12d, 0xa
or r12d, 0xd800
mov word [rsp + 0xd0], r12w
mov ecx, r15d
and ecx, 0x3ff
or ecx, 0xdc00
mov word [rsp + 0xd2], cx
mov word [rsp + 0xd4], 0
jmp 0x140059df8
mov word [rsp + 0xd0], r15w
mov word [rsp + 0xd2], 0
mov r12d, r15d
movsxd rcx, ebp
lea r14, [rcx + rcx*4]
mov r13d, dword [rax + r14*4 + 4]
mov rbx, qword [rax + r14*4 + 8]
mov eax, r15d
and eax, 0xfffffe00
cmp eax, 0xdc00
jne 0x140059edd
movzx eax, r15b
cmp eax, 0x20
jb 0x140059edd
cmp eax, 0x7f
je 0x140059edd
mov rax, qword [rsi + 0x10d0]
mov ecx, dword [rax + 0xc]
mov edx, r15d
call fcn.1400821ea
mov byte [rsp + 0xc4], r15b
mov r9d, 1
test al, al
je 0x140059e82
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x18]
mov rcx, qword [rsp + 0x68]
inc ecx
mov qword [rsp + 0x68], rcx
movsxd rcx, ecx
lea rcx, [rcx + rcx*4]
mov al, byte [rax + rcx*4]
mov byte [rsp + 0xc5], al
mov r9d, 2
lea r15, [rsp + 0xc8]
mov rax, qword [rsi + 0x10d0]
mov ecx, dword [rax + 0xc]
mov qword [rsp + 0x20], r15
mov dword [rsp + 0x28], 4
xor edx, edx
lea r8, [rsp + 0xc4]
call sub.KERNEL32.dll_MultiByteToWideChar
test eax, eax
jle 0x140059edd
mov esi, eax
lea r8, [rsi + rsi]
lea rcx, [rsp + 0xd0]
mov rdx, r15
call fcn.140085310
mov word [rsp + rsi*2 + 0xd0], 0
movzx r12d, word [rsp + 0xd0]
test r12w, r12w
je 0x140059f0a
lea rsi, [rsp + 0xd2]
mov rcx, rdi
mov edx, r12d
mov r8d, r13d
mov r9, rbx
call fcn.14006194f
movzx r12d, word [rsi]
add rsi, 2
test r12w, r12w
jne 0x140059eeb
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx + 0x18]
mov ecx, dword [rax + r14*4 + 0x10]
test ecx, ecx
je 0x140059f33
add ebp, ecx
movsxd rcx, ebp
lea rcx, [rcx + rcx*4]
mov r15d, dword [rax + rcx*4]
mov rsi, qword [rsp + 0x58]
jmp 0x140059cd9
mov rsi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x68]
inc edx
xor eax, eax
cmp edx, dword [rsp + 0x48]
setl al
xor ecx, ecx
mov rbp, qword [rsp + 0x40]
cmp ebp, r14d
setl cl
cmovne eax, ecx
test al, al
jne 0x140059c98
cmp byte [rsp + 0x70], 0
je 0x140059f98
mov r9, qword [rsi + 0x80]
mov rcx, rdi
mov dx, 0xd
xor r8d, r8d
call fcn.14006194f
mov r9, qword [rsi + 0x80]
mov rcx, rdi
mov dx, 0xa
xor r8d, r8d
call fcn.14006194f
mov rax, qword [rsp + 0x40]
inc eax
mov qword [rsp + 0x40], rax
cmp byte [rbx + 0xc], 0
mov rbp, qword [rsp + 0x48]
je 0x140059fc0
mov rcx, qword [rbx + 0x18]
call fcn.140012312
mov rcx, rbx
call fcn.140012312
xor eax, eax
mov rdx, qword [rsp + 0x60]
cmp edx, ebp
setl al
xor ecx, ecx
mov rbx, qword [rsp + 0x40]
cmp ebx, r14d
setl cl
cmove ecx, eax
mov r15d, edx
test cl, cl
jne 0x140059b52
mov r9, qword [rsi + 0x80]
lea rcx, [rsp + 0x80]
xor edx, edx
xor r8d, r8d
call fcn.14006194f
mov eax, dword [rsp + 0x170]
test eax, eax
jle 0x14005a086
mov r12, qword [rsp + 0x168]
mov r14b, byte [rsp + 0x160]
mov ebp, eax
xor ebx, ebx
xor eax, eax
mov r15d, eax
mov edx, dword [r12 + rbx*4]
test edx, edx
je 0x14005a077
mov al, 1
cmp edx, 1
je 0x14005a07a
mov eax, dword [rsp + 0x88]
mov rsi, qword [rsp + 0xb0]
mov r9, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx + 0x10c0]
mov rdi, qword [rcx]
mov byte [rsp + 0x30], r14b
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
mov rsi, qword [rsp + 0x58]
call qword [rdi + 0x58]
mov eax, r15d
inc rbx
cmp rbp, rbx
jne 0x14005a021
test al, 1
jne 0x14005a0af
mov rcx, qword [rsp + 0x90]
call fcn.140012312
mov rcx, qword [rsp + 0xa0]
call fcn.140012312
mov rcx, qword [rsp + 0xb0]
call fcn.140012312
jmp 0x14005a10f
mov rcx, qword [rsi + 0x11a8]
call fcn.140012312
mov rcx, qword [rsi + 0x11b0]
call fcn.140012312
mov rcx, qword [rsi + 0x11b8]
call fcn.140012312
mov rax, qword [rsp + 0x90]
mov qword [rsi + 0x11a8], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsi + 0x11b0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsi + 0x11b8], rax
mov rax, qword [rsp + 0x88]
mov qword [rsi + 0x11c0], rax
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1400841b0
nop
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret