Function at 0x4016d0
Capabilities:
Execute command
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x406ce8
mov eax, dword fs:[0]
push eax
sub esp, 0x328
mov eax, dword [0x40a018]
xor eax, esp
mov dword [esp + 0x2f0], eax
push ebx
push esi
push edi
mov eax, dword [0x40a018]
xor eax, esp
push eax
lea eax, [esp + 0x338]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.MSVCR100.dll_atoi]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 8]
add esp, 4
xor ebx, ebx
mov ecx, eax
mov dword [esp + 0x248], 0xf
mov dword [esp + 0x244], ebx
mov byte [esp + 0x234], bl
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x401747
sub ecx, esi
mov edi, ecx
lea esi, [esp + 0x234]
call fcn.004049b0
mov dword [esp + 0x340], ebx
mov edi, 0x1d
mov eax, str.E:AkNN_result_sresult_sf.txt
lea esi, [esp + 0x288]
mov dword [esp + 0x29c], 0xf
mov dword [esp + 0x298], ebx
mov byte [esp + 0x288], bl
call fcn.004049b0
mov byte [esp + 0x340], 1
mov edi, 0x14
mov eax, str.E:AkNNdatasets_sf_
lea esi, [esp + 0x26c]
mov dword [esp + 0x280], 0xf
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], bl
call fcn.004049b0
mov byte [esp + 0x340], 2
mov edi, 0x1e
mov eax, str.E:AkNNdatasets_sfptable.txt
lea esi, [esp + 0x250]
mov dword [esp + 0x264], 0xf
mov dword [esp + 0x260], ebx
mov byte [esp + 0x250], bl
call fcn.004049b0
mov byte [esp + 0x340], 3
mov esi, dword [esp + 0x244]
mov eax, esi
cmp esi, 7
jb 0x40181b
lea eax, [edi - 0x17]
mov edi, dword [esp + 0x248]
mov edx, dword [esp + 0x234]
cmp edi, 0x10
jae 0x401835
lea edx, [esp + 0x234]
mov ecx, str.sf1.txt
call fcn.00401040
cmp eax, ebx
jne 0x401861
cmp esi, 7
jb 0x401866
xor eax, eax
cmp esi, 7
setne al
cmp eax, ebx
jne 0x401861
mov dword [esp + 0x24], 0x6627
jmp 0x401938
cmp esi, 7
jae 0x40186a
mov eax, esi
jmp 0x40186f
mov eax, 7
mov edx, dword [esp + 0x234]
cmp edi, 0x10
jae 0x401882
lea edx, [esp + 0x234]
mov ecx, str.sf2.txt
call fcn.00401040
cmp eax, ebx
jne 0x4018ae
cmp esi, 7
jb 0x4018b3
xor eax, eax
cmp esi, 7
setne al
cmp eax, ebx
jne 0x4018ae
mov dword [esp + 0x24], 0x24545
jmp 0x401938
cmp esi, 7
jae 0x4018b7
mov eax, esi
jmp 0x4018bc
mov eax, 7
mov edx, dword [esp + 0x234]
cmp edi, 0x10
jae 0x4018cf
lea edx, [esp + 0x234]
mov ecx, str.sf3.txt
call fcn.00401040
cmp eax, ebx
jne 0x4018f8
cmp esi, 7
jb 0x4018f8
xor eax, eax
cmp esi, 7
setne al
cmp eax, ebx
jne 0x4018f8
mov dword [esp + 0x24], 0x1564c
jmp 0x401938
mov ecx, str.sf4.txt
lea edi, [esp + 0x234]
call fcn.00402d10
test eax, eax
jne 0x401917
mov dword [esp + 0x24], 0x15520
jmp 0x401938
mov ecx, str.sf.txt
lea edi, [esp + 0x234]
call fcn.00402d10
test eax, eax
jne 0x402b5c
mov dword [esp + 0x24], 0x2ab6c
lea ecx, [esp + 0x234]
push ecx
lea edx, [esp + 0x270]
push edx
lea eax, [esp + 0x2ac]
push eax
call fcn.004052f0
add esp, 0xc
mov byte [esp + 0x340], 4
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push ecx
push ecx
lea edx, [esp + 0x23c]
push edx
push eax
call fcn.004053a0
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
call dword [sym.imp.MSVCR100.dll_clock]
lea ecx, [esp + 0xc4]
push ecx
mov dword [esp + 0x48], eax
call fcn.00403d50
mov byte [esp + 0x340], 5
mov edx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push edx
push ecx
lea eax, [esp + 0x258]
push eax
push ecx
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push str.ptable:
push ecx
call fcn.004050a0
add esp, 0xc
push eax
call fcn.004053a0
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp dword [esp + 0x264], 0x10
mov ecx, dword [esp + 0x250]
jae 0x4019f3
lea ecx, [esp + 0x250]
push 1
lea esi, [esp + 0xe0]
call fcn.00404570
push ebx
test eax, eax
jne 0x401a21
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx + 4]
push 2
lea ecx, [esp + ecx + 0xcc]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
jmp 0x401a39
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax + 4]
push ebx
lea ecx, [esp + ecx + 0xcc]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 4]
mov eax, dword [esp + edx + 0xd0]
test al, 6
je 0x401bc2
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push ecx
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push str.error
push ecx
call fcn.004050a0
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push str.pause
call dword [sym.imp.MSVCR100.dll_system]
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x138]
add esp, 4
mov dword [esp + 0x20], edx
mov dword [esp + ecx + 0xc4], vtable.std::basic_fstream_char__struct_std::char_traits_char__.0
lea ecx, [esp + 0xdc]
mov byte [esp + 0x340], 6
call fcn.00403380
lea ecx, [esp + 0xdc]
mov byte [esp + 0x340], 4
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0x134]
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov esi, 0x10
cmp dword [esp + 0x2b8], esi
jb 0x401af8
mov edx, dword [esp + 0x2a4]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edi, 0xf
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2b4], ebx
mov byte [esp + 0x2a4], bl
cmp dword [esp + 0x264], esi
jb 0x401b2c
mov eax, dword [esp + 0x250]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x264], edi
mov dword [esp + 0x260], ebx
mov byte [esp + 0x250], bl
cmp dword [esp + 0x280], esi
jb 0x401b5b
mov ecx, dword [esp + 0x26c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x280], edi
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], bl
cmp dword [esp + 0x29c], esi
jb 0x401b8a
mov edx, dword [esp + 0x288]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x29c], edi
mov dword [esp + 0x298], ebx
mov byte [esp + 0x288], bl
cmp dword [esp + 0x248], esi
jb 0x402bbe
mov eax, dword [esp + 0x234]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
jmp 0x402bbe
push 0x40a63c
lea ecx, [esp + 0xc8]
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::operator___int__]
mov eax, dword [0x40a63c]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00405d17
add esp, 4
xor edi, edi
mov dword [0x40a640], eax
cmp dword [0x40a63c], ebx
jle 0x401c7d
push 0x20
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0x20], eax
mov byte [esp + 0x340], 7
cmp eax, ebx
je 0x401c28
push eax
call fcn.004010f0
jmp 0x401c2a
xor eax, eax
mov byte [esp + 0x340], 5
mov ecx, dword [0x40a640]
mov dword [ecx + edi*4], eax
push eax
lea ecx, [esp + 0xc8]
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::operator___int__]
xor esi, esi
jmp 0x401c50
mov edx, dword [0x40a640]
mov eax, dword [edx + edi*4]
mov ecx, dword [eax + 4]
add ecx, esi
push ecx
lea ecx, [esp + 0xc8]
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::operator___float__]
add esi, 4
cmp esi, 8
jl 0x401c50
inc edi
cmp edi, dword [0x40a63c]
jl 0x401c05
lea esi, [esp + 0xdc]
cmp dword [esp + 0x130], ebx
jne 0x401c91
xor esi, esi
jmp 0x401cbc
lea ebx, [esp + 0xdc]
call fcn.00404670
test al, al
jne 0x401ca3
xor esi, esi
mov edx, dword [esp + 0x130]
push edx
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
test eax, eax
je 0x401cba
xor esi, esi
xor ebx, ebx
lea ecx, [esp + 0xdc]
mov byte [esp + 0x12c], bl
mov byte [esp + 0x125], bl
call dword [sym.imp.MSVCP100.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov eax, dword [0x40a64c]
mov dword [esp + 0x130], ebx
mov dword [esp + 0x128], eax
mov dword [esp + 0x120], ebx
cmp esi, ebx
jne 0x401d0f
mov ecx, dword [esp + 0xc4]
mov ecx, dword [ecx + 4]
push ebx
push 2
lea ecx, [esp + ecx + 0xcc]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov edx, dword [esp + 0xc4]
mov ecx, dword [edx + 4]
push ebx
push ebx
lea ecx, [esp + ecx + 0xcc]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push ecx
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push str.picking_pivots_done.
push ecx
call fcn.004050a0
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [esp + 0x24]
push edi
sub esp, 0x1c
mov ecx, esp
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 0xf
lea edx, [esp + 0x2c4]
mov dword [esp + 0x40], esp
mov byte [ecx], bl
push edx
or eax, 0xffffffff
xor ebx, ebx
call fcn.00404200
lea ecx, [esp + 0x9c]
call fcn.00401230
add esp, 0x20
xor esi, esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov byte [esp + 0x340], 9
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push ecx
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push str.reading_set_done.
push ecx
call fcn.004050a0
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov ebx, dword [sym.imp.MSVCR100.dll_clock]
call ebx
sub eax, dword [esp + 0x44]
mov edx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push edx
push ecx
fstp qword [esp + 0xac]
push str.building_index_done.
fild dword [0x40a644]
push eax
mov dword [0x40a644], esi
fstp qword [esp + 0xc4]
call fcn.004050a0
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
call ebx
mov dword [esp + 0x44], eax
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00405d17
add esp, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x60], esi
cmp edi, esi
jle 0x4026a6
lea eax, [edi*4]
mov dword [esp + 0x54], eax
lea esp, [esp]
mov ecx, dword [esp + 0x60]
inc ecx
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x3e8
mov edx, ecx
sub edx, eax
mov dword [esp + 0x60], ecx
jne 0x401ea1
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push ecx
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push str.dealnum:
push ecx
call fcn.004050a0
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_]
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x80]
mov esi, dword [edx]
mov edi, dword [esp + 0x3c]
push eax
push 0
push edi
mov dword [esp + 0x2c], esi
call sub.MSVCR100.dll_memset
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
lea eax, [esi + 0xc]
mov dword [esp + 0x28], eax
mov dword [edi + edx*4], 1
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
sub eax, esi
xor ebx, ebx
sar eax, 2
add esp, 0xc
mov dword [esp + 0x18], ebx
test eax, eax
je 0x4021c8
mov ecx, dword [esi + ebx*4]
mov edx, dword [ecx]
mov eax, dword [esp + 0x3c]
cmp dword [eax + edx*4], 1
lea eax, [eax + edx*4]
je 0x4021b2
mov ecx, dword [esp + 0x1c]
mov dword [eax], 1
mov esi, dword [esp + 0x28]
mov eax, dword [esi + ebx*4]
mov ecx, dword [ecx]
fld dword [ecx + 8]
mov dword [esp + 0x38], eax
fld dword [eax + 8]
fcompp
fnstsw ax
test ah, 5
jp 0x4021b2
xor edi, edi
cmp dword [0x40a63c], edi
jle 0x401f85
mov eax, dword [esp + 0x38]
mov edx, dword [ecx + 0xc]
mov ebx, dword [eax + 0xc]
sub ebx, edx
fld dword [ebx + edx]
fsub dword [edx]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [ecx + 8]
fcompp
fnstsw ax
test ah, 5
jnp 0x402114
inc edi
add edx, 4
cmp edi, dword [0x40a63c]
jl 0x401f46
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov edx, dword [esi + ebx*4]
fld dword [eax]
mov edx, dword [edx + 4]
fsub dword [edx]
inc dword [0x40a644]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fadd qword [0x407440]
fstp dword [esp + 0x14]
fld dword [eax + 4]
fsub dword [edx + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [ecx + 8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40211d
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov byte [esp + 0x340], 0xa
fstp dword [esp + 0x78]
mov dword [esp + 0x74], edx
cmp dword [ecx + 0x18], eax
jne 0x4020a2
mov esi, edi
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
push eax
lea edx, [esp + 0xb4]
push edx
add ecx, 0x10
push ecx
call fcn.00402d60
mov esi, dword [esi]
add esi, 0x10
lea edi, [esp + 0x74]
call fcn.00405c20
mov edi, eax
mov eax, dword [esi + 4]
mov edx, dword [eax + 4]
cmp byte [edx + 0x15], 0
mov ecx, eax
mov byte [esp + 0x50], 1
jne 0x402078
lea ecx, [ecx]
fld dword [edi + 0x10]
mov ecx, edx
fld dword [edx + 0x10]
fcompp
fnstsw ax
test ah, 5
jp 0x40206a
mov edx, dword [edx]
mov byte [esp + 0x50], 1
jmp 0x402072
mov edx, dword [edx + 8]
mov byte [esp + 0x50], 0
cmp byte [edx + 0x15], 0
je 0x402050
mov eax, dword [esp + 0x50]
push edi
push eax
lea edx, [esp + 0xa4]
push edx
mov ebx, esi
call fcn.00405760
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov ecx, dword [ecx]
fld dword [eax + 0x10]
fstp dword [ecx + 8]
jmp 0x402100
lea esi, [ecx + 0x10]
lea edi, [esp + 0x74]
call fcn.00405c20
mov edi, eax
mov eax, dword [esi + 4]
mov edx, dword [eax + 4]
cmp byte [edx + 0x15], 0
mov ecx, eax
mov byte [esp + 0x58], 1
jne 0x4020eb
fld dword [edi + 0x10]
mov ecx, edx
fld dword [edx + 0x10]
fcompp
fnstsw ax
test ah, 5
jp 0x4020dd
mov edx, dword [edx]
mov byte [esp + 0x58], 1
jmp 0x4020e5
mov edx, dword [edx + 8]
mov byte [esp + 0x58], 0
cmp byte [edx + 0x15], 0
je 0x4020c3
mov edx, dword [esp + 0x58]
push edi
push edx
lea eax, [esp + 0xa8]
push eax
mov ebx, esi
call fcn.00405760
mov byte [esp + 0x340], 9
mov esi, dword [esp + 0x28]
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x18]
jmp 0x4021b2
mov eax, dword [esi + ebx*4]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax]
mov eax, dword [esi + ebx*4]
cmp ecx, dword [eax + 0x14]
je 0x4021b0
mov edx, dword [ecx + 0xc]
mov eax, dword [edx]
mov edx, dword [esp + 0x3c]
cmp dword [edx + eax*4], 1
lea edx, [edx + eax*4]
je 0x402168
fld dword [ecx + 0x10]
mov eax, dword [edi]
fld st(1)
fsub dword [eax + 8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fcompp
fnstsw ax
test ah, 1
jne 0x402168
mov dword [edx], 1
mov esi, dword [esp + 0x28]
cmp byte [ecx + 0x15], 0
jne 0x4021a8
mov eax, dword [ecx + 8]
cmp byte [eax + 0x15], 0
jne 0x40218d
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
jne 0x4021a8
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
je 0x402181
jmp 0x4021a8
mov eax, dword [ecx + 4]
cmp byte [eax + 0x15], 0
jne 0x4021a6
cmp ecx, dword [eax + 8]
jne 0x4021a6
mov ecx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x402196
mov ecx, eax
mov eax, dword [esi + ebx*4]
cmp ecx, dword [eax + 0x14]
jne 0x402131
fstp st(0)
mov ecx, dword [esp + 0x2c]
sub ecx, esi
inc ebx
sar ecx, 2
mov dword [esp + 0x18], ebx
cmp ebx, ecx
jb 0x401ef0
mov eax, dword [esp + 0x80]
mov edi, dword [eax]
mov dword [esp + 0x18], edi
cmp edi, eax
je 0x4025b8
lea ecx, [ecx]
mov edx, dword [edi + 0xc]
mov eax, dword [edx]
mov ecx, dword [esp + 0x3c]
cmp dword [ecx + eax*4], 1
lea eax, [ecx + eax*4]
je 0x402553
mov dword [eax], 1
mov ebx, dword [0x40a63c]
xor edx, edx
test ebx, ebx
jle 0x40225b
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
mov ecx, dword [esi + 0xc]
mov edi, dword [eax + 0xc]
sub edi, ecx
lea ecx, [ecx]
fld dword [edi + ecx]
fsub dword [ecx]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esi + 8]
fcompp
fnstsw ax
test ah, 5
jnp 0x40254b
inc edx
add ecx, 4
cmp edx, ebx
jl 0x402220
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0xc]
fld dword [eax]
mov ecx, dword [ecx + 4]
fsub dword [ecx]
inc dword [0x40a644]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd qword [0x407440]
fstp dword [esp + 0x14]
fld dword [eax + 4]
fsub dword [ecx + 4]
mov ecx, dword [esi]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [ecx + 8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4023ef
mov eax, dword [esp + 0x40]
mov byte [esp + 0x340], 0xb
fstp dword [esp + 0x68]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x64], edx
cmp dword [ecx + 0x18], eax
jne 0x402374
mov eax, ecx
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
push eax
lea edx, [esp + 0xc0]
push edx
add ecx, 0x10
push ecx
call fcn.00402d60
mov esi, dword [esi]
add esi, 0x10
lea edi, [esp + 0x64]
call fcn.00405c20
mov edi, eax
mov eax, dword [esi + 4]
mov edx, dword [eax + 4]
cmp byte [edx + 0x15], 0
mov ecx, eax
mov byte [esp + 0x5c], 1
jne 0x40234a
fld dword [edi + 0x10]
mov ecx, edx
fld dword [edx + 0x10]
fcompp
fnstsw ax
test ah, 5
jp 0x40233c
mov edx, dword [edx]
mov byte [esp + 0x5c], 1
jmp 0x402344
mov edx, dword [edx + 8]
mov byte [esp + 0x5c], 0
cmp byte [edx + 0x15], 0
je 0x402322
mov eax, dword [esp + 0x5c]
push edi
push eax
lea edx, [esp + 0xb4]
push edx
mov ebx, esi
call fcn.00405760
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov ecx, dword [ecx]
fld dword [eax + 0x10]
fstp dword [ecx + 8]
jmp 0x4023d2
lea esi, [ecx + 0x10]
lea edi, [esp + 0x64]
call fcn.00405c20
mov edi, eax
mov eax, dword [esi + 4]
mov edx, dword [eax + 4]
cmp byte [edx + 0x15], 0
mov ecx, eax
mov byte [esp + 0x48], 1
jne 0x4023bd
fld dword [edi + 0x10]
mov ecx, edx
fld dword [edx + 0x10]
fcompp
fnstsw ax
test ah, 5
jp 0x4023af
mov edx, dword [edx]
mov byte [esp + 0x48], 1
jmp 0x4023b7
mov edx, dword [edx + 8]
mov byte [esp + 0x48], 0
cmp byte [edx + 0x15], 0
je 0x402395
mov edx, dword [esp + 0x48]
push edi
push edx
lea eax, [esp + 0xa0]
push eax
mov ebx, esi
call fcn.00405760
fld dword [esp + 0x14]
mov byte [esp + 0x340], 9
mov edi, dword [esp + 0x18]
mov dword [esp + 0x64], 0
jmp 0x40247e
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax]
mov eax, dword [edi + 0xc]
cmp ecx, dword [eax + 0x14]
je 0x40247e
mov edx, dword [ecx + 0xc]
mov eax, dword [edx]
mov edx, dword [esp + 0x3c]
cmp dword [edx + eax*4], 1
lea edx, [edx + eax*4]
je 0x402436
fld dword [ecx + 0x10]
mov eax, dword [esi]
fld st(1)
fsub dword [eax + 8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fcompp
fnstsw ax
test ah, 1
jne 0x402436
mov dword [edx], 1
cmp byte [ecx + 0x15], 0
jne 0x402476
mov eax, dword [ecx + 8]
cmp byte [eax + 0x15], 0
jne 0x40245b
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
jne 0x402476
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
je 0x40244f
jmp 0x402476
mov eax, dword [ecx + 4]
cmp byte [eax + 0x15], 0
jne 0x402474
cmp ecx, dword [eax + 8]
jne 0x402474
mov ecx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x402464
mov ecx, eax
mov eax, dword [edi + 0xc]
cmp ecx, dword [eax + 0x14]
jne 0x402403
mov ecx, dword [edi + 0xc]
fld dword [ecx + 8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x402551
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x340], 0xc
fstp dword [esp + 0x70]
mov eax, dword [edx]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
cmp dword [ecx + 0x18], edx
jne 0x40251d
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
push eax
lea eax, [esp + 0xc4]
push eax
add ecx, 0x10
push ecx
call fcn.00402d60
mov ebx, dword [esi + 0xc]
lea edi, [esp + 0x6c]
lea esi, [ebx + 0x10]
call fcn.00405c20
mov edi, eax
lea esi, [esp + 0x17c]
lea eax, [ebx + 0x10]
call fcn.004056f0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov ecx, dword [ecx + 0xc]
fld dword [eax + 0x10]
mov byte [esp + 0x340], 9
fstp dword [ecx + 8]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x6c], 0
jmp 0x402553
lea ebx, [ecx + 0x10]
lea edi, [esp + 0x6c]
mov esi, ebx
call fcn.00405c20
mov edi, eax
lea esi, [esp + 0x184]
mov eax, ebx
call fcn.004056f0
mov byte [esp + 0x340], 9
mov dword [esp + 0x6c], 0
mov edi, dword [esp + 0x18]
jmp 0x402553
fstp st(0)
cmp byte [edi + 0x11], 0
jne 0x4025a7
mov ecx, dword [edi + 8]
cmp byte [ecx + 0x11], 0
jne 0x402580
mov eax, dword [ecx]
cmp byte [eax + 0x11], 0
jne 0x40257a
lea ebx, [ebx]
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x11], 0
je 0x402570
mov dword [esp + 0x18], ecx
jmp 0x4025a3
mov eax, dword [edi + 4]
cmp byte [eax + 0x11], 0
jne 0x40259f
mov edx, dword [esp + 0x18]
cmp edx, dword [eax + 8]
jne 0x40259f
mov dword [esp + 0x18], eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x11], 0
je 0x402589
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x18]
cmp edi, dword [esp + 0x80]
jne 0x4021e0
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
cmp edi, eax
jae 0x402627
cmp esi, edi
ja 0x402627
mov ecx, dword [esp + 0x30]
sub edi, esi
sar edi, 2
cmp eax, ecx
jne 0x402618
sub eax, esi
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x402b51
sub ecx, esi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x402618
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x402602
xor ecx, ecx
jmp 0x402604
add ecx, edx
cmp ecx, eax
jae 0x40260a
mov ecx, eax
push ecx
lea esi, [esp + 0x2c]
call fcn.00404c70
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40267a
mov ecx, dword [esi + edi*4]
mov dword [eax], ecx
jmp 0x40267a
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jne 0x40266e
sub eax, esi
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x402b51
sub ecx, esi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x40266e
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x40265c
xor ecx, ecx
jmp 0x40265e
add ecx, edx
cmp ecx, eax
jae 0x402664
mov ecx, eax
push ecx
lea esi, [esp + 0x2c]
call fcn.00404c70
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40267a
mov edx, dword [edi]
mov dword [eax], edx
mov eax, dword [esp + 0x20]
add dword [esp + 0x2c], 4
push eax
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x84]
push edx
call fcn.00403030
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x24]
jl 0x401e50
xor esi, esi
call dword [sym.imp.MSVCR100.dll_clock]
sub eax, dword [esp + 0x44]
push esi
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fstp qword [esp + 0x68]
fild dword [0x40a644]
fstp qword [esp + 0x70]
call dword [sym.imp.MSVCR100.dll__time64]
add esp, 4
lea ecx, [esp + 0x8c]
mov dword [esp + 0x90], edx
push ecx
lea edx, [esp + 0x2e0]
push edx
mov dword [esp + 0x94], eax
call dword [sym.imp.MSVCR100.dll__localtime64_s]
mov eax, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2ec]
mov edi, dword [esp + 0x2f0]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x40], ecx
add esp, 8
lea ecx, [esp + 0x288]
mov dword [esp + 0x20], eax
push ecx
or eax, 0xffffffff
xor ebx, ebx
lea ecx, [esp + 0x2c4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x2d8], 0xf
mov dword [esp + 0x2d4], esi
mov byte [esp + 0x2c4], 0
call fcn.00404200
lea edx, [esp + 0x2c0]
push edx
lea eax, [esp + 0x190]
push eax
mov byte [esp + 0x348], 0xd
call fcn.00403e40
mov eax, dword [esp + 0x10]
mov byte [esp + 0x340], 0xe
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x40]
push str.:__
push eax
push 0x40733c
push edi
push 0x407340
inc ecx
push ecx
push 0x407340
add edx, 0x76c
push edx
lea ecx, [esp + 0x1b4]
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.004050a0
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.004050a0
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.004050a0
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.004050a0
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_]
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov edx, dword [esp + 0x40]
push eax
push ecx
lea ecx, [esp + 0x23c]
push ecx
push ecx
push 0x407344
push edx
lea eax, [esp + 0x1a4]
push 0x407348
push eax
call fcn.004050a0
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.004050a0
add esp, 0xc
push eax
call fcn.004053a0
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
fld qword [esp + 0xb4]
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push ecx
sub esp, 8
lea ecx, [esp + 0x198]
fstp qword [esp]
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___double_]
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
fld qword [esp + 0xa4]
mov edx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push edx
sub esp, 8
lea ecx, [esp + 0x198]
fstp qword [esp]
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___double_]
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
fld qword [esp + 0x6c]
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
sub esp, 8
lea ecx, [esp + 0x198]
fstp qword [esp]
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___double_]
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
fld qword [esp + 0x64]
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push ecx
mov edx, ecx
push edx
sub esp, 8
lea ecx, [esp + 0x19c]
fstp qword [esp]
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___double_]
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
lea eax, [esp + 0x18c]
push eax
call fcn.00403f30
mov ecx, dword [esp + 0x18c]
mov ecx, dword [ecx + 4]
push ebx
push ebx
lea ecx, [esp + ecx + 0x194]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov eax, dword [esp + 0x18c]
lea edx, [esp + 0x1ec]
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 4]
mov dword [esp + ecx + method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
lea ecx, [esp + 0x190]
mov byte [esp + 0x340], 0xf
call fcn.00403380
lea ecx, [esp + 0x194]
mov byte [esp + 0x340], 0xd
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0x1ec]
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
cmp dword [esp + 0x2d4], 0x10
mov edi, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
jb 0x4029a4
mov edx, dword [esp + 0x2c0]
push edx
call edi
add esp, 4
mov byte [esp + 0x340], 8
mov dword [esp + 0x2d4], 0xf
mov dword [esp + 0x2d0], ebx
mov byte [esp + 0x2c0], bl
cmp dword [esp + 0x28], ebx
je 0x4029df
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov eax, dword [esp + 0x28]
push eax
call edi
add esp, 4
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x340], 0x10
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
push eax
push ecx
lea esi, [esp + 0x54]
lea eax, [esp + 0x84]
call fcn.00404bd0
mov ecx, dword [esp + 0x80]
push ecx
call edi
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x138]
add esp, 4
mov dword [esp + 0x4c], edx
mov dword [esp + ecx + 0xc4], vtable.std::basic_fstream_char__struct_std::char_traits_char__.0
lea ecx, [esp + 0xdc]
mov byte [esp + 0x340], 0x11
call fcn.00403380
lea ecx, [esp + 0xdc]
mov byte [esp + 0x340], 4
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0x134]
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov esi, 0x10
cmp dword [esp + 0x2b8], esi
jb 0x402a8c
mov edx, dword [esp + 0x2a4]
push edx
call edi
add esp, 4
mov dword [esp + 0x2b8], 0xf
mov dword [esp + 0x2b4], ebx
mov byte [esp + 0x2a4], bl
cmp dword [esp + 0x264], esi
jb 0x402abb
mov eax, dword [esp + 0x250]
push eax
call edi
add esp, 4
mov dword [esp + 0x264], 0xf
mov dword [esp + 0x260], ebx
mov byte [esp + 0x250], bl
cmp dword [esp + 0x280], esi
jb 0x402aea
mov ecx, dword [esp + 0x26c]
push ecx
call edi
add esp, 4
mov dword [esp + 0x280], 0xf
mov dword [esp + 0x27c], ebx
mov byte [esp + 0x26c], bl
cmp dword [esp + 0x29c], esi
jb 0x402b19
mov edx, dword [esp + 0x288]
push edx
call edi
add esp, 4
mov dword [esp + 0x29c], 0xf
mov dword [esp + 0x298], ebx
mov byte [esp + 0x288], bl
cmp dword [esp + 0x248], esi
jb 0x402bbe
mov eax, dword [esp + 0x234]
push eax
call edi
add esp, 4
jmp 0x402bbe
push str.vector_T__too_long
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov edx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push ecx
push ecx
push str.wrong_oset_name.
push edx
call fcn.004050a0
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___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push str.pause
call dword [sym.imp.MSVCR100.dll_system]
add esp, 4
lea esi, [esp + 0x250]
call fcn.00402ce0
lea esi, [esp + 0x26c]
call fcn.00402ce0
lea esi, [esp + 0x288]
call fcn.00402ce0
lea esi, [esp + 0x234]
call fcn.00402ce0
xor eax, eax
mov ecx, dword [esp + 0x338]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2f0]
xor ecx, esp
call fcn.00405d34
mov esp, ebp
pop ebp
ret