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

Disassembly:
push rbx
push rbp
push rsi
push r14
push r15
sub rsp, 0x50
xor esi, esi
mov r14d, r9d
mov rbx, r8
mov rbp, rdx
mov r15, rcx
test r8, r8
jne 0x18004f90d
xor eax, eax
add rsp, 0x50
pop r15
pop r14
pop rsi
pop rbp
pop rbx
ret
call fcn.1800623e0
test rax, rax
jne 0x18004f8ff
test byte [rbp + 0x3a], 0x10
jne 0x18004f8ff
cmp r14d, 0x63
jne 0x18004f929
lea r14d, [rax + 2]
jmp 0x18004f935
cmp r14d, 2
je 0x18004f935
cmp r14d, 1
jne 0x18004f8ff
mov r8, qword [rbx + 0x10]
cmp word [r8], 1
jne 0x18004f8ff
cmp qword [r8 + 0x28], rsi
jne 0x18004f8ff
cmp qword [rbx + 0x18], rsi
jne 0x18004f8ff
cmp qword [rbx + 0x30], rsi
jne 0x18004f8ff
cmp qword [rbx + 0x20], rsi
jne 0x18004f8ff
cmp qword [rbx + 0x50], rsi
jne 0x18004f8ff
cmp qword [rbx + 0x38], rsi
jne 0x18004f8ff
test byte [rbx + 0xa], 1
jne 0x18004f8ff
mov rax, qword [rbx]
cmp dword [rax], 1
jne 0x18004f8ff
mov rax, qword [rax + 0x10]
mov rcx, qword [rax]
cmp byte [rcx], 0x71
jne 0x18004f8ff
mov r9, qword [r8 + 8]
mov r8, qword [r8 + 0x10]
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x98], r13
call fcn.18003cd20
mov r13, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x18004f9b6
cmp rax, rbp
je 0x18004f9b6
test byte [rax + 0x3a], 0x10
jne 0x18004f9b6
cmp qword [rax + 0x30], rsi
je 0x18004f9bd
xor eax, eax
jmp 0x1800500cb
mov qword [rsp + 0x80], rdi
mov edi, dword [rbp + 0x14]
cmp edi, dword [rax + 0x14]
jne 0x18004fa71
mov eax, dword [rax + 0x10]
cmp dword [rbp + 0x10], eax
jne 0x18004fa71
xor ebx, ebx
test edi, edi
jle 0x18004fa27
mov r10, qword [rbp + 0x18]
mov r11, qword [r13 + 0x18]
add r10, 0x20
add r11, 0x20
movzx eax, byte [r11 + 0xa]
cmp byte [r10 + 0xa], al
jne 0x18004fa71
mov rdx, qword [r11]
mov rcx, qword [r10]
call fcn.18004f7b0
test eax, eax
je 0x18004fa71
cmp byte [r10 + 8], sil
je 0x18004fa19
cmp byte [r11 + 8], sil
je 0x18004fa71
inc ebx
add r10, 0x30
add r11, 0x30
cmp ebx, edi
jl 0x18004f9f3
mov rdi, qword [rbp + 0x20]
mov qword [rsp + 0x88], r12
mov eax, 1
test rdi, rdi
je 0x18004fa91
mov r12, qword [r13 + 0x20]
cmp byte [rdi + 0x2c], 0
mov rbx, r12
cmovne esi, eax
test r12, r12
je 0x1800500b2
mov rdx, rbx
mov rcx, rdi
call fcn.18004f820
test eax, eax
jne 0x18004fa78
mov rbx, qword [rbx + 0x38]
test rbx, rbx
jne 0x18004fa54
jmp 0x1800500bb
xor eax, eax
jmp 0x1800500c3
test rbx, rbx
je 0x1800500b2
mov rdi, qword [rdi + 0x38]
test rdi, rdi
je 0x18004fa91
mov eax, 1
jmp 0x18004fa41
mov rdx, qword [rbp + 0x50]
test rdx, rdx
je 0x18004faab
mov rcx, qword [r13 + 0x50]
call fcn.180037520
test eax, eax
je 0x1800500b2
mov rdx, qword [r13 + 0x80]
mov rcx, qword [r15]
call fcn.1800552e0
mov rcx, r15
mov ebx, eax
mov dword [rsp + 0x3c], eax
call fcn.180058e20
mov edx, ebx
mov rcx, r15
mov rdi, rax
call fcn.180042980
mov ebx, dword [r15 + 0x54]
mov edx, dword [rsp + 0xa0]
mov dword [rsp + 0x34], ebx
inc ebx
mov r8, rbp
lea ecx, [rbx + 1]
mov dword [rsp + 0x90], ebx
mov dword [r15 + 0x54], ecx
mov rcx, r15
call fcn.18004be90
mov r8d, dword [rsp + 0xa0]
mov r9, rbp
mov edx, ebx
mov rcx, r15
mov dword [rsp + 0x20], 0x27
mov r12d, eax
call fcn.18004ba40
cmp dword [rbp + 0x10], 0
jge 0x18004fb2c
cmp qword [rbp + 0x20], 0
jne 0x18004fb34
test esi, esi
je 0x18004fbd7
xor esi, esi
xor r9d, r9d
mov r8d, ebx
lea edx, [rsi + 0x40]
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.180021570
lea edx, [rsi + 1]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], esi
movsxd rbx, eax
call fcn.180021570
mov r8d, dword [rdi + 0x18]
mov dword [rsp + 0x40], eax
cmp r8d, ebx
jle 0x18004fb7d
mov rcx, qword [rdi + 0x20]
lea rdx, [rbx + rbx*2]
mov dword [rcx + rdx*8 + 8], r8d
mov ebx, dword [rsp + 0x90]
mov esi, dword [rsp + 0x34]
mov r8d, dword [rsp + 0x3c]
mov r9, r13
mov rcx, r15
mov edx, esi
mov dword [rsp + 0x20], 0x26
call fcn.18004ba40
xor r13d, r13d
xor r9d, r9d
lea edx, [r13 + 0x40]
mov r8d, esi
mov rcx, rdi
mov dword [rsp + 0x20], r13d
call fcn.180021570
movzx ecx, byte [r15 + 0x25]
mov dword [rsp + 0x44], eax
test cl, cl
jne 0x18004fbdf
inc dword [r15 + 0x58]
mov ecx, dword [r15 + 0x58]
mov dword [rsp + 0x38], ecx
jmp 0x18004fbf1
xor eax, eax
mov dword [rsp + 0x40], eax
jmp 0x18004fb84
dec cl
movzx eax, cl
mov byte [r15 + 0x25], al
mov eax, dword [r15 + rax*4 + 0x28]
mov dword [rsp + 0x38], eax
movzx eax, byte [r15 + 0x25]
test al, al
jne 0x18004fc04
inc dword [r15 + 0x58]
mov eax, dword [r15 + 0x58]
jmp 0x18004fc12
dec al
movzx eax, al
mov byte [r15 + 0x25], al
mov eax, dword [r15 + rax*4 + 0x28]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x20], r13d
mov r9d, eax
mov rcx, rdi
cmp dword [rbp + 0x10], r13d
jl 0x18004fcab
mov r8d, esi
mov edx, 0x3c
call fcn.180021570
xor r9d, r9d
mov r8d, ebx
mov r13d, eax
mov eax, dword [rsp + 0x30]
lea edx, [r9 + 0x33]
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.180021570
lea r8, str.PRIMARY_KEY_must_be_unique
mov r9d, 0xfffffffe
mov edx, r14d
mov rcx, r15
movsxd rbx, eax
call fcn.180042ad0
mov r11d, dword [rdi + 0x18]
cmp r11d, ebx
jle 0x18004fc86
mov rax, qword [rdi + 0x20]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], r11d
test r12d, r12d
jle 0x18004fcdb
mov r9d, dword [rsp + 0x30]
mov rcx, qword [r15 + 0x18]
mov r8d, r12d
mov edx, 0x6f
mov dword [rsp + 0x20], 0
call fcn.180021570
jmp 0x18004fcdb
cmp qword [rbp + 0x20], r13
jne 0x18004fccb
mov r14d, dword [rsp + 0x90]
mov edx, 0x35
mov r8d, r14d
call fcn.180021570
mov r13d, eax
jmp 0x18004fce3
mov r8d, esi
mov edx, 0x3c
call fcn.180021570
mov r13d, eax
mov r14d, dword [rsp + 0x90]
mov ebx, dword [rsp + 0x38]
mov r8d, esi
mov edx, 0x3b
mov rcx, rdi
mov r9d, ebx
mov dword [rsp + 0x20], 0
call fcn.180021570
mov eax, dword [rsp + 0x30]
mov r9d, ebx
mov r8d, r14d
mov edx, 0x36
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.180021570
mov rdx, qword [rdi + 0x20]
test rdx, rdx
je 0x18004fd33
movsxd rax, dword [rdi + 0x18]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0xb
mov rbx, qword [rdi + 0x20]
mov r12, qword [rbp + 8]
mov rcx, qword [rdi]
test rbx, rbx
je 0x18004fdbe
cmp byte [rcx + 0x2a], 0
jne 0x18004fdbe
mov eax, dword [rdi + 0x18]
dec eax
cdqe
lea rsi, [rax + rax*2]
movsx edx, byte [rbx + rsi*8 + 1]
mov r8, qword [rbx + rsi*8 + 0x10]
call fcn.180021a30
mov qword [rbx + rsi*8 + 0x10], 0
test r12, r12
jne 0x18004fd85
mov qword [rbx + rsi*8 + 0x10], r12
mov byte [rbx + rsi*8 + 1], r12b
mov esi, dword [rsp + 0x34]
jmp 0x18004fdcb
cmp byte [r12], 0
mov rax, r12
je 0x18004fd98
nop
inc rax
cmp byte [rax], 0
jne 0x18004fd90
mov rcx, qword [rdi]
sub eax, r12d
mov rdx, r12
and eax, 0x3fffffff
mov r8d, eax
call fcn.1800078f0
mov byte [rbx + rsi*8 + 1], 0xff
mov qword [rbx + rsi*8 + 0x10], rax
mov esi, dword [rsp + 0x34]
jmp 0x18004fdc8
mov r8, r12
xor edx, edx
call fcn.180021a30
xor r12d, r12d
mov r9d, r13d
mov r8d, esi
mov edx, 0x42
mov rcx, rdi
mov dword [rsp + 0x20], r12d
call fcn.180021570
mov rbp, qword [rbp + 0x20]
test rbp, rbp
je 0x180050008
mov r13, qword [rsp + 0x48]
jmp 0x18004fe03
xor r12d, r12d
mov rbx, qword [r13 + 0x20]
test rbx, rbx
je 0x18004fe28
nop dword [rax]
mov rdx, rbx
mov rcx, rbp
call fcn.18004f820
test eax, eax
jne 0x18004fe28
mov rbx, qword [rbx + 0x38]
test rbx, rbx
jne 0x18004fe10
xor r9d, r9d
mov r8d, esi
mov rcx, rdi
lea edx, [r9 + 0x2a]
mov dword [rsp + 0x20], r12d
call fcn.180021570
xor r9d, r9d
mov r8d, r14d
lea edx, [r9 + 0x2a]
mov rcx, rdi
mov dword [rsp + 0x20], r12d
call fcn.180021570
mov rdx, rbx
mov rcx, r15
call fcn.1800430e0
mov r9d, dword [rbx + 0x28]
mov r8d, esi
mov r12, rax
mov eax, dword [rsp + 0x3c]
mov edx, 0x26
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.180021570
mov rsi, qword [rdi + 0x20]
mov rcx, qword [rdi]
test rsi, rsi
je 0x18004fed3
cmp byte [rcx + 0x2a], 0
jne 0x18004fed3
test eax, eax
jns 0x18004fe9b
mov eax, dword [rdi + 0x18]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.180021a30
xor eax, eax
mov qword [rsi + rbx*8 + 0x10], rax
test r12, r12
jne 0x18004fec7
mov qword [rsi + rbx*8 + 0x10], rax
mov byte [rsi + rbx*8 + 1], al
jmp 0x18004fee0
mov qword [rsi + rbx*8 + 0x10], r12
mov byte [rsi + rbx*8 + 1], 0xfa
jmp 0x18004fee0
mov r8, r12
mov edx, 0xfffffff0
call fcn.180021a30
mov rdx, rbp
mov rcx, r15
call fcn.1800430e0
mov r9d, dword [rbp + 0x28]
mov r8d, r14d
mov r12, rax
mov eax, dword [rsp + 0xa0]
mov edx, 0x27
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.180021570
mov rsi, qword [rdi + 0x20]
mov rcx, qword [rdi]
test rsi, rsi
je 0x18004ff60
cmp byte [rcx + 0x2a], 0
jne 0x18004ff60
test eax, eax
jns 0x18004ff28
mov eax, dword [rdi + 0x18]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.180021a30
xor eax, eax
mov qword [rsi + rbx*8 + 0x10], rax
test r12, r12
jne 0x18004ff54
mov qword [rsi + rbx*8 + 0x10], rax
mov byte [rsi + rbx*8 + 1], al
jmp 0x18004ff6f
mov qword [rsi + rbx*8 + 0x10], r12
mov byte [rsi + rbx*8 + 1], 0xfa
jmp 0x18004ff6f
mov r8, r12
mov edx, 0xfffffff0
call fcn.180021a30
xor eax, eax
mov esi, dword [rsp + 0x34]
xor r9d, r9d
mov rcx, rdi
lea edx, [r9 + 0x40]
mov r8d, esi
mov dword [rsp + 0x20], eax
call fcn.180021570
mov r12d, dword [rsp + 0x38]
mov r8d, esi
mov edx, 0x3a
mov rcx, rdi
mov r9d, r12d
movsxd rbx, eax
mov dword [rsp + 0x20], 0
call fcn.180021570
mov r9d, r12d
mov r8d, r14d
mov edx, 0x43
mov rcx, rdi
mov dword [rsp + 0x20], 1
call fcn.180021570
lea r9d, [rbx + 1]
mov r8d, esi
mov edx, 0x42
mov rcx, rdi
mov dword [rsp + 0x20], 0
call fcn.180021570
mov r11d, dword [rdi + 0x18]
cmp r11d, ebx
jle 0x18004fff9
mov rax, qword [rdi + 0x20]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], r11d
mov rbp, qword [rbp + 0x38]
test rbp, rbp
jne 0x18004fe00
jmp 0x18005000d
mov r12d, dword [rsp + 0x38]
mov r9d, dword [rdi + 0x18]
movsxd rax, dword [rsp + 0x44]
cmp r9d, eax
jle 0x180050028
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x20]
mov dword [rax + rcx*8 + 8], r9d
mov edx, dword [rsp + 0x30]
mov rcx, r15
call fcn.180037b30
mov edx, r12d
call fcn.180037b30
xor ebp, ebp
xor r9d, r9d
lea edx, [rbp + 0x2a]
mov r8d, esi
mov rcx, rdi
mov dword [rsp + 0x20], ebp
call fcn.180021570
lea edx, [rbp + 0x2a]
xor r9d, r9d
mov r8d, r14d
mov rcx, rdi
mov dword [rsp + 0x20], ebp
call fcn.180021570
movsxd rbx, dword [rsp + 0x40]
test ebx, ebx
je 0x1800500b6
lea edx, [rbp + 6]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], ebp
call fcn.180021570
mov r11d, dword [rdi + 0x18]
cmp r11d, ebx
jle 0x18005009c
mov rax, qword [rdi + 0x20]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], r11d
xor r9d, r9d
mov r8d, r14d
mov rcx, rdi
lea edx, [r9 + 0x2a]
mov dword [rsp + 0x20], ebp
call fcn.180021570
xor eax, eax
jmp 0x1800500bb
mov eax, 1
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r13, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop rsi
pop rbp
pop rbx
ret