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

Disassembly:
push rbx
push rbp
push rsi
sub rsp, 0x120
mov rax, qword [0x18016f298]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov rax, qword [rcx]
mov r10, rcx
mov qword [rsp + 0x70], rcx
mov rbp, r8
mov r8, rdx
mov qword [rsp + 0x68], rdx
xor edx, edx
mov word [rsp + 0x34], r9w
mov rax, qword [rax]
mov esi, edx
mov rbx, qword [r10 + 0x18]
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x58], edx
mov rcx, qword [rax]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x40], rdx
cmp byte [rcx + 0x61], dl
je 0x18009484f
lea eax, [rdx + 7]
jmp 0x180094fc0
movzx ecx, word [rbx + 0x1a]
mov edx, Ordinal_27
mov eax, dword [rbx + 0x28]
test al, 0x20
movzx r11d, word [rbx + 0x2c]
mov r8d, dword [r8 + 0x44]
mov word [rsp + 0x48], cx
movzx ecx, word [rbx + 0x1c]
mov word [rsp + 0x4a], cx
movzx ecx, word [rbx + 0x2e]
mov word [rsp + 0x4e], cx
mov rcx, qword [rbx]
mov qword [rsp + 0x88], rcx
movzx ecx, word [rbx + 0x16]
mov dword [rsp + 0x64], eax
mov eax, 0x1bf
cmove edx, eax
mov word [rsp + 0x36], cx
movzx eax, word [rbx + 0x18]
mov ecx, edx
and ecx, 0xffffffc3
mov word [rsp + 0x32], ax
mov r9d, eax
mov dword [rsp + 0x60], eax
mov eax, dword [rbp + 0x64]
and al, 4
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x118], rdi
cmove ecx, edx
mov word [rsp + 0x4c], r11w
mov rdx, qword [r10 + 8]
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x90]
call fcn.180092660
xor ecx, ecx
mov rdi, rax
mov word [rbx + 0x12], cx
mov rax, qword [rbp + 0x10]
movzx eax, word [rax]
mov word [rsp + 0x5c], ax
cmp ax, 0xa
jg 0x180094909
mov word [rsp + 0x38], cx
mov edx, 0x100
jmp 0x180094926
movsx rcx, ax
call fcn.180014780
sub ax, 0x21
mov edx, 0x100
mov word [rsp + 0x38], ax
xor ecx, ecx
jmp 0x180094926
xor ecx, ecx
test rdi, rdi
je 0x180094e8c
movzx r8d, word [rdi + 0x14]
mov esi, ecx
mov word [rsp + 0x30], r8w
cmp r8w, dx
jne 0x1800949db
movzx r9d, word [rsp + 0x32]
mov rax, qword [rbp + 8]
movsx rdx, word [rax + r9*2]
test edx, edx
js 0x1800949d0
mov rax, qword [rbp + 0x18]
mov rcx, rdx
shl rcx, 5
mov rax, qword [rax + 8]
movzx ecx, byte [rax + rcx + 0x18]
test ecx, ecx
jne 0x180094e65
mov edx, 0x100
mov rax, qword [rbx + 8]
test qword [rdi + 0x30], rax
jne 0x180094e65
test word [rdi + 0x12], dx
je 0x180094999
cmp r8w, 0x10
je 0x180094e65
mov rax, qword [rsp + 0x68]
test byte [rax + 0x3c], 8
je 0x1800949b1
mov rax, qword [rdi]
test byte [rax + 4], 1
je 0x180094e65
cmp byte [rbp + 0x62], 0
je 0x1800949e3
movzx eax, word [rbp + 0x5e]
dec eax
movzx ecx, r9w
cmp ecx, eax
jne 0x1800949e3
mov rax, qword [rsp + 0x70]
or dword [rax + 0x28], 2
jmp 0x1800949ec
cmp edx, 0xffffffff
je 0x180094e65
jmp 0x180094975
movzx r9d, word [rsp + 0x32]
jmp 0x18009497a
mov rax, qword [rsp + 0x70]
or dword [rax + 0x28], 1
mov eax, dword [rsp + 0x64]
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
mov dword [rbx + 0x28], eax
movzx eax, word [rsp + 0x48]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4a]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x18], r9w
mov word [rbx + 0x2c], ax
lea r8d, [rax + 1]
call fcn.180093d00
test eax, eax
jne 0x180094e88
movzx ecx, word [rbx + 0x2c]
mov rax, qword [rbx + 0x38]
movzx r9d, word [rsp + 0x30]
mov qword [rax + rcx*8], rdi
inc word [rbx + 0x2c]
mov rcx, qword [rsp + 0x88]
or rcx, qword [rdi + 0x30]
mov rax, qword [rbx + 8]
not rax
and rcx, rax
mov qword [rbx], rcx
test r9b, 1
je 0x180094b15
mov r8, qword [rdi]
test dword [r8 + 4], 0x800
je 0x180094ab1
movzx eax, word [rbx + 0x2c]
mov esi, reloc.WLDAP32.dll_Ordinal_46
dec eax
test eax, eax
jle 0x180094ac9
mov rcx, qword [rbx + 0x38]
xor r9d, r9d
mov edx, eax
nop word [rax + rax]
mov rax, qword [rcx]
test rax, rax
je 0x180094a9f
cmp qword [rax], r8
cmove esi, r9d
add rcx, 8
sub rdx, 1
jne 0x180094a90
movzx r9d, word [rsp + 0x30]
jmp 0x180094ac9
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x180094ac9
movsxd rcx, dword [rax]
test ecx, ecx
je 0x180094ac9
call fcn.180014780
movsx esi, ax
test byte [rbp + 0x64], 0x80
je 0x180094b0f
movzx ecx, word [rsp + 0x32]
mov rax, qword [rbp + 0x10]
movzx r8d, word [rax + rcx*2]
cmp si, 0xa
jg 0x180094ae7
xor eax, eax
jmp 0x180094af4
movsx rcx, si
call fcn.180014780
sub ax, 0x21
movsx ecx, ax
movsx eax, word [rsp + 0x38]
movsx edx, r8w
add eax, esi
add edx, 0xa
add edx, ecx
cmp edx, eax
jl 0x180094e65
or dword [rbx + 0x28], 4
jmp 0x180094b70
test r9b, 0x82
je 0x180094bb6
movzx ecx, word [rsp + 0x32]
mov rax, qword [rbp + 8]
movsx edx, word [rax + rcx*2]
or dword [rbx + 0x28], 1
mov ecx, dword [rbx + 0x28]
cmp edx, 0xffffffff
je 0x180094bb0
test edx, edx
js 0x180094b70
cmp word [rsp + 0x34], 0
jne 0x180094b70
movzx edx, word [rbp + 0x5e]
lea eax, [rdx - 1]
cmp dword [rsp + 0x60], eax
jne 0x180094b70
test byte [rbp + 0x64], 8
jne 0x180094bb0
cmp edx, 1
jne 0x180094b69
cmp byte [rbp + 0x62], 0
je 0x180094b69
cmp r9w, 2
je 0x180094bb0
bts ecx, 0x10
mov dword [rbx + 0x28], ecx
mov r11, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
mov r10d, dword [rbx + 0x28]
test r10b, 2
je 0x180094d35
movsx r8d, word [rbx + 0x16]
movzx edx, r8w
test rcx, rcx
je 0x180094ccf
movzx edx, word [rcx + 0x10]
test dx, dx
jg 0x180094ccb
add dx, r8w
jmp 0x180094ccf
bts ecx, 0xc
jmp 0x180094b6d
mov eax, 0x100
test ax, r9w
je 0x180094bc7
or dword [rbx + 0x28], 8
jmp 0x180094b70
mov rax, qword [rsp + 0x68]
test r9b, 0x24
mov r9d, dword [rsp + 0x60]
mov r8, rbp
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x20], rdi
je 0x180094c72
or dword [rbx + 0x28], 0x22
mov edx, dword [rax + 0x44]
call fcn.180094580
mov word [rbx + 0x1a], ax
mov rcx, rdi
xor eax, eax
mov qword [rsp + 0x40], rcx
mov r11d, eax
mov qword [rsp + 0x50], rax
mov eax, 0x100
test word [rdi + 0x12], ax
je 0x180094cc0
movzx r8d, word [rbx + 0x2c]
lea rax, [rdi + 0x40]
mov rcx, qword [rsp + 0x78]
inc r8d
mov rdx, rbx
mov qword [rsp + 0x50], rax
call fcn.180093d00
test eax, eax
jne 0x180094e88
movzx ecx, word [rbx + 0x2c]
mov rax, qword [rbx + 0x38]
mov r11, qword [rsp + 0x50]
movzx r9d, word [rsp + 0x30]
mov qword [rax + rcx*8], r11
mov eax, 1
inc word [rbx + 0x2c]
mov rcx, rdi
or dword [rbx + 0x28], 0x10
mov word [rbx + 0x1c], ax
jmp 0x180094b7a
or dword [rbx + 0x28], 0x12
mov edx, dword [rax + 0x44]
call fcn.180094580
test byte [rbx + 0x28], 0x20
mov r11, rdi
movzx r9d, word [rsp + 0x30]
mov word [rbx + 0x1c], ax
mov qword [rsp + 0x50], rdi
je 0x180094cb2
movzx eax, word [rbx + 0x2c]
sub eax, 2
movsxd rcx, eax
mov rax, qword [rbx + 0x38]
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0x40], rcx
jmp 0x180094b7a
xor eax, eax
mov ecx, eax
mov qword [rsp + 0x40], rax
jmp 0x180094b7a
movzx r9d, word [rsp + 0x30]
jmp 0x180094b7a
lea edx, [r8 - 0x14]
test r11, r11
je 0x180094ce7
movzx eax, word [r11 + 0x10]
test ax, ax
jg 0x180094ce3
add dx, ax
jmp 0x180094ce7
sub dx, 0x14
test rcx, rcx
je 0x180094d04
cmp word [rcx + 0x10], 0
jle 0x180094d04
test r11, r11
je 0x180094d04
cmp word [r11 + 0x10], 0
jle 0x180094d04
sub dx, 0x14
mov r9, qword [rsp + 0x40]
xor eax, eax
test r9, r9
mov ecx, eax
setne cl
test r11, r11
setne al
add ecx, eax
sub r8d, ecx
cmp dx, 0xa
jge 0x180094d29
mov edx, 0xa
movsx eax, dx
cmp eax, r8d
cmovl r8d, eax
jmp 0x180094d8f
inc word [rbx + 0x18]
movzx edx, word [rdi + 0x10]
movzx r8d, word [rbx + 0x18]
test dx, dx
jg 0x180094d60
movzx ecx, word [rsp + 0x32]
mov rax, qword [rbp + 8]
cmp word [rax + rcx*2], 0
jl 0x180094d60
sub dx, si
add word [rbx + 0x16], dx
jmp 0x180094d94
mov rdx, qword [rbp + 0x10]
lea eax, [r8 - 1]
movsxd rcx, eax
mov eax, 0x100
movzx r8d, word [rdx + r8*2]
sub r8w, word [rdx + rcx*2]
add r8w, word [rbx + 0x16]
mov word [rbx + 0x16], r8w
test ax, r9w
je 0x180094d94
add r8w, 0xa
mov word [rbx + 0x16], r8w
movsx eax, word [rbp + 0x5c]
mov rcx, qword [rsp + 0x68]
imul eax, eax, 0xf
mov rcx, qword [rcx + 0x20]
cdq
movsx r8d, word [rcx + 0x4a]
movzx ecx, word [rsp + 0x38]
idiv r8d
add ax, word [rbx + 0x16]
lea edx, [rax + 1]
call fcn.180014710
mov word [rbx + 0x14], ax
test r10d, 0x140
jne 0x180094ddf
movzx edx, word [rbx + 0x16]
movzx ecx, ax
add dx, 0x10
call fcn.180014710
mov word [rbx + 0x14], ax
movzx ecx, word [rsp + 0x34]
mov rdx, rbx
movzx edi, word [rbx + 0x16]
movzx r8d, word [rsp + 0x5c]
lea eax, [rsi + rcx]
add word [rbx + 0x14], ax
lea eax, [rsi + rcx]
add word [rbx + 0x16], ax
mov rcx, qword [rsp + 0x70]
mov rcx, qword [rcx + 8]
call fcn.180094400
mov rcx, qword [rsp + 0x70]
mov rdx, rbx
call fcn.1800941e0
mov ecx, dword [rbx + 0x28]
test cl, 2
mov dword [rsp + 0x58], eax
movzx eax, word [rsp + 0x36]
cmovne di, ax
mov word [rbx + 0x16], di
test cl, 0x10
jne 0x180094e61
movzx ecx, word [rbp + 0x60]
cmp word [rbx + 0x18], cx
jae 0x180094e61
movzx r9d, word [rsp + 0x34]
mov r8, rbp
mov rdx, qword [rsp + 0x68]
add r9w, si
mov rcx, qword [rsp + 0x70]
call fcn.1800947e0
movzx eax, word [rsp + 0x36]
mov word [rbx + 0x16], ax
lea rcx, [rsp + 0x90]
call fcn.180092310
mov esi, dword [rsp + 0x58]
mov rdi, rax
mov edx, 0x100
test esi, esi
je 0x180094924
jmp 0x180094e8c
mov esi, dword [rsp + 0x58]
mov rax, qword [rsp + 0x88]
movzx edi, word [rsp + 0x32]
movzx ecx, word [rsp + 0x4e]
movzx r11d, word [rsp + 0x4c]
mov qword [rbx], rax
movzx eax, word [rsp + 0x48]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4a]
mov word [rbx + 0x1c], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x28], eax
movzx eax, word [rsp + 0x36]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], di
mov word [rbx + 0x2e], cx
mov word [rbx + 0x2c], r11w
cmp di, cx
jne 0x180094fb6
movzx ecx, word [rbp + 0x5e]
movzx eax, di
inc eax
cmp eax, ecx
jae 0x180094fb6
test byte [rbp + 0x64], 0x40
jne 0x180094fb6
mov r9, qword [rsp + 0x78]
mov eax, 0x4000
test word [r9 + 0x5c], ax
jne 0x180094fb6
mov rax, qword [rbp + 0x10]
movzx ecx, di
cmp word [rax + rcx*2 + 2], 0x2a
jl 0x180094fb6
movzx r8d, r11w
mov rdx, rbx
inc r8d
mov rcx, r9
call fcn.180093d00
mov esi, eax
test eax, eax
jne 0x180094fb6
inc word [rbx + 0x18]
mov r8, rbp
inc word [rbx + 0x2e]
movzx ecx, word [rbx + 0x2c]
mov rax, qword [rbx + 0x38]
mov rdx, qword [rsp + 0x68]
movzx r9d, di
mov qword [rax + rcx*8], 0
inc word [rbx + 0x2c]
or dword [rbx + 0x28], 0x8000
mov r10, qword [rbp + 0x10]
mov rcx, qword [rsp + 0x70]
movzx eax, di
movzx r11d, word [r10 + r9*2]
movzx r9d, word [rsp + 0x34]
sub r11w, word [r10 + rax*2 + 2]
add r9w, 5
sub word [rbx + 0x16], r11w
add r9w, r11w
call fcn.1800947e0
movzx eax, word [rsp + 0x36]
movzx ecx, word [rsp + 0x4e]
mov word [rbx + 0x16], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x28], eax
mov word [rbx + 0x18], di
mov word [rbx + 0x2e], cx
mov rdi, qword [rsp + 0x118]
mov eax, esi
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.180107470
add rsp, 0x120
pop rsi
pop rbp
pop rbx
ret