Function at 0x140059f40
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x14017e7c0]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov r14, qword [rcx + 0x10]
xor r15d, r15d
mov r10, qword [rcx]
mov ebx, r8d
mov dword [rsp + 0x44], r8d
mov r12d, r8d
mov qword [rbp - 0x78], rdx
mov rdi, rdx
mov qword [rbp - 0x80], r14
mov rsi, rcx
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x50], r15d
mov qword [rsp + 0x58], r10
test r14, r14
jne 0x140059fa7
xor eax, eax
jmp 0x14005afad
mov qword [rsp + 0x198], r13
test rdi, rdi
je case.0x140059fe6.101
movzx r13d, byte [rdx]
lea eax, [r13 - 0x13]
cmp eax, 0x8c
ja case.0x140059fe6.21
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x5b030]
mov ecx, dword [rdx + rax*4 + 0x5afcc]
add rcx, rdx
jmp rcx
mov r8, qword [rdi + 0x38]
movsx r9, word [rdi + 0x32]
shl r9, 5
add r9, qword [r8 + 0x20]
cmp byte [r8], r15b
jne 0x14005a007
mov ebx, dword [r9 + 0x14]
jmp 0x14005af27
cmp byte [r8 + 1], r15b
je case.0x140059fe6.154
mov r9d, dword [r9 + 0x10]
mov edx, 0x2f
mov r8d, dword [r8 + 8]
mov rcx, r14
mov dword [rsp + 0x20], r12d
call fcn.14003f920
jmp 0x14005af27
mov r9d, dword [rdi + 0x2c]
test r9d, r9d
jns 0x14005a04b
mov eax, dword [rsi + 0x68]
test eax, eax
jle 0x14005a047
movsx ebx, word [rdi + 0x30]
add ebx, eax
jmp 0x14005af27
mov r9d, dword [rsi + 0x6c]
movzx eax, byte [rdi + 0x36]
mov rcx, rsi
movsx r8d, word [rdi + 0x30]
mov rdx, qword [rdi + 0x40]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], r12d
call fcn.140059bb0
mov ebx, eax
jmp 0x14005af27
mov r9d, r12d
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.140059340
jmp 0x14005af27
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14005af27
mov r8, rcx
cmp byte [rcx], r15b
je 0x14005a0a8
nop dword [rax + rax]
inc r8
cmp byte [r8], r15b
jne 0x14005a0a0
sub r8d, ecx
lea rdx, [rsp + 0x58]
and r8d, 0x3fffffff
mov r9b, 1
call fcn.14001fe80
lea rdx, [rsp + 0x58]
mov rcx, r14
call fcn.1400591c0
mov r9d, r12d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
mov edx, 0x85
mov rcx, r14
mov rbx, rax
call fcn.14003f920
mov r9d, 0xfffffff4
mov r8, rbx
mov edx, eax
mov rcx, r14
call fcn.14003ff50
mov ebx, r12d
jmp 0x14005af27
mov rbx, qword [rdi + 8]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x20], r15d
mov edx, 0x61
mov rcx, r14
call fcn.14003f920
xor r9d, r9d
jmp 0x14005a0ed
mov rdx, qword [rdi + 8]
add rdx, 2
mov rbx, rdx
jne 0x14005a135
mov ebx, r15d
jmp 0x14005a150
cmp byte [rdx], r15b
je 0x14005a148
nop word [rax + rax]
inc rbx
cmp byte [rbx], r15b
jne 0x14005a140
sub ebx, edx
and ebx, 0x3fffffff
mov rcx, qword [r14]
lea r8d, [rbx - 1]
call fcn.140020b60
mov rdi, rax
mov dword [rsp + 0x20], r15d
lea eax, [rbx - 1]
mov r9d, r12d
cdq
mov rcx, r14
sub eax, edx
mov edx, 0x1e
sar eax, 1
mov r8d, eax
call fcn.14003f920
mov r9d, 0xffffffff
mov r8, rdi
mov edx, eax
mov rcx, r14
call fcn.14003ff50
mov ebx, r12d
jmp 0x14005af27
movsx r8d, word [rdi + 0x30]
mov r9d, r12d
mov edx, 0x1f
mov dword [rsp + 0x20], r15d
mov rcx, r14
call fcn.14003f920
mov rax, qword [rdi + 8]
cmp byte [rax + 1], r15b
je 0x14005af27
movsx rax, word [rdi + 0x30]
mov r9d, 0xfffffffe
mov r8, qword [rsi + 0x208]
mov edx, 0xffffffff
mov rcx, r14
mov r8, qword [r8 + rax*8 - 8]
call fcn.14003ff50
jmp 0x14005af27
mov ebx, dword [rdi + 0x2c]
jmp 0x14005af27
mov rdx, qword [rdi + 0x10]
mov rcx, rsi
call fcn.140059f40
mov ebx, eax
jmp 0x14005af27
mov rdx, qword [rdi + 0x10]
mov rcx, rsi
call fcn.140059f40
mov ebx, eax
cmp eax, r12d
je 0x14005a234
mov r9d, r12d
mov dword [rsp + 0x20], r15d
mov r8d, eax
mov edx, 0x22
mov rcx, r14
call fcn.14003f920
mov ebx, r12d
mov rcx, qword [rdi + 8]
xor edx, edx
call fcn.140064550
movsx r9d, al
mov r8d, r12d
mov edx, 0x28
mov dword [rsp + 0x20], r15d
mov rcx, r14
call fcn.14003f920
mov r8d, 1
mov edx, ebx
mov rcx, rsi
call fcn.140059630
jmp 0x14005af27
mov rdx, qword [rdi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, rsi
call fcn.14005b150
mov rdx, qword [rdi + 0x18]
lea r8, [rsp + 0x50]
mov rcx, rsi
mov ebx, eax
call fcn.14005b150
mov r9d, r13d
mov dword [rsp + 0x38], 0x20
mov r8, qword [rdi + 0x18]
mov rcx, rsi
mov rdx, qword [rdi + 0x10]
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebx
call fcn.140054bb0
mov ebx, r12d
jmp 0x14005af27
mov rdx, qword [rdi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, rsi
call fcn.14005b150
mov rdx, qword [rdi + 0x18]
lea r8, [rsp + 0x50]
mov rcx, rsi
mov ebx, eax
call fcn.14005b150
cmp r13d, 0x49
mov dword [rsp + 0x38], 0xa0
mov r9d, r15d
sete r9b
add r9d, 0x4e
jmp 0x14005a29c
mov rdx, qword [rdi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, rsi
call fcn.14005b150
mov rdx, qword [rdi + 0x18]
lea r8, [rsp + 0x50]
mov rcx, rsi
mov ebx, eax
call fcn.14005b150
mov r9d, ebx
mov dword [rsp + 0x20], r12d
mov r8d, eax
mov edx, r13d
mov rcx, r14
call fcn.14003f920
mov ebx, r12d
jmp 0x14005af27
mov rcx, qword [rdi + 0x10]
movzx eax, byte [rcx]
cmp al, 0x84
jne 0x14005a367
mov rdx, rcx
mov r9d, r12d
mov rcx, rsi
mov r8d, 1
call fcn.140059340
mov ebx, r12d
jmp 0x14005af27
cmp al, 0x85
jne 0x14005a3bc
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x14005a0fa
mov r8, rcx
cmp byte [rcx], r15b
je 0x14005a388
inc r8
cmp byte [r8], r15b
jne 0x14005a380
sub r8d, ecx
lea rdx, [rsp + 0x60]
and r8d, 0x3fffffff
mov r9b, 1
call fcn.14001fe80
movsd xmm2, qword [rsp + 0x60]
lea rdx, [rsp + 0x60]
xorps xmm2, xmmword [0x1401648a0]
movsd qword [rsp + 0x60], xmm2
jmp 0x14005a0c4
lea r8, [rsp + 0x48]
mov byte [rbp - 0x20], 0x84
lea rdx, [rbp - 0x20]
mov qword [rbp - 0x1c], 0x4400
mov rcx, rsi
call fcn.14005b150
mov rdx, qword [rdi + 0x10]
lea r8, [rsp + 0x50]
mov rcx, rsi
mov ebx, eax
call fcn.14005b150
mov r9d, ebx
mov dword [rsp + 0x20], r12d
mov r8d, eax
mov edx, 0x5a
mov rcx, r14
call fcn.14003f920
mov ebx, r12d
jmp 0x14005af27
mov rdx, qword [rdi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, rsi
call fcn.14005b150
mov r9d, r12d
mov dword [rsp + 0x20], r15d
mov r8d, eax
mov edx, r13d
mov rcx, r14
call fcn.14003f920
jmp 0x14005af27
mov r9d, r12d
mov dword [rsp + 0x20], r15d
mov edx, 0x19
mov r8d, 1
mov rcx, r14
call fcn.14003f920
mov rdx, qword [rdi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, rsi
call fcn.14005b150
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov r8d, eax
mov edx, r13d
mov rcx, r14
call fcn.14003f920
mov r9d, r12d
mov edi, eax
xor r8d, r8d
mov dword [rsp + 0x20], r15d
mov edx, 0x19
mov rcx, r14
call fcn.14003f920
mov edx, dword [r14 + 0x3c]
cmp edx, edi
jbe 0x14005a4a8
mov rax, qword [r14 + 8]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
jmp 0x14005af27
mov rdx, qword [rdi + 0x38]
test rdx, rdx
jne 0x14005a4db
mov r8, qword [rdi + 8]
lea rdx, str.misuse_of_aggregate:__s__
mov rcx, rsi
call fcn.14001fcd0
jmp 0x14005af27
movsx rax, word [rdi + 0x32]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x30]
mov ebx, dword [rax + rcx*8 + 0x10]
jmp 0x14005af27
test dword [rdi + 4], 0x4000
mov rax, qword [r10 + 0x20]
mov dword [rsp + 0x4c], r15d
mov qword [rsp + 0x60], r15
mov rcx, qword [rax + 0x18]
movzx edx, byte [rcx + 0x71]
je 0x14005a52e
mov qword [rsp + 0x68], r15
mov r13d, r15d
mov rax, qword [rdi + 8]
mov qword [rsp + 0x78], rax
mov rbx, rax
test rax, rax
jne 0x14005a541
mov ebx, r15d
jmp 0x14005a556
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x14005a515
mov r13d, dword [rax]
jmp 0x14005a518
cmp byte [rax], r15b
je 0x14005a54e
inc rbx
cmp byte [rbx], r15b
jne 0x14005a546
sub ebx, eax
and ebx, 0x3fffffff
mov byte [rsp + 0x28], r15b
mov r9d, r13d
mov byte [rsp + 0x20], dl
mov r8d, ebx
mov rdx, rax
mov rcx, r10
call fcn.14006cc40
mov qword [rsp + 0x70], rax
mov rdx, rax
test rax, rax
je 0x14005a8a5
cmp qword [rax + 0x18], r15
je 0x14005a8a5
movzx eax, word [rax + 2]
bt ax, 9
jae 0x14005a665
mov rcx, r14
call fcn.14003fa60
mov rbx, qword [rsp + 0x68]
mov r8d, r12d
mov rcx, rsi
mov dword [rsp + 0x44], eax
mov edi, eax
mov rdx, qword [rbx + 8]
mov rdx, qword [rdx]
call fcn.14005b2e0
cmp r13d, 1
jle 0x14005a633
lea ecx, [r13 - 1]
mov edi, 0x28
mov r13d, dword [rsp + 0x44]
mov qword [rsp + 0x58], rcx
nop dword [rax + rax]
mov r9d, r13d
mov dword [rsp + 0x20], r15d
mov r8d, r12d
mov edx, 0x4d
mov rcx, r14
call fcn.14003f920
mov r8d, 1
mov edx, r12d
mov rcx, rsi
call fcn.140059630
inc dword [rsi + 0x70]
mov r8d, r12d
mov rdx, qword [rbx + 8]
mov rdx, qword [rdx + rdi]
call fcn.14005b2e0
mov rcx, rsi
call fcn.140059860
sub qword [rsp + 0x58], 1
lea rdi, [rdi + 0x28]
jne 0x14005a5e0
mov edi, r13d
mov rdx, qword [r14 + 0x30]
not edi
test edi, edi
js 0x14005a654
mov r8, qword [rdx + 0x80]
test r8, r8
je 0x14005a654
movsxd rcx, edi
mov eax, dword [r14 + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [r14 + 0x3c]
mov ebx, r12d
dec eax
mov dword [rdx + 0x64], eax
jmp 0x14005af27
bt ax, 0xa
jae 0x14005a68b
mov rdx, qword [rsp + 0x68]
mov r8d, r12d
mov rcx, rsi
mov rdx, qword [rdx + 8]
mov rdx, qword [rdx]
call fcn.14005b2e0
mov ebx, r12d
jmp 0x14005af27
mov ebx, r15d
test r13d, r13d
jle 0x14005a70c
mov r12, qword [rsp + 0x68]
mov r14, r15
mov r15d, ebx
mov edi, ebx
cmp ebx, 0x20
jae 0x14005a6c4
mov rax, qword [r12 + 8]
mov edx, 1
mov rcx, qword [r14 + rax]
call fcn.140057a20
mov rdx, qword [rsp + 0x70]
test eax, eax
je 0x14005a6c4
bts edi, ebx
test byte [rdx + 2], 0x20
je 0x14005a6e8
test r15, r15
jne 0x14005a6e8
mov rdx, qword [r12 + 8]
mov rcx, rsi
mov rdx, qword [rdx + r14]
call fcn.140054850
mov rdx, qword [rsp + 0x70]
mov r15, rax
inc ebx
add r14, 0x28
cmp ebx, r13d
jl 0x14005a6a0
mov r14, qword [rbp - 0x80]
mov r12d, dword [rsp + 0x44]
mov qword [rsp + 0x60], r15
xor r15d, r15d
mov dword [rsp + 0x4c], edi
mov rdi, qword [rbp - 0x78]
mov rcx, qword [rsp + 0x68]
mov ebx, dword [rsp + 0x4c]
test rcx, rcx
je 0x14005a799
test ebx, ebx
jne 0x14005a744
mov r9d, dword [rsi + 0x44]
mov r8d, dword [rsi + 0x48]
mov dword [rsp + 0x44], r8d
cmp r13d, r9d
jg 0x14005a744
lea eax, [r8 + r13]
sub r9d, r13d
mov dword [rsi + 0x48], eax
mov dword [rsi + 0x44], r9d
jmp 0x14005a756
mov eax, dword [rsi + 0x54]
lea r8d, [rax + 1]
add eax, r13d
mov dword [rsi + 0x54], eax
mov dword [rsp + 0x44], r8d
movzx r9d, word [rdx + 2]
test r9b, 0xc0
je 0x14005a779
mov rax, qword [rcx + 8]
mov rdx, qword [rax]
movzx eax, byte [rdx]
add al, 0x66
test al, 0xfd
jne 0x14005a779
and r9b, 0xc0
mov byte [rdx + 0x36], r9b
inc dword [rsi + 0x70]
mov rdx, rcx
mov rcx, rsi
mov r9b, 3
call fcn.14005b340
mov rcx, rsi
call fcn.140059860
mov rcx, qword [rsp + 0x68]
jmp 0x14005a79e
mov dword [rsp + 0x44], r15d
cmp r13d, 2
jl 0x14005a7c9
test byte [rdi + 4], 0x80
je 0x14005a7ce
mov r9, qword [rcx + 8]
mov r9, qword [r9 + 0x28]
mov rdx, qword [rsp + 0x70]
mov r8d, r13d
mov rcx, qword [rsp + 0x58]
call fcn.140099820
mov rdi, rax
jmp 0x14005a7dc
test r13d, r13d
jle 0x14005a7d7
mov r9, qword [rcx + 8]
mov r9, qword [r9]
jmp 0x14005a7b2
mov rdi, qword [rsp + 0x70]
test byte [rdi + 2], 0x20
je 0x14005a825
cmp qword [rsp + 0x60], 0
jne 0x14005a7f8
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x60], rax
xor r9d, r9d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
mov edx, 0x24
mov rcx, r14
call fcn.14003f920
mov r8, qword [rsp + 0x60]
mov r9d, 0xfffffffc
mov edx, eax
mov rcx, r14
call fcn.14003ff50
mov dword [rsp + 0x20], r12d
mov r8d, ebx
mov r12d, dword [rsp + 0x44]
mov edx, 1
mov r9d, r12d
mov rcx, r14
call fcn.14003f920
mov r9d, 0xfffffffb
mov r8, rdi
mov edx, eax
mov rcx, r14
call fcn.14003ff50
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x14005a86b
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], r13b
test r13d, r13d
je 0x14005af23
test ebx, ebx
jne 0x14005af23
mov r8d, r13d
mov edx, r12d
mov rcx, rsi
call fcn.140059630
mov ebx, dword [rsp + 0x40]
cmp r13d, dword [rsi + 0x44]
jle 0x14005af27
mov dword [rsi + 0x44], r13d
mov dword [rsi + 0x48], r12d
jmp 0x14005af27
mov r9, qword [rsp + 0x78]
lea rdx, str.unknown_function:__.s__
mov r8d, ebx
mov rcx, rsi
call fcn.14001fcd0
mov ebx, r12d
jmp 0x14005af27
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.140058400
mov ebx, eax
jmp 0x14005af27
mov rcx, r14
call fcn.14003fa60
mov rcx, r14
mov r13d, eax
call fcn.14003fa60
mov r9d, r12d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
mov edx, 0x1c
mov rcx, r14
mov ebx, eax
call fcn.14003f920
mov r9d, ebx
mov r8d, r13d
mov rdx, rdi
mov rcx, rsi
call fcn.140058bb0
mov r9d, r12d
mov dword [rsp + 0x20], r15d
mov edx, 0x19
mov r8d, 1
mov rcx, r14
call fcn.14003f920
mov r8, qword [r14 + 0x30]
not r13d
test r13d, r13d
js 0x14005a957
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x14005a957
mov eax, dword [r14 + 0x3c]
movsxd rcx, r13d
mov dword [rdx + rcx*4], eax
mov eax, dword [r14 + 0x3c]
xor r9d, r9d
dec eax
mov dword [rsp + 0x20], r15d
mov dword [r8 + 0x64], eax
mov edx, 0x25
mov r8d, r12d
mov rcx, r14
call fcn.14003f920
mov r8, qword [r14 + 0x30]
not ebx
test ebx, ebx
js 0x14005a999
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x14005a999
mov eax, dword [r14 + 0x3c]
movsxd rcx, ebx
mov dword [rdx + rcx*4], eax
mov eax, dword [r14 + 0x3c]
mov ebx, r12d
dec eax
mov dword [r8 + 0x64], eax
jmp 0x14005af27
mov rcx, qword [rdi + 0x10]
lea r8, [rsp + 0x48]
mov rax, qword [rdi + 0x20]
mov rdx, rcx
mov qword [rsp + 0x58], rcx
mov rcx, rsi
mov r13, qword [rax + 8]
mov rbx, qword [r13]
mov qword [rsp + 0x78], rbx
call fcn.14005b150
lea r8, [rsp + 0x50]
mov dword [rsp + 0x44], eax
mov rdx, rbx
mov rcx, rsi
call fcn.14005b150
movzx ecx, byte [rsi + 0x1f]
mov edx, eax
lea rax, [rsi + 0x54]
test cl, cl
jne 0x14005aa03
mov ebx, dword [rax]
inc ebx
mov dword [rax], ebx
inc dword [rax]
mov edi, dword [rax]
jmp 0x14005aa25
dec cl
movzx ecx, cl
mov byte [rsi + 0x1f], cl
mov ebx, dword [rsi + rcx*4 + 0x24]
test cl, cl
jne 0x14005aa19
inc dword [rax]
mov edi, dword [rax]
jmp 0x14005aa25
dec cl
movzx eax, cl
mov byte [rsi + 0x1f], al
mov edi, dword [rsi + rax*4 + 0x24]
mov eax, dword [rsp + 0x44]
mov r9d, 0x53
mov r8, qword [rsp + 0x78]
mov rcx, rsi
mov dword [rsp + 0x38], 0x20
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], edx
mov rdx, qword [rsp + 0x58]
mov dword [rsp + 0x20], eax
call fcn.140054bb0
mov edx, dword [rsp + 0x50]
mov r13, qword [r13 + 0x28]
test edx, edx
je 0x14005aa94
movzx r8d, byte [rsi + 0x1f]
cmp r8b, 8
jae 0x14005aa94
mov ecx, r15d
lea rax, [rsi + 0x88]
cmp dword [rax + 0xc], edx
je 0x14005aa90
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x14005aa76
mov dword [rsi + r8*4 + 0x24], edx
inc byte [rsi + 0x1f]
jmp 0x14005aa94
mov byte [rax + 6], 1
lea r8, [rsp + 0x50]
mov rdx, r13
mov rcx, rsi
call fcn.14005b150
mov rdx, qword [rsp + 0x58]
mov r9d, 0x51
mov dword [rsp + 0x38], 0x20
mov r8, r13
mov dword [rsp + 0x30], edi
mov rcx, rsi
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x20], eax
call fcn.140054bb0
mov r9d, edi
mov dword [rsp + 0x20], r12d
mov r8d, ebx
mov edx, 0x48
mov rcx, r14
call fcn.14003f920
test ebx, ebx
je 0x14005ab1e
movzx edx, byte [rsi + 0x1f]
cmp dl, 8
jae 0x14005ab1e
mov ecx, r15d
lea rax, [rsi + 0x88]
cmp dword [rax + 0xc], ebx
je 0x14005ab1a
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x14005ab01
mov dword [rsi + rdx*4 + 0x24], ebx
inc byte [rsi + 0x1f]
jmp 0x14005ab1e
mov byte [rax + 6], 1
test edi, edi
je 0x14005a0fa
movzx edx, byte [rsi + 0x1f]
cmp dl, 8
jae 0x14005a0fa
mov ecx, r15d
lea rax, [rsi + 0x88]
nop dword [rax]
cmp dword [rax + 0xc], edi
je 0x14005ab5f
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x14005ab40
mov dword [rsi + rdx*4 + 0x24], edi
mov ebx, r12d
inc byte [rsi + 0x1f]
jmp 0x14005af27
mov byte [rax + 6], 1
mov ebx, r12d
jmp 0x14005af27
mov r13, qword [rdi + 0x40]
mov r9d, r12d
movsx r8d, word [rdi + 0x30]
mov edx, 0x84
inc r8d
mov dword [rsp + 0x20], r15d
movsx ecx, word [r13 + 0x42]
inc ecx
imul ecx, dword [rdi + 0x2c]
add r8d, ecx
mov rcx, r14
call fcn.14003f920
movsx rax, word [rdi + 0x30]
test ax, ax
js 0x14005af27
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 8]
add rcx, rcx
cmp byte [rax + rcx*8 + 0x29], 0x45
jne 0x14005af27
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov r8d, r12d
mov edx, 0x27
mov rcx, r14
call fcn.14003f920
jmp 0x14005af27
cmp qword [rsi + 0x1c8], r15
jne 0x14005abfa
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rsi
call fcn.14001fcd0
xor eax, eax
jmp 0x14005afa5
cmp byte [rdi + 1], 2
jne 0x14005ac15
mov rax, qword [rsi + 0x1c0]
mov rcx, rsi
test rax, rax
cmovne rcx, rax
mov byte [rcx + 0x21], 1
movsx eax, byte [rdi + 1]
mov r12, qword [rdi + 8]
cmp al, 4
jne 0x14005ac2c
mov r9d, 4
xor r8d, r8d
jmp 0x14005ac5c
mov rcx, rsi
mov edi, eax
call fcn.140088a20
mov r14, rax
cmp edi, 2
jne 0x14005ac53
mov rcx, qword [rsi + 0x1c0]
mov rdx, rsi
test rcx, rcx
cmovne rdx, rcx
mov byte [rdx + 0x21], 1
mov r9d, edi
mov r8d, 0x713
mov edx, 0x18
mov dword [rsp + 0x20], r15d
mov rcx, r14
call fcn.14003f920
xor r9d, r9d
mov r8, r12
mov edx, eax
mov rcx, r14
call fcn.14003ff50
jmp 0x14005af27
mov rax, qword [rdi + 0x20]
mov rcx, r14
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x58], r15
mov r13, qword [rax + 8]
mov eax, dword [rax]
mov dword [rsp + 0x44], eax
call fcn.14003fa60
mov rbx, qword [rdi + 0x10]
mov dword [rsp + 0x4c], eax
test rbx, rbx
je 0x14005ad18
movups xmm0, xmmword [rbx]
lea r8, [rsp + 0x48]
mov rdx, rbx
mov rcx, rsi
movaps xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rbx + 0x10]
movaps xmmword [rbp - 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movaps xmmword [rbp], xmm0
movups xmm1, xmmword [rbx + 0x30]
movaps xmmword [rbp + 0x10], xmm1
movsd xmm0, qword [rbx + 0x40]
movsd qword [rbp + 0x20], xmm0
call fcn.14005b150
movzx ecx, byte [rbp - 0x20]
and dword [rbp - 0x1c], 0xffffefff
mov dword [rbp + 0xc], eax
lea rax, [rbp - 0x20]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x58], rax
mov byte [rbp + 0x16], cl
mov byte [rbp - 0x20], 0x9f
mov byte [rbp - 0x70], 0x4f
mov dword [rsp + 0x48], r15d
mov eax, dword [rsp + 0x44]
dec eax
test eax, eax
jle 0x14005add4
test rbx, rbx
je 0x14005ae12
lea ebx, [rax - 1]
shr ebx, 1
inc ebx
nop word [rax + rax]
inc dword [rsi + 0x70]
mov rcx, r14
mov rax, qword [r13]
mov qword [rbp - 0x58], rax
call fcn.14003fa60
mov rdx, qword [rsp + 0x58]
mov r9d, reloc.WS2_32.dll_recv
mov r8d, eax
mov rcx, rsi
mov edi, eax
call fcn.14005ba50
mov rdx, qword [r13 + 0x28]
mov r8d, r12d
mov rcx, rsi
call fcn.14005b2e0
mov r9d, dword [rsp + 0x4c]
xor r8d, r8d
mov edx, reloc.WS2_32.dll_recv
mov dword [rsp + 0x20], r15d
mov rcx, r14
call fcn.14003f920
mov rcx, rsi
call fcn.140059860
mov r9, qword [r14 + 0x30]
not edi
test edi, edi
js 0x14005adbc
mov rdx, qword [r9 + 0x80]
test rdx, rdx
je 0x14005adbc
mov eax, dword [r14 + 0x3c]
movsxd rcx, edi
mov dword [rdx + rcx*4], eax
mov eax, dword [r14 + 0x3c]
add r13, 0x50
dec eax
mov dword [r9 + 0x64], eax
sub rbx, 1
jne 0x14005ad40
mov ebx, dword [rsp + 0x4c]
movsxd rax, dword [rsp + 0x44]
test al, 1
je 0x14005aecb
inc dword [rsi + 0x70]
lea rcx, [rax + rax*4]
mov rdx, qword [rsp + 0x78]
mov r8d, r12d
mov rdx, qword [rdx + 8]
mov rdx, qword [rdx + rcx*8 - 0x28]
mov rcx, rsi
call fcn.14005b2e0
mov rcx, rsi
call fcn.140059860
jmp 0x14005aee3
movsxd rdi, eax
test eax, eax
jle 0x14005add4
dec rdi
shr rdi, 1
inc rdi
nop dword [rax]
nop word [rax + rax]
inc dword [rsi + 0x70]
mov rcx, r14
mov rbx, qword [r13]
call fcn.14003fa60
mov r9d, reloc.WS2_32.dll_recv
mov dword [rsp + 0x68], eax
mov r8d, eax
mov rdx, rbx
mov rcx, rsi
call fcn.14005ba50
mov rdx, qword [r13 + 0x28]
mov r8d, r12d
mov rcx, rsi
call fcn.14005b2e0
mov ebx, dword [rsp + 0x4c]
xor r8d, r8d
mov r9d, ebx
mov dword [rsp + 0x20], r15d
mov edx, reloc.WS2_32.dll_recv
mov rcx, r14
call fcn.14003f920
mov rcx, rsi
call fcn.140059860
mov eax, dword [rsp + 0x68]
mov r9, qword [r14 + 0x30]
not eax
test eax, eax
js 0x14005aeae
mov rdx, qword [r9 + 0x80]
test rdx, rdx
je 0x14005aeae
movsxd rcx, eax
mov eax, dword [r14 + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [r14 + 0x3c]
add r13, 0x50
dec eax
mov dword [r9 + 0x64], eax
sub rdi, 1
jne 0x14005ae30
jmp 0x14005add8
mov r9d, r12d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
mov edx, 0x1c
mov rcx, r14
call fcn.14003f920
mov rdx, qword [r14 + 0x30]
not ebx
test ebx, ebx
js 0x14005a654
mov r8, qword [rdx + 0x80]
test r8, r8
je 0x14005a654
movsxd rcx, ebx
jmp 0x14005a64c
mov r9d, r12d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
mov edx, 0x1c
mov rcx, r14
call fcn.14003f920
jmp 0x14005af27
mov ebx, dword [rsp + 0x40]
cmp dword [rsp + 0x48], 0
je 0x14005af65
movzx r8d, byte [rsi + 0x1f]
cmp r8b, 8
jae 0x14005af65
mov ecx, r15d
lea rax, [rsi + 0x88]
mov edx, dword [rsp + 0x48]
cmp dword [rax + 0xc], edx
je 0x14005af61
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x14005af43
mov dword [rsi + r8*4 + 0x24], edx
inc byte [rsi + 0x1f]
jmp 0x14005af65
mov byte [rax + 6], 1
cmp dword [rsp + 0x50], 0
je 0x14005afa3
movzx edx, byte [rsi + 0x1f]
cmp dl, 8
jae 0x14005afa3
lea rax, [rsi + 0x88]
nop dword [rax]
mov ecx, dword [rsp + 0x50]
cmp dword [rax + 0xc], ecx
je 0x14005af9f
inc r15d
add rax, 0x14
cmp r15d, 0xa
jl 0x14005af80
mov dword [rsi + rdx*4 + 0x24], ecx
inc byte [rsi + 0x1f]
jmp 0x14005afa3
mov byte [rax + 6], 1
mov eax, ebx
mov r13, qword [rsp + 0x198]
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.1401386b0
add rsp, 0x140
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret