Function at 0x4024f0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x56ba68
mov eax, dword fs:[0]
push eax
sub esp, 0x4a8
mov eax, dword [0x5d6c64]
xor eax, esp
mov dword [esp + 0x4a0], eax
push ebx
push esi
push edi
mov eax, dword [0x5d6c64]
xor eax, esp
push eax
lea eax, [esp + 0x4b8]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
mov esi, ecx
mov dword [esp + 0x24], eax
lea eax, [esi + 4]
mov cl, byte [eax + 0x18]
lea ebx, [eax + 0x18]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
test cl, cl
je 0x40255d
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor edi, edi
mov dword [esp + 0x4c0], edi
cmp byte [esi + 0x20], 0
je 0x40257a
cmp dword [esi + 0x34], edi
jne 0x40257a
cmp dword [esi + 0x50], edi
je 0x403632
mov eax, dword [0x5efd14]
cmp eax, edi
jg 0x402588
mov eax, 1
mov edx, dword [esi + 0xd8]
shr edx, 0x14
cmp edx, eax
jge 0x4025a8
call dword [sym.imp.MSVCR100.dll__getpid]
cmp dword [0x5fea2c], eax
je 0x4025d8
mov dword [0x5fea2c], eax
mov eax, dword [esi + 0xcc]
cmp eax, edi
je 0x4025bc
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
mov dword [esi + 0xcc], edi
mov dword [esi + 0xd4], edi
mov dword [esi + 0xd8], edi
mov dword [esi + 0xdc], 0x1f
cmp dword [esi + 0xcc], edi
jne 0x403529
inc dword [esi + 0xdc]
cmp dword [esi + 0xdc], 0x20
jne 0x403632
lea edx, [ebp + 0xc]
push edx
lea eax, [esp + 0x2ec]
push eax
mov dword [esi + 0xdc], edi
call dword [sym.imp.MSVCR100.dll__localtime64_s]
add esp, 8
lea ecx, [esp + 0x2c]
push ecx
call fcn.00404ee0
mov byte [esp + 0x4c0], 1
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
mov edi, dword [sym.imp.MSVCP100.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
lea eax, [esp + eax + 0x2c]
push 0
mov byte [eax + 0x40], 0x30
mov eax, dword [0x5fea2c]
lea ecx, [esp + 0x218]
push 2
push ecx
mov dword [esp + 0x34], eax
call edi
mov edx, dword [esp + 0x308]
add esp, 0xc
add edx, 0x76c
push edx
lea ecx, [esp + 0x30]
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov ebx, eax
test ebx, ebx
je 0x40267a
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x2c8]
push 2
push ecx
call edi
mov edx, dword [esp + 0x304]
add esp, 0xc
inc edx
push edx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov ebx, eax
test ebx, ebx
je 0x4026bb
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x2d8]
push 2
push ecx
call edi
mov edx, dword [esp + 0x300]
add esp, 0xc
push 0x2d
push edx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00407e20
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x402706
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x298]
push 2
push ecx
call edi
mov edx, dword [esp + 0x2fc]
add esp, 0xc
push edx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov ebx, eax
test ebx, ebx
je 0x402746
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x2a8]
push 2
push ecx
call edi
mov edx, dword [esp + 0x2f8]
add esp, 0xc
push edx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov ebx, eax
test ebx, ebx
je 0x402786
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2f4]
add esp, 0xc
push ecx
push ecx
push 0x2e
push edx
mov ecx, ebx
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00407e20
add esp, 0xc
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
lea esi, [esp + 0x30c]
lea ecx, [esp + 0x2c]
call fcn.00404f90
lea eax, [esp + 0xc4]
push eax
mov byte [esp + 0x4c4], 2
call fcn.00405590
mov byte [esp + 0x4c0], 3
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + 4]
lea eax, [esp + eax + 0xc4]
mov edx, 0x30
push 0
mov word [eax + 0x40], dx
mov eax, dword [0x5fea2c]
lea ecx, [esp + 0x228]
push 2
push ecx
mov dword [esp + 0x28], eax
call edi
mov edx, dword [esp + 0x308]
add esp, 0xc
add edx, 0x76c
push edx
lea ecx, [esp + 0xc8]
mov ebx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int_]
mov esi, eax
test esi, esi
je 0x40284a
mov eax, dword [esi]
mov eax, dword [eax + 4]
add eax, esi
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
push ecx
push edx
push eax
mov eax, dword [ebx]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x258]
push 2
push ecx
call edi
mov edx, dword [esp + 0x304]
add esp, 0xc
inc edx
push edx
mov ecx, esi
mov ebx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int_]
mov esi, eax
test esi, esi
je 0x40288b
mov eax, dword [esi]
mov eax, dword [eax + 4]
add eax, esi
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
push ecx
push edx
push eax
mov eax, dword [ebx]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x248]
push 2
push ecx
call edi
mov edx, dword [esp + 0x300]
add esp, 0xc
push 0x2d
push edx
mov ecx, esi
mov ebx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int_]
push eax
call fcn.00408020
add esp, 8
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4028d5
xor ecx, ecx
jmp 0x4028dc
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
push edx
push eax
push ecx
mov ecx, dword [ebx]
call ecx
add esp, 0xc
push 0
lea edx, [esp + 0x268]
push 2
push edx
call edi
mov ecx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x2fc]
add esp, 0xc
push eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int_]
mov ebx, eax
test ebx, ebx
je 0x40291e
mov ecx, dword [ebx]
mov eax, dword [ecx + 4]
add eax, ebx
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
push edx
mov edx, dword [esi]
push ecx
push eax
call edx
add esp, 0xc
push 0
lea eax, [esp + 0x288]
push 2
push eax
call edi
mov ecx, dword [esp + 0x2f8]
add esp, 0xc
push ecx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int_]
mov ebx, eax
test ebx, ebx
je 0x40295e
mov edx, dword [ebx]
mov eax, dword [edx + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2f4]
add esp, 0xc
push ecx
push ecx
push 0x2e
push edx
mov ecx, ebx
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int_]
push eax
call fcn.00408020
add esp, 0xc
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int_]
lea ecx, [esp + 0x37c]
lea eax, [esp + 0xc4]
call fcn.00405640
mov eax, dword [esp + 0x18]
mov byte [esp + 0x4c0], 4
cmp byte [eax + 0x20], 0
je 0x402a87
mov esi, eax
cmp dword [esi + 0x50], 0
je 0x402a74
lea ecx, [esp + 0x37c]
call fcn.004023c0
test al, al
jne 0x4030f8
push str.Could_not_create_log_file
call dword [sym.imp.MSVCR100.dll_perror]
mov eax, dword [esp + 0x310]
add esp, 4
cmp dword [esp + 0x320], 0x10
jae 0x402a06
lea eax, [esp + 0x30c]
push eax
push str.COULD_NOT_CREATE_LOGFILE__s__n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
lea ecx, [esp + 0x37c]
call fcn.00404eb0
lea ecx, [esp + 0xc4]
mov byte [esp + 0x4c0], 2
call fcn.004036f0
lea ecx, [esp + 0x30c]
call fcn.00404bb0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x4c0], 0
call fcn.00403670
mov ecx, dword [esp + 0x20]
mov dl, byte [ecx]
test dl, dl
je 0x403643
mov eax, dword [esp + 0x14]
push eax
jmp 0x40363d
lea edx, [esp + 0x30c]
mov ecx, esi
call fcn.00402180
jmp 0x4029d8
mov ecx, dword [0x5ef098]
test ecx, ecx
jne 0x402a96
mov ecx, str.UNKNOWN
mov ebx, 0xf
mov eax, ecx
mov dword [esp + 0x374], ebx
mov dword [esp + 0x370], 0
mov byte [esp + 0x360], 0
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402ac0
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x368]
call fcn.00404d00
xor esi, esi
mov dword [esp + 0x358], ebx
mov dword [esp + 0x354], esi
mov byte [esp + 0x344], 0
lea ecx, [esp + 0x344]
mov byte [esp + 0x4c0], 6
call fcn.00401330
push 0xffffffffffffffff
push esi
push 0x5ea01c
lea ecx, [esp + 0x334]
mov dword [esp + 0x348], ebx
mov dword [esp + 0x344], esi
mov byte [esp + 0x334], 0
call fcn.00406230
mov byte [esp + 0x4c0], 7
cmp dword [esp + 0x338], esi
jne 0x402b51
push 0xc
push str.invalid_user
lea ecx, [esp + 0x330]
call fcn.00404d00
lea ecx, [esp + 0x360]
push ecx
lea edx, [esp + 0x47c]
push edx
call fcn.00407c60
lea ecx, [esp + 0x34c]
push ecx
push eax
lea edx, [esp + 0x450]
push edx
mov byte [esp + 0x4d4], 8
call fcn.00407c20
add esp, 0x14
mov ecx, eax
lea esi, [esp + 0x424]
mov byte [esp + 0x4c0], 9
call fcn.00408280
lea ecx, [esp + 0x328]
push ecx
push eax
lea edx, [esp + 0x3f4]
push edx
mov byte [esp + 0x4cc], 0xa
call fcn.00407c20
add esp, 0xc
push str..log.
push eax
lea eax, [esp + 0x3d8]
push eax
mov byte [esp + 0x4cc], 0xb
call fcn.00407b10
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x4c0], 0xc
mov edx, dword [ecx + 0xd0]
mov ecx, dword [edx*4 + 0x5bfff0]
push ecx
push eax
lea edx, [esp + 0x410]
push edx
call fcn.00407b10
add esp, 0xc
mov ecx, eax
lea esi, [esp + 0x45c]
mov byte [esp + 0x4c0], 0xd
call fcn.00408280
push eax
lea ecx, [esp + 0x364]
mov byte [esp + 0x4c4], 0xe
call fcn.00406010
mov ebx, 0x10
cmp dword [esp + 0x470], ebx
jb 0x402c51
mov eax, dword [esp + 0x45c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov esi, 0xf
mov dword [esp + 0x470], esi
mov dword [esp + 0x46c], 0
mov byte [esp + 0x45c], 0
cmp dword [esp + 0x41c], ebx
jb 0x402c8a
mov ecx, dword [esp + 0x408]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x41c], esi
mov dword [esp + 0x418], 0
mov byte [esp + 0x408], 0
cmp dword [esp + 0x3e4], ebx
jb 0x402cbe
mov edx, dword [esp + 0x3d0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x3e4], esi
mov dword [esp + 0x3e0], 0
mov byte [esp + 0x3d0], 0
cmp dword [esp + 0x400], ebx
jb 0x402cf2
mov eax, dword [esp + 0x3ec]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x400], esi
mov dword [esp + 0x3fc], 0
mov byte [esp + 0x3ec], 0
cmp dword [esp + 0x438], ebx
jb 0x402d26
mov ecx, dword [esp + 0x424]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x438], esi
mov dword [esp + 0x434], 0
mov byte [esp + 0x424], 0
cmp dword [esp + 0x454], ebx
jb 0x402d5a
mov edx, dword [esp + 0x440]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0x4c0], 7
mov dword [esp + 0x454], esi
mov dword [esp + 0x450], 0
mov byte [esp + 0x440], 0
cmp dword [esp + 0x48c], ebx
jb 0x402d96
mov eax, dword [esp + 0x478]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
call fcn.00404770
mov esi, dword [eax]
mov dword [esp + 0x1c], eax
cmp esi, dword [eax + 4]
je 0x402e7e
lea ebx, [ebx]
push 0x5c0154
lea ecx, [esp + 0x498]
push esi
push ecx
call fcn.004082c0
add esp, 0xc
lea edx, [esp + 0x360]
push edx
push eax
lea eax, [esp + 0x3bc]
push eax
mov byte [esp + 0x4cc], 0xf
call fcn.00407c20
add esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
add ecx, 0x24
mov byte [esp + 0x4c4], 0x10
call fcn.00406010
cmp dword [esp + 0x3c8], ebx
jb 0x402e16
mov ecx, dword [esp + 0x3b4]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0x4c0], 7
mov dword [esp + 0x3c8], 0xf
mov dword [esp + 0x3c4], 0
mov byte [esp + 0x3b4], 0
cmp dword [esp + 0x4a8], ebx
jb 0x402e56
mov edx, dword [esp + 0x494]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x30c]
call fcn.00402180
test al, al
jne 0x403069
mov eax, dword [esp + 0x1c]
add esi, 0x1c
cmp esi, dword [eax + 4]
jne 0x402db0
push str.Could_not_create_logging_file
call dword [sym.imp.MSVCR100.dll_perror]
mov eax, dword [esp + 0x310]
add esp, 4
cmp dword [esp + 0x320], ebx
jae 0x402ea3
lea eax, [esp + 0x30c]
push eax
push str.COULD_NOT_CREATE_A_LOGGINGFILE__s_
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
cmp dword [esp + 0x33c], ebx
jb 0x402ed6
mov ecx, dword [esp + 0x328]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor esi, esi
mov edi, 0xf
mov dword [esp + 0x33c], edi
mov dword [esp + 0x338], esi
mov byte [esp + 0x328], 0
cmp dword [esp + 0x358], ebx
jb 0x402f0d
mov edx, dword [esp + 0x344]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x358], edi
mov dword [esp + 0x354], esi
mov byte [esp + 0x344], 0
cmp dword [esp + 0x374], ebx
jb 0x402f3d
mov eax, dword [esp + 0x360]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [esp + 0x390], 8
mov dword [esp + 0x374], edi
mov dword [esp + 0x370], esi
mov byte [esp + 0x360], 0
jb 0x402f6e
mov ecx, dword [esp + 0x37c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [esp + 0xc4]
xor edx, edx
mov dword [esp + 0x390], 7
mov dword [esp + 0x38c], esi
mov word [esp + 0x37c], dx
mov edx, dword [ecx + 4]
lea eax, [esp + 0x114]
mov dword [esp + 0x24], eax
mov dword [esp + edx + 0xc4], vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x4c0], 0x11
call fcn.00405660
mov byte [esp + 0x4c0], 2
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 4]
mov edx, dword [sym.imp.MSVCP100.dll_const_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::vftable]
mov dword [esp + ecx + 0xc4], edx
lea ecx, [esp + 0x114]
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
cmp dword [esp + 0x320], ebx
jb 0x403004
mov eax, dword [esp + 0x30c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x320], edi
mov dword [esp + 0x31c], esi
mov byte [esp + 0x30c], 0
mov eax, dword [edx + 4]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x24], ecx
mov dword [esp + eax + 0x2c], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c0], 0x12
call fcn.00404fb0
mov byte [esp + 0x4c0], 0
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
mov eax, dword [sym.imp.MSVCP100.dll_const_std::basic_ostream_char__struct_std::char_traits_char__::vftable]
lea ecx, [esp + 0x7c]
mov dword [esp + edx + 0x2c], eax
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
jmp 0x402a5c
cmp dword [esp + 0x33c], ebx
jb 0x403083
mov ecx, dword [esp + 0x328]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov esi, 0xf
mov dword [esp + 0x33c], esi
mov dword [esp + 0x338], 0
mov byte [esp + 0x328], 0
cmp dword [esp + 0x358], ebx
jb 0x4030bc
mov edx, dword [esp + 0x344]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0x4c0], 4
mov dword [esp + 0x358], esi
mov dword [esp + 0x354], 0
mov byte [esp + 0x344], 0
cmp dword [esp + 0x374], ebx
jb 0x4030f8
mov eax, dword [esp + 0x360]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea ecx, [esp + 0x15c]
push ecx
call fcn.00404ee0
mov byte [esp + 0x4c0], 0x13
mov edx, dword [esp + 0x15c]
mov eax, dword [edx + 4]
lea eax, [esp + eax + 0x15c]
push 0
mov byte [eax + 0x40], 0x30
lea eax, [esp + 0x278]
push 2
push eax
call edi
mov ecx, dword [esp + 0x308]
add esp, 0xc
push 0x2f
add ecx, 0x76c
push ecx
lea edx, [esp + 0x164]
push str.Log_file_created_at:
push edx
mov esi, eax
call fcn.004083a0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00407e20
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x403178
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x2b8]
push 2
push ecx
call edi
mov edx, dword [esp + 0x304]
add esp, 0xc
push 0x2f
inc edx
push edx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00407e20
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4031c4
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x208]
push 2
push ecx
call edi
mov edx, dword [esp + 0x300]
add esp, 0xc
push 0x20
push edx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00407e20
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x40320f
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x1f8]
push 2
push ecx
call edi
mov edx, dword [esp + 0x2fc]
add esp, 0xc
push 0x3a
push edx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00407e20
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x40325a
mov eax, dword [ebx]
mov eax, dword [eax + 4]
add eax, ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0
lea ecx, [esp + 0x238]
push 2
push ecx
call edi
mov edx, dword [esp + 0x2f8]
add esp, 0xc
push 0x3a
push edx
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00407e20
mov edi, eax
add esp, 8
test edi, edi
je 0x4032a5
mov eax, dword [edi]
mov eax, dword [eax + 4]
add eax, edi
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [esi]
call eax
add esp, 0xc
push 0xa
push ecx
push str.threadid_file:line__msg
push ecx
push str.Log_line_format:__IWEF_mmdd_hh:mm:ss.uuuuuu
push ecx
push 0xa
push ecx
call fcn.004014a0
push eax
push ecx
push str.Running_on_machine:
push ecx
mov ecx, dword [esp + 0x318]
push 0xa
push ecx
mov ecx, edi
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push eax
call fcn.00407e20
add esp, 0xc
push eax
call fcn.004083a0
add esp, 0xc
push eax
call fcn.004078e0
add esp, 0xc
push eax
call fcn.00407e20
add esp, 0xc
push eax
call fcn.004083a0
add esp, 0xc
push eax
call fcn.004083a0
add esp, 0xc
push eax
call fcn.00407e20
add esp, 8
lea esi, [esp + 0x398]
lea ecx, [esp + 0x15c]
call fcn.00404f90
mov edi, dword [esp + 0x3a8]
mov eax, dword [esp + 0x398]
mov ebx, 0x10
cmp dword [esp + 0x3ac], ebx
jae 0x403356
mov eax, esi
mov esi, dword [esp + 0x18]
mov edx, dword [esi + 0xcc]
push edx
push edi
push 1
push eax
call dword [sym.imp.MSVCR100.dll_fwrite]
add dword [esi + 0xd8], edi
add dword [esi + 0xd4], edi
add esp, 0x10
cmp dword [esp + 0x3ac], ebx
jb 0x403394
mov eax, dword [esp + 0x398]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edx, dword [esp + 0x15c]
mov esi, 0xf
xor edi, edi
mov dword [esp + 0x3ac], esi
mov dword [esp + 0x3a8], edi
mov byte [esp + 0x398], 0
mov eax, dword [edx + 4]
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x1c], ecx
mov dword [esp + eax + method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
lea ecx, [esp + 0x160]
mov byte [esp + 0x4c0], 0x14
call fcn.00404fb0
mov byte [esp + 0x4c0], 4
mov ecx, dword [esp + 0x15c]
mov edx, dword [ecx + 4]
mov eax, dword [sym.imp.MSVCP100.dll_const_std::basic_ostream_char__struct_std::char_traits_char__::vftable]
lea ecx, [esp + 0x1ac]
mov dword [esp + edx + 0x15c], eax
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
cmp dword [esp + 0x390], 8
jb 0x40342b
mov ecx, dword [esp + 0x37c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [esp + 0xc4]
xor edx, edx
mov dword [esp + 0x390], 7
mov dword [esp + 0x38c], edi
mov word [esp + 0x37c], dx
mov edx, dword [ecx + 4]
lea eax, [esp + 0x114]
mov dword [esp + 0x1c], eax
mov dword [esp + edx + 0xc4], vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x4c0], 0x15
call fcn.00405660
mov byte [esp + 0x4c0], 2
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 4]
mov edx, dword [sym.imp.MSVCP100.dll_const_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::vftable]
mov dword [esp + ecx + 0xc4], edx
lea ecx, [esp + 0x114]
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
cmp dword [esp + 0x320], ebx
jb 0x4034c1
mov eax, dword [esp + 0x30c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x320], esi
mov dword [esp + 0x31c], edi
mov byte [esp + 0x30c], 0
mov eax, dword [edx + 4]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x1c], ecx
mov dword [esp + eax + 0x2c], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c0], 0x16
call fcn.00404fb0
mov byte [esp + 0x4c0], 0
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
mov eax, dword [sym.imp.MSVCP100.dll_const_std::basic_ostream_char__struct_std::char_traits_char__::vftable]
lea ecx, [esp + 0x7c]
mov dword [esp + edx + 0x2c], eax
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
cmp byte [0x5ef090], 0
jne 0x403614
mov ebx, dword [sym.imp.MSVCR100.dll__errno]
call ebx
mov edi, dword [ebp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [eax], 0
mov ecx, dword [esi + 0xcc]
push ecx
push edi
push 1
push edx
call dword [sym.imp.MSVCR100.dll_fwrite]
add esp, 0x10
cmp byte [0x5efd34], 0
je 0x40358e
call ebx
cmp dword [eax], 0x1c
jne 0x40358e
mov byte [0x5ef090], 1
mov eax, dword [esp + 0x20]
mov cl, byte [eax]
test cl, cl
je 0x403643
mov edx, dword [esp + 0x14]
push edx
jmp 0x40363d
add dword [esi + 0xd4], edi
add dword [esi + 0xd8], edi
cmp byte [ebp + 8], 0
mov eax, dword [esi + 0xd4]
jne 0x4035c4
cmp eax, 0xf4240
jae 0x4035c4
call fcn.00408b00
cmp edx, dword [esi + 0xe4]
jl 0x403576
jg 0x4035c4
cmp eax, dword [esi + 0xe0]
jb 0x403576
mov eax, dword [esi + 0xcc]
test eax, eax
je 0x4035e2
push eax
call dword [sym.imp.MSVCR100.dll_fflush]
add esp, 4
mov dword [esi + 0xd4], 0
mov eax, dword [0x5f73ec]
push 0
cdq
push 0xf4240
push edx
push eax
call fcn.0055fb20
mov edi, eax
mov ebx, edx
call fcn.00408b00
add eax, edi
adc edx, ebx
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], edx
jmp 0x403576
call fcn.00408b00
cmp edx, dword [esi + 0xe4]
jl 0x403632
jg 0x40362b
cmp eax, dword [esi + 0xe0]
jb 0x403632
mov byte [0x5ef090], 0
mov al, byte [ebx]
test al, al
je 0x403643
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x4b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4a0]
xor ecx, esp
call fcn.004610a0
mov esp, ebp
pop ebp
ret 0x14