Function at 0x412c70
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5032ad
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x557200]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x38], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
jne 0x412e11
push 0x18
xor eax, eax
mov dword [ebp - 0x34], 0
push str.LogArchiveManager::Start
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 7
mov word [ebp - 0x34], ax
call fcn.004084c0
push 0x5c
push str.D:_MyProjectMOffice4.0moffice_4.0_agent_win__SourceLoggerLogArchiveManager.cpp
mov dword [ebp - 4], 0
call fcn.004b69f9
add esp, 8
test eax, eax
je 0x412d04
push 0x5c
push str.D:_MyProjectMOffice4.0moffice_4.0_agent_win__SourceLoggerLogArchiveManager.cpp
call fcn.004b69f9
add esp, 8
lea edx, [eax + 2]
jmp 0x412d09
mov edx, str.D:_MyProjectMOffice4.0moffice_4.0_agent_win__SourceLoggerLogArchiveManager.cpp
mov ecx, edx
mov dword [ebp - 0x54], 0
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412d30
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x54]
call fcn.004084c0
sub esp, 0x18
mov byte [ebp - 4], 1
mov ecx, esp
mov dword [ebp - 0x38], esp
push 0x17
push str.logdate_vector_is_empty
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
call fcn.004084c0
mov byte [ebp - 4], 2
call fcn.00408db0
push 0x22
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x54]
push eax
push 3
push dword [0x560f9c]
call fcn.0040d3e0
mov edx, dword [ebp - 0x40]
add esp, 0x2c
cmp edx, 8
jb 0x412dd6
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x412dcc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41307c
push edx
push ecx
call fcn.004b51c1
add esp, 8
mov edx, dword [ebp - 0x20]
cmp edx, 8
jb 0x413038
mov ecx, dword [ebp - 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x412e0a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41307c
push edx
push ecx
jmp 0x413030
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 3
lea ebx, [eax + 0x10]
nop
push esi
lea ecx, [ebp - 0x34]
call fcn.00408370
push 0x3c
mov byte [ebp - 4], 4
call fcn.004b4f40
push 0x3c
mov edi, eax
push 0
push edi
mov dword [ebp - 0x3c], edi
call fcn.004b73e0
mov dword [edi + 4], 0
lea ecx, [edi + 0xc]
mov dword [edi + 8], 0
xor eax, eax
mov dword [edi], vtable.LogArchiveThread.0
xor edx, edx
mov dword [ecx], 0
add esp, 0x10
mov word [ecx], ax
lea eax, [edi + 0x24]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov dword [eax], 0
mov word [eax], dx
lea edx, [ebp - 0x34]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov dword [ebp - 0x3c], edi
cmp ecx, edx
je 0x412ed2
cmp dword [ebp - 0x20], 8
mov eax, edx
push dword [ebp - 0x24]
cmovae eax, dword [ebp - 0x34]
push eax
call fcn.004084c0
lea eax, [edi + 0x24]
cmp eax, ebx
je 0x412eeb
cmp dword [ebx + 0x14], 8
mov ecx, ebx
jb 0x412ee0
mov ecx, dword [ebx]
push dword [ebx + 0x10]
push ecx
mov ecx, eax
call fcn.004084c0
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x14]
je 0x412efb
mov dword [eax], edi
add dword [ebp - 0x18], 4
jmp 0x412f08
lea ecx, [ebp - 0x3c]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.00413160
mov eax, dword [edi + 4]
test eax, eax
je 0x412f28
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x412f41
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [edi + 8]
push eax
push 0
push edi
push 0x412ad0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi + 4], eax
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x20]
cmp edx, 8
jb 0x412f7f
mov ecx, dword [ebp - 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x412f75
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413077
push edx
push ecx
call fcn.004b51c1
add esp, 8
mov eax, dword [ebp - 0x38]
add esi, 0x18
cmp dword [eax + 8], esi
jne 0x412e40
lea ebx, [eax + 4]
push ebx
push dword [ebx + 4]
push dword [ebx]
call fcn.00408fa0
mov edi, dword [ebx]
mov eax, 0x2aaaaaab
mov dword [ebx + 4], edi
mov ecx, edi
mov esi, dword [ebx]
add esp, 0xc
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x412fd0
push ebx
push edi
push esi
call fcn.00408fa0
add esp, 0xc
mov dword [ebx + 4], esi
nop dword [eax + eax]
mov ecx, ebx
call fcn.00411ef0
mov edi, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], edi
je 0x413001
nop
mov esi, dword [edi]
push 0xffffffffffffffff
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 4]
add edi, 4
cmp dword [ebp - 0x18], edi
jne 0x412fe0
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], edi
cmp edi, ecx
je 0x413054
test edi, edi
je 0x413038
sub ecx, edi
mov eax, edi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x41302e
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413077
push ecx
push edi
call fcn.004b51c1
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b4f32
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x413038
sub ecx, edi
mov eax, edi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x41302e
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41302e
call fcn.004b9cae
call fcn.004b9cae
int3