Function at 0x40f670
Capabilities:
Create directory
Get common file path
Get hostname
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x585f95
mov eax, dword fs:[0]
push eax
sub esp, 0x608
mov eax, dword [0x5fcfe4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, ecx
mov dword [ebp - 0x524], eax
mov dword [ebp - 0x548], 0
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x564], 0x10
call fcn.0041b1fd
mov edi, eax
test edi, edi
je 0x41050a
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x538], eax
mov dword [ebp - 0x540], eax
mov dword [ebp - 4], 0
call fcn.0041b1fd
mov edi, eax
test edi, edi
je 0x410514
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x528], eax
mov byte [ebp - 4], 1
call fcn.0041b1fd
mov edi, eax
test edi, edi
je 0x41051e
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
lea esi, [eax + 0x10]
mov dword [ebp - 0x514], esi
mov byte [ebp - 4], 2
call fcn.0041b1fd
mov ebx, eax
test ebx, ebx
je 0x410528
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
add eax, 0x10
mov dword [ebp - 0x534], eax
mov dword [ebp - 0x544], eax
mov byte [ebp - 4], 3
call fcn.0041b1fd
mov ebx, eax
test ebx, ebx
je 0x410532
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
lea edi, [eax + 0x10]
mov dword [ebp - 0x530], edi
mov byte [ebp - 4], 4
call fcn.0041b1fd
mov dword [ebp - 0x510], eax
test eax, eax
je 0x41053c
mov eax, dword [eax]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x510]
call ebx
add eax, 0x10
mov dword [ebp - 0x560], eax
mov dword [ebp - 0x53c], eax
push 0xc8
lea eax, [ebp - 0xfc]
mov byte [ebp - 4], 5
push 0
push eax
mov dword [ebp - 0x55c], 0
call fcn.00560250
add esp, 0xc
mov dword [ebp - 0x558], 0
lea eax, [ebp - 0x52c]
push 0
push 0x5ddb70
push 0
push str..lpf
push SysReAllocStringLen
push eax
call fcn.00415b60
mov byte [ebp - 4], 6
mov ecx, dword [eax]
mov ebx, dword [ebp - 0x534]
add ebx, 0xfffffff0
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x40f8c4
cmp dword [ebx + 0xc], 0
jl 0x40f8a9
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x40f8a9
push edx
call fcn.0040a8a0
add esp, 4
mov dword [ebp - 0x518], eax
or ecx, 0xffffffff
lea edx, [ebx + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f89e
lfence
mov eax, dword [ebx]
push ebx
mov dword [ebp - 0x510], eax
mov edx, dword [eax]
mov ebx, dword [edx + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x510]
call ebx
mov eax, dword [ebp - 0x518]
add eax, 0x10
mov dword [ebp - 0x544], eax
jmp 0x40f8be
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x544]
call fcn.0040b2c0
mov eax, dword [ebp - 0x544]
mov dword [ebp - 0x534], eax
mov byte [ebp - 4], 5
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x52c]
mov eax, ebx
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x40f904
lfence
mov eax, dword [ecx]
mov dword [ebp - 0x510], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x510]
call ebx
or ebx, 0xffffffff
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x40f92e
push 0x104
lea ecx, [ebp - 0x530]
call fcn.0040b0e0
mov edi, dword [ebp - 0x530]
call fcn.0041c8e3
push 0x104
push edi
mov eax, dword [eax + 4]
push dword [eax + 0x44]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push dword [edi - 8]
push edi
call fcn.00566c42
add esp, 8
test eax, eax
js 0x410500
cmp eax, dword [edi - 8]
jg 0x410500
xor ecx, ecx
mov dword [edi - 0xc], eax
sub esp, 8
mov word [edi + eax*2], cx
mov edx, edi
lea ecx, [ebp - 0x530]
push 1
call fcn.0040cae0
mov edi, dword [ebp - 0x524]
add esp, 0xc
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x40fa39
cmp word [eax], 0
je 0x40fa39
push 0
push eax
call fcn.0056d455
add esp, 8
cmp eax, 0xffffffff
je 0x40fa39
mov ecx, dword [edi + 0xb0]
lea edi, [esi - 0x10]
mov dword [ebp - 0x510], edi
lea edx, [ecx - 0x10]
cmp edx, edi
je 0x40faed
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x40fa25
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x40fa25
push edx
call fcn.0040a8a0
add esp, 4
mov dword [ebp - 0x518], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x40fa17
lfence
mov edi, dword [edi]
push dword [ebp - 0x510]
mov edx, dword [edi]
mov esi, dword [edx + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x518]
lea esi, [eax + 0x10]
mov dword [ebp - 0x514], esi
jmp 0x40faed
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x514]
call fcn.0040b2c0
jmp 0x40fae7
lea eax, [ebp - 0x558]
push eax
push 0x20019
push 0
push 0x5ddb70
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40faed
lea eax, [ebp - 0x510]
mov dword [ebp - 0x510], 0xc8
push eax
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x55c]
push eax
push 0
push 0x5ddba0
push dword [ebp - 0x558]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40faed
mov eax, dword [ebp - 0x55c]
cmp eax, 1
je 0x40faa5
cmp eax, 2
jne 0x40faed
lea ecx, [ebp - 0xfc]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40fab0
sub ecx, edx
lea eax, [ebp - 0xfc]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x514]
call fcn.0040b2c0
push 0x5dd330
push 0x5ddbac
lea ecx, [ebp - 0x514]
call fcn.00417df0
mov esi, dword [ebp - 0x514]
test esi, esi
je 0x40fb0b
cmp word [esi], 0
je 0x40fb0b
push 0
push esi
call fcn.0056d455
add esp, 8
cmp eax, 0xffffffff
jne 0x40fba4
push 0x208
lea eax, [ebp - 0x50c]
push 0
push eax
call fcn.00560250
add esp, 0xc
lea eax, [ebp - 0x50c]
push 0
push 0x2e
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x40fb69
lea ecx, [ebp - 0x50c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40fb41
sub ecx, edx
lea eax, [ebp - 0x50c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x514]
call fcn.0040b2c0
mov esi, dword [ebp - 0x514]
test esi, esi
je 0x40fbc9
cmp word [esi], 0
je 0x40fba4
push 0
push esi
call fcn.0056d455
add esp, 8
cmp eax, 0xffffffff
je 0x40fba4
push 9
push 0x5ddbb0
lea ecx, [ebp - 0x514]
call fcn.0040a7b0
mov esi, dword [ebp - 0x514]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test esi, esi
je 0x40fbc9
cmp word [esi], 0
je 0x40fbc9
push 0
push esi
call fcn.0056d455
add esp, 8
cmp eax, 0xffffffff
je 0x40fbc9
mov edi, dword [ebp - 0x530]
jmp 0x40fc4e
mov edi, dword [ebp - 0x530]
lea ecx, [esi - 0x10]
mov dword [ebp - 0x510], ecx
lea edx, [edi - 0x10]
cmp edx, ecx
je 0x40fc4e
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x40fc39
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40fc39
push edx
call fcn.0040a8a0
add esp, 4
mov dword [ebp - 0x518], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x40fc2e
lfence
mov ecx, dword [ebp - 0x510]
push ecx
mov ebx, dword [ecx]
mov edx, dword [ebx]
mov esi, dword [edx + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
mov eax, dword [ebp - 0x518]
or ebx, 0xffffffff
lea esi, [eax + 0x10]
mov dword [ebp - 0x514], esi
jmp 0x40fc4e
push dword [edi - 0xc]
lea ecx, [ebp - 0x514]
push edi
call fcn.0040b2c0
mov esi, dword [ebp - 0x514]
mov eax, dword [ebp - 0x524]
lea edx, [esi - 0x10]
mov ecx, dword [eax + 0xb0]
sub ecx, 0x10
mov dword [ebp - 0x518], ecx
cmp edx, ecx
je 0x40fcef
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x510], eax
jl 0x40fcda
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40fcda
push edx
call fcn.0040a8a0
mov edx, dword [ebp - 0x510]
add esp, 4
mov dword [ebp - 0x52c], eax
mov ecx, ebx
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40fcc9
mov ecx, dword [ebp - 0x518]
lfence
push ecx
mov ebx, dword [ecx]
mov edx, dword [ebx]
mov esi, dword [edx + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
mov eax, dword [ebp - 0x52c]
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x524]
add eax, 0x10
mov dword [ecx + 0xb0], eax
jmp 0x40fcef
mov ecx, dword [ebp - 0x524]
push dword [esi - 0xc]
push esi
lea ecx, [ecx + 0xb0]
call fcn.0040b2c0
push 0x5dd330
push 0x5ddbac
lea ecx, [ebp - 0x514]
call fcn.00417df0
mov esi, dword [ebp - 0x514]
mov ecx, dword [esi - 0xc]
lea eax, [ecx - 1]
test eax, eax
js 0x410500
cmp eax, ecx
jg 0x410500
cmp word [esi + eax*2], 0x5c
je 0x40fd3f
push 1
push 0x5dd32c
lea ecx, [ebp - 0x514]
call fcn.0040a7b0
mov esi, dword [ebp - 0x514]
push 1
push str.CLIENTNAME
push str.Clientname
push dword [ebp - 0x534]
lea eax, [ebp - 0x520]
push SysReAllocStringLen
push eax
call fcn.00415b60
mov byte [ebp - 4], 7
mov edx, dword [eax]
mov ecx, dword [ebp - 0x538]
add ecx, 0xfffffff0
mov dword [ebp - 0x52c], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x510], eax
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x40fe1d
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x518], eax
jl 0x40fe02
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x40fe02
mov eax, dword [ebp - 0x510]
push eax
call fcn.0040a8a0
mov dword [ebp - 0x51c], eax
add esp, 4
mov eax, dword [ebp - 0x518]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40fdf1
lfence
mov ecx, dword [ebp - 0x52c]
push ecx
mov eax, dword [ecx]
mov dword [ebp - 0x510], eax
mov edx, dword [eax]
mov ebx, dword [edx + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x510]
call ebx
or ebx, 0xffffffff
mov eax, dword [ebp - 0x51c]
add eax, 0x10
mov dword [ebp - 0x540], eax
jmp 0x40fe17
push dword [edx - 0xc]
lea ecx, [ebp - 0x540]
push edx
call fcn.0040b2c0
mov eax, dword [ebp - 0x540]
mov dword [ebp - 0x538], eax
mov byte [ebp - 4], 5
mov eax, ebx
mov ecx, dword [ebp - 0x520]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x40fe57
lfence
mov eax, dword [ecx]
mov dword [ebp - 0x510], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x510]
call ebx
lea eax, [ebp - 0x564]
push eax
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
test eax, eax
je 0x40ff43
push dword [ebp - 0x538]
xor eax, eax
mov dword [ebp - 0x520], 0
mov word [ebp - 0x304], ax
lea eax, [ebp - 0x304]
push 0x104
push eax
lea eax, [ebp - 0x520]
push eax
call fcn.0056d82f
lea ecx, [ebp - 0x34]
add esp, 0x10
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40feb0
sub ecx, edx
lea eax, [ebp - 0x34]
sar ecx, 1
cmp word [ebp - 0x304], 0
push ecx
lea ecx, [ebp - 0x528]
push eax
je 0x40ff18
call fcn.0040b2c0
push 1
push 0x5ddbf4
lea ecx, [ebp - 0x528]
call fcn.0040a7b0
lea ecx, [ebp - 0x304]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40fef4
sub ecx, edx
lea eax, [ebp - 0x304]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x528]
call fcn.0040a7b0
jmp 0x40ff1d
call fcn.0040b2c0
push 1
push 0x5ddbf4
lea ecx, [ebp - 0x528]
call fcn.0040a7b0
push 9
push 0x5ddbf8
lea ecx, [ebp - 0x528]
call fcn.0040a7b0
jmp 0x40ff55
push 9
push 0x5ddbf8
lea ecx, [ebp - 0x528]
call fcn.0040b2c0
mov byte [ebp - 4], 8
mov eax, dword [esi - 0x10]
mov dword [ebp - 0x520], eax
test eax, eax
je 0x40ff85
mov eax, dword [eax]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x520]
call ebx
mov dword [ebp - 0x51c], eax
test eax, eax
jne 0x40ffb3
call fcn.0041b1fd
mov dword [ebp - 0x520], eax
mov ecx, dword [eax]
mov ebx, dword [ecx + 0x10]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x520]
call ebx
mov dword [ebp - 0x51c], eax
test eax, eax
je 0x410546
mov eax, dword [eax]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x51c]
call ebx
add eax, 0x10
mov dword [ebp - 0x548], 1
mov dword [ebp - 0x51c], eax
mov eax, dword [ebp - 0x528]
mov dword [ebp - 0x510], eax
push dword [eax - 0xc]
push eax
push dword [esi - 0xc]
lea eax, [ebp - 0x51c]
push esi
push eax
call fcn.00418db0
mov ebx, dword [ebp - 0x524]
add esp, 0x14
mov eax, dword [ebp - 0x51c]
add ebx, 0xdc
mov dword [ebp - 0x524], ebx
mov ecx, dword [ebx]
lea edx, [eax - 0x10]
sub ecx, 0x10
mov dword [ebp - 0x518], edx
mov dword [ebp - 0x52c], ecx
cmp edx, ecx
je 0x4100be
add ecx, 0xc
mov dword [ebp - 0x520], ecx
cmp dword [ecx], 0
jl 0x4100ad
mov ebx, dword [ebp - 0x52c]
mov ecx, dword [edx]
cmp ecx, dword [ebx]
mov ebx, dword [ebp - 0x524]
jne 0x4100ad
push edx
call fcn.0040a8a0
mov edx, dword [ebp - 0x520]
add esp, 4
mov dword [ebp - 0x54c], eax
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4100a6
lfence
mov ecx, dword [ebp - 0x52c]
push ecx
mov eax, dword [ecx]
mov dword [ebp - 0x520], eax
mov edx, dword [eax]
mov ebx, dword [edx + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x520]
call ebx
mov ebx, dword [ebp - 0x524]
mov eax, dword [ebp - 0x54c]
add eax, 0x10
mov dword [ebx], eax
jmp 0x4100b8
push dword [eax - 0xc]
mov ecx, ebx
push eax
call fcn.0040b2c0
mov edx, dword [ebp - 0x518]
mov byte [ebp - 4], 5
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4100f6
lfence
mov eax, dword [edx]
mov dword [ebp - 0x54c], eax
push edx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x54c]
call ebx
mov ebx, dword [ebp - 0x524]
mov eax, dword [ebx]
test eax, eax
je 0x41011f
cmp word [eax], 0
je 0x41011f
push 0x5dd848
push eax
call fcn.0056d33d
add esp, 8
test eax, eax
je 0x41011f
push eax
call fcn.0056d3d5
jmp 0x4103b6
push ecx
lea ecx, [ebp - 0x614]
call fcn.00416d90
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x5c4], 0
mov dword [ebp - 0x548], ebx
jne 0x410229
push 0x40
push 2
push dword [ebx]
call fcn.0055ed15
add esp, 0xc
test eax, eax
je 0x410229
push 1
push eax
lea ecx, [ebp - 0x610]
call fcn.004185e0
mov eax, dword [ebp - 0x5dc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0x54c], eax
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x51c]
call ebx
lea eax, [ebp - 0x550]
mov byte [ebp - 4], 0xb
push eax
call fcn.00419220
add esp, 4
lea ecx, [ebp - 0x610]
push eax
call fcn.00418450
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x51c]
test eax, eax
je 0x4101f2
mov eax, dword [eax]
mov ebx, dword [eax + 8]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x51c]
call ebx
mov dword [ebp - 0x54c], eax
test eax, eax
je 0x4101f2
mov ecx, dword [eax]
push 1
mov ebx, dword [ecx]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x54c]
call ebx
mov eax, dword [ebp - 0x614]
lea ecx, [ebp - 0x614]
xor edx, edx
mov eax, dword [eax + 4]
add ecx, eax
mov eax, 4
push ecx
cmp dword [ecx + 0x38], edx
cmovne eax, edx
push eax
call fcn.0040c5d0
mov ebx, dword [ebp - 0x524]
mov dword [ebp - 4], 9
jmp 0x4102fc
mov eax, dword [ebp - 0x614]
lea ecx, [ebp - 0x614]
mov eax, dword [eax + 4]
add ecx, eax
xor eax, eax
push ecx
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.0040c5d0
mov dword [ebp - 4], 9
jmp 0x4102fc
lea ecx, [ebp - 0x610]
call fcn.004186d0
test eax, eax
jne 0x410335
mov eax, dword [ebp - 0x614]
lea ecx, [ebp - 0x614]
mov eax, dword [eax + 4]
add ecx, eax
xor eax, eax
push ecx
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.0040c5d0
push 0
push 0x5dd330
mov ecx, ebx
call fcn.0040b2c0
mov eax, dword [ebp - 0x614]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x618], eax
lea ecx, [ebp - 0x610]
call fcn.00416a10
mov eax, dword [ebp - 0x614]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x618], eax
lea eax, [ebp - 0x5ac]
mov byte [ebp - 4], 0xd
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.0055ebb4
mov byte [ebp - 4], 4
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x560]
add esp, 4
add ecx, 0xfffffff0
mov eax, ebx
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4103f9
lfence
mov eax, dword [ecx]
mov dword [ebp - 0x554], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x554]
call ebx
or ebx, 0xffffffff
mov byte [ebp - 4], 3
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x410426
lfence
mov ebx, dword [edi]
push edi
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
or ebx, 0xffffffff
mov byte [ebp - 4], 2
mov eax, ebx
mov ecx, dword [ebp - 0x534]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x410459
lfence
mov ebx, dword [ecx]
push ecx
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
or ebx, 0xffffffff
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x410483
lfence
mov edi, dword [esi]
push esi
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov byte [ebp - 4], 0
mov eax, ebx
mov ecx, dword [ebp - 0x510]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4104b3
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x538]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4104e4
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0055d0aa
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
int3