Function at 0x140054814
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 ebx, r9d
mov r14, r8
mov r15, rdx
mov rsi, rcx
mov rax, qword [0x1400cb0e0]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov r13, rdx
shr r13, 0x20
mov rax, r8
shr rax, 0x20
mov qword [rsp + 0x48], rax
mov eax, 0x1400
movq xmm0, rax
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp], xmm0
mov ecx, 0x1400
mov edx, 2
xor r8d, r8d
call fcn.140011888
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], rax
mov ecx, 0x1400
mov edx, 4
xor r8d, r8d
call fcn.140011888
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
mov ecx, 0x1400
mov edx, 8
xor r8d, r8d
call fcn.140011888
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rax
mov byte [rsp + 0x3b], bl
test bl, bl
mov eax, 0
cmovne eax, r13d
mov dword [rsp + 0x44], eax
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x68], r14
cmp r15d, r14d
jne 0x1400548e4
cmp r13d, dword [rsp + 0x48]
jge 0x140054cfb
mov r8d, 0x170a
xor r9d, r9d
mov rcx, rsi
mov edx, r15d
call fcn.1400533ce
mov ebx, dword [rsi + 0x178]
movzx ecx, word [rax]
test cl, 0x10
jne 0x14005496e
movsxd rbx, ebx
movsxd r8, r13d
lea rcx, [rbx + rbx*4]
lea rcx, [rcx*4 - 4]
mov rdi, rbx
test rbx, rbx
je 0x140054955
mov rdx, qword [rax + 0x18]
mov ebx, dword [rdx + rcx - 0x10]
cmp ebx, 0x20
je 0x140054941
and ebx, 0xfffffcff
cmp ebx, 0xd820
jne 0x140054955
cmp rdi, r8
jle 0x140054955
lea rbx, [rdi - 1]
mov edx, dword [rdx + rcx]
add rcx, 0xffffffffffffffec
test edx, edx
je 0x14005491e
cmp edi, dword [rsp + 0x48]
setl cl
mov dword [rsp + 0x3c], ecx
cmp r15d, r14d
setl cl
je 0x14005499b
mov dword [rsp + 0x3c], ecx
jmp 0x14005499b
cmp byte [rax + 0x20], 0
mov edi, ebx
je 0x140054984
lea edi, [rbx - 3]
cmp ebx, 3
mov edx, 0
cmovl edi, edx
test cl, 0x20
je 0x140054993
test edi, edi
je 0x140054ce4
dec edi
mov dword [rsp + 0x3c], 0
mov ecx, r15d
mov dword [rsp + 0x40], r15d
cmp byte [rsp + 0x3b], 0
je 0x1400549be
mov rcx, qword [rsp + 0x48]
cmp edi, ecx
cmovg edi, ecx
cmp r15d, r14d
setl cl
mov dword [rsp + 0x3c], ecx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x70], rdi
jmp 0x140054c59
mov rdx, qword [rax + 0x18]
movsxd rcx, r13d
lea rcx, [rcx + rcx*4]
mov r12d, dword [rdx + rcx*4]
cmp r12d, 0xdfff
je 0x140054c56
mov qword [rsp + 0x58], r13
mov edi, r13d
jmp 0x140054a0a
add edi, ecx
movsxd rcx, edi
lea rcx, [rcx + rcx*4]
mov r12d, dword [rdx + rcx*4]
mov rsi, qword [rsp + 0x50]
movsxd rcx, edi
lea r14, [rcx + rcx*4]
mov r15d, dword [rdx + r14*4 + 4]
mov r13, qword [rdx + r14*4 + 8]
mov eax, r12d
and eax, 0xffffff00
cmp eax, 0xd800
je 0x140054a41
cmp eax, 0xda00
je 0x140054a58
cmp eax, 0xd900
jne 0x140054a86
cmp byte [rsi + 0x118f], 0
je 0x140054a6d
mov rax, qword [rsi + 0x10c8]
movzx ecx, r12b
lea rax, [rax + rcx*2]
add rax, 0x214
jmp 0x140054a82
mov rax, qword [rsi + 0x10c8]
movzx ecx, r12b
lea rax, [rax + rcx*2]
add rax, 0x14
jmp 0x140054a82
mov rax, qword [rsi + 0x10c8]
movzx ecx, r12b
lea rax, [rax + rcx*2]
add rax, 0x614
movzx r12d, word [rax]
mov eax, r12d
and eax, 0xffffff00
cmp eax, 0xf000
je 0x140054ab3
cmp eax, 0xf100
jne 0x140054acc
mov rax, qword [rsi + 0x10c8]
movzx ecx, r12b
lea rax, [rax + rcx*2]
add rax, 0x414
jmp 0x140054ac8
mov rax, qword [rsi + 0x10c8]
movzx ecx, r12b
lea rax, [rax + rcx*2]
add rax, 0x814
movzx r12d, word [rax]
lea eax, [r12 - 0x10001]
cmp eax, 0xffffe
ja 0x140054b14
lea eax, [r12 - 0x10000]
mov ebx, eax
shr ebx, 0xa
or ebx, 0xd800
mov word [rsp + 0xd0], bx
and eax, 0x3ff
or eax, 0xdc00
mov word [rsp + 0xd2], ax
mov word [rsp + 0xd4], 0
jmp 0x140054b2a
mov word [rsp + 0xd0], r12w
mov word [rsp + 0xd2], 0
mov ebx, r12d
mov eax, r12d
and eax, 0xfffffe00
cmp eax, 0xf000
jne 0x140054bfe
movzx eax, r12b
cmp eax, 0x20
jb 0x140054bfe
cmp eax, 0x7f
je 0x140054bfe
mov rax, qword [rsi + 0x10c8]
mov ecx, dword [rax + 0xc]
mov edx, r12d
call fcn.14007bea1
mov byte [rsp + 0xc4], r12b
mov r9d, 1
test al, al
je 0x140054ba3
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x18]
mov rcx, qword [rsp + 0x58]
inc ecx
mov qword [rsp + 0x58], rcx
movsxd rcx, ecx
lea rcx, [rcx + rcx*4]
mov al, byte [rax + rcx*4]
mov byte [rsp + 0xc5], al
mov r9d, 2
lea r12, [rsp + 0xc8]
mov rax, qword [rsi + 0x10c8]
mov ecx, dword [rax + 0xc]
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x28], 4
xor edx, edx
lea r8, [rsp + 0xc4]
call sub.KERNEL32.dll_MultiByteToWideChar
test eax, eax
jle 0x140054bfe
movsxd rsi, eax
lea r8, [rsi + rsi]
lea rcx, [rsp + 0xd0]
mov rdx, r12
call fcn.14007ef50
mov word [rsp + rsi*2 + 0xd0], 0
movzx ebx, word [rsp + 0xd0]
test bx, bx
je 0x140054c27
lea rsi, [rsp + 0xd2]
mov rcx, rbp
mov edx, ebx
mov r8d, r15d
mov r9, r13
call fcn.14005c614
movzx ebx, word [rsi]
add rsi, 2
test bx, bx
jne 0x140054c0b
mov rax, qword [rsp + 0x60]
mov rdx, qword [rax + 0x18]
mov ecx, dword [rdx + r14*4 + 0x10]
test ecx, ecx
jne 0x1400549f8
mov rsi, qword [rsp + 0x50]
mov r14, qword [rsp + 0x68]
mov r15, qword [rsp + 0x78]
mov r13, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x70]
inc r13d
cmp r15d, r14d
jne 0x140054c63
cmp r13d, dword [rsp + 0x48]
jge 0x140054c75
cmp r15d, dword [rsp + 0x40]
jne 0x140054c6f
cmp r13d, edi
jl 0x1400549d2
cmp byte [rsp + 0x3c], 0
mov rdi, rsi
lea rbx, [0x1400a6258]
je 0x140054ca8
xor esi, esi
movzx edx, word [rsi + rbx]
mov r9, qword [rdi + 0x80]
xor r8d, r8d
mov rcx, rbp
call fcn.14005c614
add rsi, 2
cmp rsi, 4
jne 0x140054c88
inc r15d
mov rdx, qword [rsp + 0x60]
cmp byte [rdx + 0xc], 0
mov eax, dword [rsp + 0x44]
mov r13d, eax
mov rsi, rdi
je 0x1400548da
mov rcx, qword [rdx + 0x18]
mov rdi, rdx
call fcn.140011913
mov rcx, rdi
call fcn.140011913
mov eax, dword [rsp + 0x44]
mov r13d, eax
jmp 0x1400548da
lea ecx, [r15 - 1]
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x3c], 0
mov edi, ebx
jmp 0x1400549a3
mov r9, qword [rsi + 0x80]
lea rcx, [rsp + 0x80]
xor edx, edx
xor r8d, r8d
call fcn.14005c614
mov eax, dword [rsp + 0x170]
test eax, eax
jle 0x140054da3
mov r14d, eax
xor ebx, ebx
xor eax, eax
mov rcx, qword [rsp + 0x168]
mov ebp, eax
mov edx, dword [rcx + rbx*4]
test edx, edx
je 0x140054d95
mov al, 1
cmp edx, 1
je 0x140054d97
mov edi, dword [rsp + 0x88]
mov rsi, qword [rsp + 0xb0]
mov r9, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x10b8]
mov r10, qword [rcx]
mov al, byte [rsp + 0x160]
mov byte [rsp + 0x30], al
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rsi
mov rsi, qword [rsp + 0x50]
call qword [r10 + 0x50]
mov rcx, qword [rsp + 0x168]
mov eax, ebp
inc rbx
cmp r14, rbx
jne 0x140054d32
test al, 1
jne 0x140054dcc
mov rcx, qword [rsp + 0x90]
call fcn.140011913
mov rcx, qword [rsp + 0xa0]
call fcn.140011913
mov rcx, qword [rsp + 0xb0]
call fcn.140011913
jmp 0x140054e2c
mov rcx, qword [rsi + 0x11a0]
call fcn.140011913
mov rcx, qword [rsi + 0x11a8]
call fcn.140011913
mov rcx, qword [rsi + 0x11b0]
call fcn.140011913
mov rax, qword [rsp + 0x90]
mov qword [rsi + 0x11a0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsi + 0x11a8], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsi + 0x11b0], rax
mov rax, qword [rsp + 0x88]
mov qword [rsi + 0x11b8], rax
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.14007de70
nop
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret