// File: WilstonOreo[P]Log/logtest.cpp
// Function: main
int main(int ac, char* av[])
{
	LOG_MSG << "LogTestApp. -- written by Wilston Oreo.";

#ifdef TEST_THREADS

	srand ( time(NULL) );

	LOG_MSG_(1) << "Startup";  
	boost::thread thread1(threadLog);
	boost::thread thread2(threadLog);
	boost::thread thread3(threadLog);
	boost::thread thread4(threadLog);
	LOG_MSG_(1) << "Waiting for threads...";

	thread1.join();
	thread2.join();
	thread3.join();
	thread4.join();

#endif

	LOG_MSG_(1) << "Done";

	LOG->level(2);

	LOG_MSG_(1) << fmt("Log level: %") % LOG->level();
	LOG_WRN << fmt("Warning %") % 3;
	LOG_MSG_(3);
	LOG_MSG_(4);
	LOG_ERR << "ERROR";

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x520, %rsp            # imm = 0x520
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
callq 0x3130
movq %rax, -0x408(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x2330
movq -0x400(%rbp), %rdx
leaq 0x3b11(%rip), %rsi      # 0x6004
leaq -0x30(%rbp), %rdi
callq 0x3260
jmp 0x24fe
leaq -0x69(%rbp), %rdi
movq %rdi, -0x410(%rbp)
callq 0x2330
movq -0x410(%rbp), %rdx
leaq 0x3af4(%rip), %rsi      # 0x6010
leaq -0x68(%rbp), %rdi
callq 0x3260
jmp 0x2527
leaq -0x91(%rbp), %rdi
movq %rdi, -0x418(%rbp)
callq 0x2330
movq -0x418(%rbp), %rdx
leaq 0x3acd(%rip), %rsi      # 0x6015
leaq -0x90(%rbp), %rdi
callq 0x3260
jmp 0x2556
movq -0x408(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x68(%rbp), %rdx
movl $0x3d, %ecx
xorl %r8d, %r8d
leaq -0x90(%rbp), %r9
callq 0x3160
movq %rax, -0x420(%rbp)
jmp 0x2582
movq -0x420(%rbp), %rdi
leaq 0x3a89(%rip), %rsi      # 0x6019
callq 0x3310
jmp 0x2597
leaq -0x90(%rbp), %rdi
callq 0x20d0
leaq -0x91(%rbp), %rdi
callq 0x2240
leaq -0x68(%rbp), %rdi
callq 0x20d0
leaq -0x69(%rbp), %rdi
callq 0x2240
leaq -0x30(%rbp), %rdi
callq 0x20d0
leaq -0x31(%rbp), %rdi
callq 0x2240
callq 0x3130
movq %rax, -0x430(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x428(%rbp)
callq 0x2330
movq -0x428(%rbp), %rdx
leaq 0x3a04(%rip), %rsi      # 0x6004
leaq -0xb8(%rbp), %rdi
callq 0x3260
jmp 0x260e
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x2330
movq -0x438(%rbp), %rdx
leaq 0x39e1(%rip), %rsi      # 0x6010
leaq -0xe0(%rbp), %rdi
callq 0x3260
jmp 0x263d
leaq -0x109(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x2330
movq -0x440(%rbp), %rdx
leaq 0x39b7(%rip), %rsi      # 0x6015
leaq -0x108(%rbp), %rdi
callq 0x3260
jmp 0x266c
movq -0x430(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
movl $0x51, %ecx
movl $0x1, %r8d
leaq -0x108(%rbp), %r9
callq 0x3160
movq %rax, -0x448(%rbp)
jmp 0x26a1
movq -0x448(%rbp), %rdi
leaq 0x3992(%rip), %rsi      # 0x6041
callq 0x3350
jmp 0x26b6
leaq -0x108(%rbp), %rdi
callq 0x20d0
leaq -0x109(%rbp), %rdi
callq 0x2240
leaq -0xe0(%rbp), %rdi
callq 0x20d0
leaq -0xe1(%rbp), %rdi
callq 0x2240
leaq -0xb8(%rbp), %rdi
callq 0x20d0
leaq -0xb9(%rbp), %rdi
callq 0x2240
callq 0x3130
movq %rax, %rdi
movl $0x2, %esi
callq 0x3390
callq 0x3130
movq %rax, -0x458(%rbp)
leaq -0x131(%rbp), %rdi
movq %rdi, -0x450(%rbp)
callq 0x2330
movq -0x450(%rbp), %rdx
leaq 0x38c7(%rip), %rsi      # 0x6004
leaq -0x130(%rbp), %rdi
callq 0x3260
jmp 0x274b
leaq -0x159(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x2330
movq -0x460(%rbp), %rdx
leaq 0x38a4(%rip), %rsi      # 0x6010
leaq -0x158(%rbp), %rdi
callq 0x3260
jmp 0x277a
leaq -0x181(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x2330
movq -0x468(%rbp), %rdx
leaq 0x387a(%rip), %rsi      # 0x6015
leaq -0x180(%rbp), %rdi
callq 0x3260
jmp 0x27a9
movq -0x458(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x158(%rbp), %rdx
movl $0x55, %ecx
movl $0x1, %r8d
leaq -0x180(%rbp), %r9
callq 0x3160
movq %rax, -0x470(%rbp)
jmp 0x27de
leaq 0x3861(%rip), %rsi      # 0x6046
leaq -0x1c8(%rbp), %rdi
callq 0x3460
jmp 0x27f3
callq 0x3130
movq %rax, -0x478(%rbp)
jmp 0x2801
movq -0x478(%rbp), %rdi
callq 0x35e0
movl %eax, -0x47c(%rbp)
jmp 0x2815
movl -0x47c(%rbp), %eax
movl %eax, -0x1cc(%rbp)
leaq -0x1c8(%rbp), %rdi
leaq -0x1cc(%rbp), %rsi
callq 0x34d0
movq %rax, -0x488(%rbp)
jmp 0x283d
movq -0x488(%rbp), %rsi
movq -0x470(%rbp), %rdi
callq 0x33e0
jmp 0x2852
leaq -0x1c8(%rbp), %rdi
callq 0x35f0
leaq -0x180(%rbp), %rdi
callq 0x20d0
leaq -0x181(%rbp), %rdi
callq 0x2240
leaq -0x158(%rbp), %rdi
callq 0x20d0
leaq -0x159(%rbp), %rdi
callq 0x2240
leaq -0x130(%rbp), %rdi
callq 0x20d0
leaq -0x131(%rbp), %rdi
callq 0x2240
callq 0x3130
movq %rax, -0x498(%rbp)
leaq -0x1f1(%rbp), %rdi
movq %rdi, -0x490(%rbp)
callq 0x2330
movq -0x490(%rbp), %rdx
leaq 0x3731(%rip), %rsi      # 0x6004
leaq -0x1f0(%rbp), %rdi
callq 0x3260
jmp 0x28e1
leaq -0x219(%rbp), %rdi
movq %rdi, -0x4a0(%rbp)
callq 0x2330
movq -0x4a0(%rbp), %rdx
leaq 0x370e(%rip), %rsi      # 0x6010
leaq -0x218(%rbp), %rdi
callq 0x3260
jmp 0x2910
leaq -0x241(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x2330
movq -0x4a8(%rbp), %rdx
leaq 0x3722(%rip), %rsi      # 0x6053
leaq -0x240(%rbp), %rdi
callq 0x3260
jmp 0x293f
movq -0x498(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
leaq -0x218(%rbp), %rdx
movl $0x56, %ecx
xorl %r8d, %r8d
leaq -0x240(%rbp), %r9
callq 0x3160
movq %rax, -0x4b0(%rbp)
jmp 0x2971
leaq 0x36df(%rip), %rsi      # 0x6057
leaq -0x288(%rbp), %rdi
callq 0x3460
jmp 0x2986
movl $0x3, -0x28c(%rbp)
leaq -0x288(%rbp), %rdi
leaq -0x28c(%rbp), %rsi
callq 0x34d0
movq %rax, -0x4b8(%rbp)
jmp 0x29ac
movq -0x4b8(%rbp), %rsi
movq -0x4b0(%rbp), %rdi
callq 0x33e0
jmp 0x29c1
leaq -0x288(%rbp), %rdi
callq 0x35f0
leaq -0x240(%rbp), %rdi
callq 0x20d0
leaq -0x241(%rbp), %rdi
callq 0x2240
leaq -0x218(%rbp), %rdi
callq 0x20d0
leaq -0x219(%rbp), %rdi
callq 0x2240
leaq -0x1f0(%rbp), %rdi
callq 0x20d0
leaq -0x1f1(%rbp), %rdi
callq 0x2240
callq 0x3130
movq %rax, -0x4c8(%rbp)
leaq -0x2b1(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0x2330
movq -0x4c0(%rbp), %rdx
leaq 0x35c2(%rip), %rsi      # 0x6004
leaq -0x2b0(%rbp), %rdi
callq 0x3260
jmp 0x2a50
leaq -0x2d9(%rbp), %rdi
movq %rdi, -0x4d0(%rbp)
callq 0x2330
movq -0x4d0(%rbp), %rdx
leaq 0x359f(%rip), %rsi      # 0x6010
leaq -0x2d8(%rbp), %rdi
callq 0x3260
jmp 0x2a7f
leaq -0x301(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x2330
movq -0x4d8(%rbp), %rdx
leaq 0x3575(%rip), %rsi      # 0x6015
leaq -0x300(%rbp), %rdi
callq 0x3260
jmp 0x2aae
movq -0x4c8(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
leaq -0x2d8(%rbp), %rdx
movl $0x57, %ecx
movl $0x3, %r8d
leaq -0x300(%rbp), %r9
callq 0x3160
jmp 0x2adc
leaq -0x300(%rbp), %rdi
callq 0x20d0
leaq -0x301(%rbp), %rdi
callq 0x2240
leaq -0x2d8(%rbp), %rdi
callq 0x20d0
leaq -0x2d9(%rbp), %rdi
callq 0x2240
leaq -0x2b0(%rbp), %rdi
callq 0x20d0
leaq -0x2b1(%rbp), %rdi
callq 0x2240
callq 0x3130
movq %rax, -0x4e8(%rbp)
leaq -0x329(%rbp), %rdi
movq %rdi, -0x4e0(%rbp)
callq 0x2330
movq -0x4e0(%rbp), %rdx
leaq 0x34b3(%rip), %rsi      # 0x6004
leaq -0x328(%rbp), %rdi
callq 0x3260
jmp 0x2b5f
leaq -0x351(%rbp), %rdi
movq %rdi, -0x4f0(%rbp)
callq 0x2330
movq -0x4f0(%rbp), %rdx
leaq 0x3490(%rip), %rsi      # 0x6010
leaq -0x350(%rbp), %rdi
callq 0x3260
jmp 0x2b8e
leaq -0x379(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0x2330
movq -0x4f8(%rbp), %rdx
leaq 0x3466(%rip), %rsi      # 0x6015
leaq -0x378(%rbp), %rdi
callq 0x3260
jmp 0x2bbd
movq -0x4e8(%rbp), %rdi
leaq -0x328(%rbp), %rsi
leaq -0x350(%rbp), %rdx
movl $0x58, %ecx
movl $0x4, %r8d
leaq -0x378(%rbp), %r9
callq 0x3160
jmp 0x2beb
leaq -0x378(%rbp), %rdi
callq 0x20d0
leaq -0x379(%rbp), %rdi
callq 0x2240
leaq -0x350(%rbp), %rdi
callq 0x20d0
leaq -0x351(%rbp), %rdi
callq 0x2240
leaq -0x328(%rbp), %rdi
callq 0x20d0
leaq -0x329(%rbp), %rdi
callq 0x2240
callq 0x3130
movq %rax, -0x508(%rbp)
leaq -0x3a1(%rbp), %rdi
movq %rdi, -0x500(%rbp)
callq 0x2330
movq -0x500(%rbp), %rdx
leaq 0x33a4(%rip), %rsi      # 0x6004
leaq -0x3a0(%rbp), %rdi
callq 0x3260
jmp 0x2c6e
leaq -0x3c9(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0x2330
movq -0x510(%rbp), %rdx
leaq 0x3381(%rip), %rsi      # 0x6010
leaq -0x3c8(%rbp), %rdi
callq 0x3260
jmp 0x2c9d
leaq -0x3f1(%rbp), %rdi
movq %rdi, -0x518(%rbp)
callq 0x2330
movq -0x518(%rbp), %rdx
leaq 0x33a3(%rip), %rsi      # 0x6061
leaq -0x3f0(%rbp), %rdi
callq 0x3260
jmp 0x2ccc
movq -0x508(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
leaq -0x3c8(%rbp), %rdx
movl $0x59, %ecx
xorl %r8d, %r8d
leaq -0x3f0(%rbp), %r9
callq 0x3160
movq %rax, -0x520(%rbp)
jmp 0x2cfe
movq -0x520(%rbp), %rdi
leaq 0x3359(%rip), %rsi      # 0x6065
callq 0x3620
jmp 0x2d13
leaq -0x3f0(%rbp), %rdi
callq 0x20d0
leaq -0x3f1(%rbp), %rdi
callq 0x2240
leaq -0x3c8(%rbp), %rdi
callq 0x20d0
leaq -0x3c9(%rbp), %rdi
callq 0x2240
leaq -0x3a0(%rbp), %rdi
callq 0x20d0
leaq -0x3a1(%rbp), %rdi
callq 0x2240
xorl %eax, %eax
addq $0x520, %rsp            # imm = 0x520
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2dcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2dbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2da8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x20d0
leaq -0x91(%rbp), %rdi
callq 0x2240
leaq -0x68(%rbp), %rdi
callq 0x20d0
leaq -0x69(%rbp), %rdi
callq 0x2240
leaq -0x30(%rbp), %rdi
callq 0x20d0
leaq -0x31(%rbp), %rdi
callq 0x2240
jmp 0x311b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2e4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2e37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2e1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x20d0
leaq -0x109(%rbp), %rdi
callq 0x2240
leaq -0xe0(%rbp), %rdi
callq 0x20d0
leaq -0xe1(%rbp), %rdi
callq 0x2240
leaq -0xb8(%rbp), %rdi
callq 0x20d0
leaq -0xb9(%rbp), %rdi
callq 0x2240
jmp 0x311b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2eec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ed4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ebc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2eb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x35f0
leaq -0x180(%rbp), %rdi
callq 0x20d0
leaq -0x181(%rbp), %rdi
callq 0x2240
leaq -0x158(%rbp), %rdi
callq 0x20d0
leaq -0x159(%rbp), %rdi
callq 0x2240
leaq -0x130(%rbp), %rdi
callq 0x20d0
leaq -0x131(%rbp), %rdi
callq 0x2240
jmp 0x311b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2f89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2f71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2f59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2f4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x35f0
leaq -0x240(%rbp), %rdi
callq 0x20d0
leaq -0x241(%rbp), %rdi
callq 0x2240
leaq -0x218(%rbp), %rdi
callq 0x20d0
leaq -0x219(%rbp), %rdi
callq 0x2240
leaq -0x1f0(%rbp), %rdi
callq 0x20d0
leaq -0x1f1(%rbp), %rdi
callq 0x2240
jmp 0x311b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x300c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ff4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2fdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x20d0
leaq -0x301(%rbp), %rdi
callq 0x2240
leaq -0x2d8(%rbp), %rdi
callq 0x20d0
leaq -0x2d9(%rbp), %rdi
callq 0x2240
leaq -0x2b0(%rbp), %rdi
callq 0x20d0
leaq -0x2b1(%rbp), %rdi
callq 0x2240
jmp 0x311b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x308f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3077
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x305f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x378(%rbp), %rdi
callq 0x20d0
leaq -0x379(%rbp), %rdi
callq 0x2240
leaq -0x350(%rbp), %rdi
callq 0x20d0
leaq -0x351(%rbp), %rdi
callq 0x2240
leaq -0x328(%rbp), %rdi
callq 0x20d0
leaq -0x329(%rbp), %rdi
callq 0x2240
jmp 0x311b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x310f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x30f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x30df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x20d0
leaq -0x3f1(%rbp), %rdi
callq 0x2240
leaq -0x3c8(%rbp), %rdi
callq 0x20d0
leaq -0x3c9(%rbp), %rdi
callq 0x2240
leaq -0x3a0(%rbp), %rdi
callq 0x20d0
leaq -0x3a1(%rbp), %rdi
callq 0x2240
movq -0x40(%rbp), %rdi
callq 0x2320
nopw %cs:(%rax,%rax)
nop