Function at 0x401560
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x4282b3
mov eax, dword fs:[0]
push eax
sub esp, 0x3a8
mov eax, dword [0x4306e4]
xor eax, esp
mov dword [esp + 0x370], eax
push ebx
push esi
push edi
mov eax, dword [0x4306e4]
xor eax, esp
push eax
lea eax, [esp + 0x3b8]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
push str.2.0.0
push ecx
push str.cvm__Ver.
push 0x431ba0
mov dword [esp + 0x84], ebx
call fcn.00405dd0
add esp, 0xc
push eax
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov ecx, dword [eax + esi + 0xc]
xor edi, edi
test cl, 6
jne 0x4015fd
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x4015fd
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x40161e
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x401616
or eax, 4
push 0
push eax
call fcn.00408020
push str.Copyright__C__2006_2010_MicroCraft_K.K.
push 0x431ba0
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x401660
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x401660
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x401681
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x401679
or eax, 4
push 0
push eax
call fcn.00408020
cmp dword [ebp + 8], 3
jge 0x4016f2
push str.______Specify_emm_file_and_cv_file
push 0x431c48
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x4016c9
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x4016c9
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x4016ea
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x4016e2
or eax, 4
push 0
push eax
call fcn.00408020
or eax, 0xffffffff
jmp 0x40279f
xor esi, esi
push esi
push esi
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esp + 0x24], eax
cmp eax, esi
jne 0x401772
push str.Cant_create_event_object
push 0x431ba0
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x401749
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x401749
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x4016ea
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x4016e2
or eax, 4
push 0
push eax
call fcn.00408020
or eax, 0xffffffff
jmp 0x40279f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebx + 4]
push 0xffffffffffffffff
push edx
mov dword [esp + 0x44], eax
push 0x100
lea eax, [esp + 0x288]
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.00411ebf
lea eax, [esp + 0x290]
add esp, 0x14
mov dword [esp + 0x274], 0xf
mov dword [esp + 0x270], esi
mov byte [esp + 0x260], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4017c0
sub eax, edx
push eax
lea edx, [esp + 0x280]
push edx
lea ecx, [esp + 0x268]
call fcn.00407b40
push 3
push 0x42c2d4
lea eax, [esp + 0x268]
push eax
mov dword [esp + 0x3cc], esi
call fcn.00403be0
cmp eax, 0xffffffff
jne 0x401894
push 3
push 0x42c2d8
lea ecx, [esp + 0x268]
push ecx
call fcn.00403be0
cmp eax, 0xffffffff
jne 0x401894
push str.______unsupported_file__
push 0x431c48
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x40185d
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x40185d
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x40187e
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x401876
or eax, 4
push 0
push eax
call fcn.00408020
lea ecx, [esp + 0x260]
call fcn.00407770
mov eax, 0xfffffffe
jmp 0x40279f
push str.initialization_process....
push 0x431ba0
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x4018d6
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x4018d6
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x4018f7
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x4018ef
or eax, 4
push 0
push eax
call fcn.00408020
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x280]
call fcn.0040a440
push str.calculating....
push 0x431ba0
mov byte [esp + 0x3c8], 1
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov eax, dword [esi]
mov eax, dword [eax + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x401955
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x401955
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x401976
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x40196e
or eax, 4
push 0
push eax
call fcn.00408020
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0x88]
lea eax, [esp + 0x13c]
mov dword [esp + 0x88], ebx
call fcn.0040c460
test eax, eax
je 0x401a3e
push str.cant_start_to_calculate_the_C.V.
push 0x431ba0
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x4019de
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x4019de
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x4019ff
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x4019f7
or eax, 4
push 0
push eax
call fcn.00408020
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x3c0], 0
call fcn.0040a630
cmp dword [esp + 0x274], 0x10
jb 0x401a34
mov edx, dword [esp + 0x260]
push edx
call fcn.00411edf
add esp, 4
mov eax, 0xfffffffe
jmp 0x40279f
mov eax, dword [esp + 0x24]
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x3e8
push eax
call ebx
cmp eax, 0x102
jne 0x401b59
jmp 0x401a60
push str.progress...
push 0x431ba0
call fcn.00405dd0
mov ecx, dword [esp + 0x1e0]
inc ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x1bc]
fild dword [esp + 0x48]
sub ecx, dword [esp + 0x1b8]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
jns 0x401aae
fadd qword [0x42c8b8]
fdivp st(1)
fmul qword [0x42c8b0]
fstp qword [esp]
call fcn.00402bd0
push 0x42c358
push ecx
mov ecx, dword [esp + 0x1e4]
push ecx
push ecx
push 0x42c35c
push 0x431ba0
call fcn.00405dd0
add esp, 0xc
push eax
call fcn.00402810
add esp, 4
push eax
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x401b21
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x401b21
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x401b42
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x401b3a
or eax, 4
push 0
push eax
call fcn.00408020
mov edx, dword [esp + 0x24]
push 0x3e8
push edx
call ebx
cmp eax, 0x102
je 0x401a60
test eax, eax
je 0x401bf9
push str.cant_finsih_normally
push 0x431ba0
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov eax, dword [esi]
mov eax, dword [eax + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x401ba3
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x401ba3
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x401bc4
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x401bbc
or eax, 4
push 0
push eax
call fcn.00408020
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x3c0], 0
call fcn.0040a630
lea ecx, [esp + 0x260]
call fcn.00407770
mov eax, 0xfffffffd
jmp 0x40279f
cmp dword [esp + 0x8c], 1
jne 0x401c42
cmp dword [esp + 0x90], 0
je 0x401c42
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x13c]
mov byte [esp + 0x3c0], 0
call fcn.0040a630
lea ecx, [esp + 0x260]
call fcn.00407770
mov eax, 0xfffffffc
jmp 0x40279f
mov ecx, dword [esp + 0x24]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call ebx
push str.checking_process....
push 0x431ba0
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x401c91
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x401c91
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x401cb2
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x401caa
or eax, 4
push 0
push eax
call fcn.00408020
xor edi, edi
mov dword [esp + 0x4c], vtable.Matrix.0
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
lea edx, [esp + 0x13c]
push edx
lea eax, [esp + 0x50]
push eax
mov byte [esp + 0x3c8], 2
call fcn.00401120
add esp, 8
test eax, eax
je 0x401d20
push str.______CV_data_can_not_use_the_estimation.
push 0x431c48
call fcn.00405dd0
add esp, 8
mov esi, eax
call fcn.004027f0
mov ecx, dword [esp + 0x24]
push ecx
call ebx
lea edx, [esp + 0x4c]
push edx
mov byte [esp + 0x3c4], 1
call fcn.004089d0
jmp 0x401c18
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov byte [esp + 0x3c0], 4
fld qword [0x42c8a8]
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x58]
push ecx
call fcn.00408600
fld qword [0x42c8a8]
sub esp, 8
lea edx, [esp + 0x54]
fstp qword [esp]
push edx
lea eax, [esp + 0x70]
call fcn.00408440
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x3c]
push eax
push ecx
push str.pass_time_
push 0x431ba0
call fcn.00405dd0
add esp, 0xc
push eax
call fcn.004029f0
mov esi, eax
call fcn.004027f0
mov dword [esp + method.CVFile.virtual_0], vtable.CVFile.0
mov dword [esp + 0x20c], 0xf
mov dword [esp + 0x208], edi
mov byte [esp + 0x1f8], 0
mov dword [esp + 0x21c], edi
mov dword [esp + 0x220], edi
mov dword [esp + 0x224], edi
mov dword [esp + 0x23c], edi
mov dword [esp + 0x240], edi
mov dword [esp + 0x244], edi
mov dword [esp + 0x24c], edi
mov dword [esp + 0x250], edi
mov dword [esp + 0x254], edi
mov dword [esp + 0x234], edi
mov byte [esp + 0x3c0], 5
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0x194]
sub eax, dword [esp + 0x190]
lea esi, [esp + 0x21c]
sar eax, 2
mov dword [esp + 0x218], eax
call fcn.0040c4b0
xor eax, eax
cmp dword [esp + 0x218], edi
jbe 0x401e74
mov ecx, dword [esp + 0x190]
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x21c]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, dword [esp + 0x218]
jb 0x401e56
mov edx, dword [esp + 0x184]
sub edx, dword [esp + 0x180]
lea eax, [esp + 0x4c]
sar edx, 2
mov dword [esp + 0x230], edx
call fcn.004083f0
mov ecx, dword [esp + 0x1e4]
sub ecx, dword [esp + 0x1e0]
mov esi, dword [esp + 0x250]
mov dword [esp + 0x238], eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x3c], edi
je 0x40253d
mov eax, dword [esp + 0x7c]
sub eax, dword [esp + 0x78]
sar eax, 2
mov dword [esp + 0x40], eax
jmp 0x401ee0
xor eax, eax
cmp dword [esp + 0x40], eax
jbe 0x401f08
jmp 0x401ef0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x78]
cmp dword [edx + eax*4], ecx
je 0x40250d
inc eax
cmp eax, dword [esp + 0x40]
jb 0x401ef0
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x3c]
lea ecx, [ecx + ecx*8]
mov byte [esp + 0x3c0], 6
mov edx, dword [esp + 0x1e0]
add ecx, ecx
add ecx, ecx
mov edi, dword [edx + ecx + 8]
sub edi, dword [edx + ecx + 4]
mov dword [esp + 0x20], eax
sar edi, 2
mov dword [esp + 0x24], ecx
test edi, edi
je 0x4020a3
mov edx, dword [esp + 0x68]
sub edx, dword [esp + 0x64]
sar edx, 2
mov dword [esp + 0x38], edx
jmp 0x401f64
mov edx, dword [esp + 0x38]
xor ecx, ecx
test edx, edx
je 0x401f82
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x64]
cmp dword [esi + ecx*4], edx
je 0x402075
inc ecx
cmp ecx, dword [esp + 0x38]
jb 0x401f6a
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1e0]
mov ecx, dword [ecx + edx + 4]
mov edx, dword [esp + 0x20]
fild dword [ecx + edx*4]
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x44]
fstp qword [esp + 0x44]
cmp ecx, eax
jae 0x402012
cmp edx, ecx
ja 0x402012
mov edi, ecx
sub edi, edx
sar edi, 3
cmp eax, ebx
jne 0x402005
mov ecx, eax
sub ecx, edx
sar ecx, 3
cmp ecx, 0x1ffffffe
ja 0x4025de
mov edx, ebx
sub edx, dword [esp + 0x28]
inc ecx
sar edx, 3
cmp ecx, edx
jbe 0x402005
mov eax, edx
shr eax, 1
mov esi, 0x1fffffff
sub esi, eax
cmp esi, edx
jae 0x401feb
xor edx, edx
jmp 0x401fed
add edx, eax
cmp edx, ecx
jae 0x401ff3
mov edx, ecx
push edx
lea esi, [esp + 0x2c]
call fcn.00404d20
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40206e
mov edx, dword [esp + 0x28]
fld qword [edx + edi*8]
jmp 0x40206c
cmp eax, ebx
jne 0x402064
mov ecx, eax
sub ecx, edx
sar ecx, 3
cmp ecx, 0x1ffffffe
ja 0x4025de
mov edx, ebx
sub edx, dword [esp + 0x28]
inc ecx
sar edx, 3
cmp ecx, edx
jbe 0x402064
mov eax, edx
shr eax, 1
mov esi, 0x1fffffff
sub esi, eax
cmp esi, edx
jae 0x40204a
xor edx, edx
jmp 0x40204c
add edx, eax
cmp edx, ecx
jae 0x402052
mov edx, ecx
push edx
lea esi, [esp + 0x2c]
call fcn.00404d20
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40206e
fld qword [esp + 0x44]
fstp qword [eax]
add eax, 8
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x1e0]
mov esi, dword [esp + 0x24]
mov edi, dword [ecx + esi + 8]
sub edi, dword [ecx + esi + 4]
mov edx, dword [esp + 0x20]
inc edx
sar edi, 2
mov dword [esp + 0x20], edx
cmp edx, edi
jb 0x401f60
mov esi, dword [esp + 0x250]
mov edx, dword [esp + 0x1e0]
mov edi, dword [esp + 0x24]
mov ecx, dword [edx + edi + 0x18]
sub ecx, dword [edx + edi + 0x14]
mov dword [esp + 0x20], 0
sar ecx, 2
test ecx, ecx
je 0x402243
mov esi, dword [esp + 0x68]
sub esi, dword [esp + 0x64]
sar esi, 2
mov dword [esp + 0x38], esi
jmp 0x4020ef
mov edx, dword [esp + 0x1e0]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x38]
xor ecx, ecx
test esi, esi
je 0x40212f
mov esi, dword [edx + edi + 8]
sub esi, dword [edx + edi + 4]
mov edx, dword [esp + 0x20]
sar esi, 2
add edx, esi
jmp 0x402110
mov esi, dword [esp + 0x64]
cmp dword [esi + ecx*4], edx
je 0x402215
inc ecx
cmp ecx, dword [esp + 0x38]
jb 0x402110
mov edx, dword [esp + 0x1e0]
mov edi, dword [esp + 0x24]
mov ecx, dword [edx + edi + 0x14]
mov edx, dword [esp + 0x20]
fild dword [ecx + edx*4]
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x44]
fstp qword [esp + 0x44]
cmp ecx, eax
jae 0x4021b4
mov edx, ecx
cmp esi, edx
ja 0x4021b4
mov edi, ecx
sub edi, esi
sar edi, 3
cmp eax, ebx
jne 0x4021ab
mov ecx, eax
sub ecx, esi
sar ecx, 3
cmp ecx, 0x1ffffffe
ja 0x4025de
mov edx, ebx
sub edx, esi
inc ecx
sar edx, 3
cmp ecx, edx
jbe 0x4021ab
mov eax, edx
shr eax, 1
mov esi, 0x1fffffff
sub esi, eax
cmp esi, edx
jae 0x40218d
xor edx, edx
jmp 0x40218f
add edx, eax
cmp edx, ecx
jae 0x402195
mov edx, ecx
push edx
lea esi, [esp + 0x2c]
call fcn.00404d20
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
test eax, eax
je 0x40220e
fld qword [esi + edi*8]
jmp 0x40220c
cmp eax, ebx
jne 0x402204
mov ecx, eax
sub ecx, esi
sar ecx, 3
cmp ecx, 0x1ffffffe
ja 0x4025de
mov edx, ebx
sub edx, esi
inc ecx
sar edx, 3
cmp ecx, edx
jbe 0x402204
mov eax, edx
shr eax, 1
mov esi, 0x1fffffff
sub esi, eax
cmp esi, edx
jae 0x4021ea
xor edx, edx
jmp 0x4021ec
add edx, eax
cmp edx, ecx
jae 0x4021f2
mov edx, ecx
push edx
lea esi, [esp + 0x2c]
call fcn.00404d20
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40220e
fld qword [esp + 0x44]
fstp qword [eax]
add eax, 8
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x1e0]
mov esi, dword [esp + 0x24]
mov edi, dword [ecx + esi + 0x18]
sub edi, dword [ecx + esi + 0x14]
mov edx, dword [esp + 0x20]
inc edx
sar edi, 2
mov dword [esp + 0x20], edx
cmp edx, edi
jb 0x4020e0
mov esi, dword [esp + 0x250]
mov ecx, dword [esp + 0x28]
sub eax, ecx
test eax, 0xfffffff8
jne 0x40227f
xor edi, edi
mov byte [esp + 0x3c0], 5
cmp ecx, edi
je 0x40226e
push ecx
call fcn.00411edf
mov esi, dword [esp + 0x254]
add esp, 4
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
jmp 0x40250d
mov edx, dword [esp + 0x24c]
lea eax, [esp + 0x28]
cmp eax, esi
jae 0x402342
mov ecx, eax
cmp edx, ecx
ja 0x402342
mov ecx, dword [esp + 0x254]
mov edi, eax
mov ebx, edx
sub edi, ebx
cmp esi, ecx
jne 0x4022ff
mov eax, esi
sub eax, ebx
sar eax, 4
cmp eax, 0xffffffe
ja 0x4025de
sub ecx, ebx
inc eax
sar ecx, 4
cmp eax, ecx
jbe 0x4022ff
mov edx, ecx
shr edx, 1
mov esi, 0xfffffff
sub esi, edx
cmp esi, ecx
jae 0x4022dc
xor ecx, ecx
jmp 0x4022de
add ecx, edx
cmp ecx, eax
jae 0x4022e4
mov ecx, eax
push ecx
lea ecx, [esp + 0x250]
call fcn.00404c40
mov esi, dword [esp + 0x250]
mov ebx, dword [esp + 0x24c]
mov edx, dword [esp + 0x23c]
and edi, 0xfffffff0
add edi, ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x3c0], 7
test esi, esi
je 0x402335
push esi
mov ecx, edi
call fcn.00406800
mov esi, dword [esp + 0x250]
mov edx, dword [esp + 0x23c]
mov byte [esp + 0x3c0], 6
jmp 0x4023cc
mov ecx, dword [esp + 0x254]
cmp esi, ecx
jne 0x402398
mov eax, esi
sub eax, edx
sar eax, 4
cmp eax, 0xffffffe
ja 0x4025de
sub ecx, edx
inc eax
sar ecx, 4
cmp eax, ecx
jbe 0x402398
mov edx, ecx
shr edx, 1
mov esi, 0xfffffff
sub esi, edx
cmp esi, ecx
jae 0x40237c
xor ecx, ecx
jmp 0x40237e
add ecx, edx
cmp ecx, eax
jae 0x402384
mov ecx, eax
push ecx
lea ecx, [esp + 0x250]
call fcn.00404c40
mov esi, dword [esp + 0x250]
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x3c0], 8
test esi, esi
je 0x4023bd
push esi
lea ecx, [esp + 0x2c]
call fcn.00406800
mov esi, dword [esp + 0x250]
mov byte [esp + 0x3c0], 6
mov edx, dword [esp + 0x23c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1e0]
add esi, 0x10
mov dword [esp + 0x250], esi
mov edi, dword [ecx + eax]
mov eax, dword [esp + 0x240]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], edi
cmp ecx, eax
jae 0x40246f
cmp edx, ecx
ja 0x40246f
mov edi, ecx
mov ecx, dword [esp + 0x244]
sub edi, edx
sar edi, 2
cmp eax, ecx
jne 0x40245d
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4025de
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x40245d
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x40243a
xor ecx, ecx
jmp 0x40243c
add ecx, edx
cmp ecx, eax
jae 0x402442
mov ecx, eax
push ecx
lea esi, [esp + 0x240]
call fcn.00408a90
mov esi, dword [esp + 0x250]
mov edx, dword [esp + 0x23c]
mov eax, dword [esp + 0x240]
test eax, eax
je 0x4024d7
mov edx, dword [edx + edi*4]
mov dword [eax], edx
jmp 0x4024d0
mov ecx, dword [esp + 0x244]
cmp eax, ecx
jne 0x4024c3
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4025de
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x4024c3
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x4024a7
xor ecx, ecx
jmp 0x4024a9
add ecx, edx
cmp ecx, eax
jae 0x4024af
mov ecx, eax
push ecx
lea esi, [esp + 0x240]
call fcn.00408a90
mov esi, dword [esp + 0x250]
mov eax, dword [esp + 0x240]
test eax, eax
je 0x4024d7
mov dword [eax], edi
mov esi, dword [esp + 0x250]
add dword [esp + 0x240], 4
mov byte [esp + 0x3c0], 5
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4024ff
push eax
call fcn.00411edf
mov esi, dword [esp + 0x254]
add esp, 4
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x1e4]
sub ecx, dword [esp + 0x1e0]
mov edi, dword [esp + 0x3c]
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
mov dword [esp + 0x3c], edi
cmp edi, eax
jb 0x401ee0
mov ecx, dword [esp + 0x1a4]
sub ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 8]
sub esi, dword [esp + 0x24c]
push 0xffffffffffffffff
sar ecx, 4
push eax
mov dword [esp + 0x23c], ecx
push 0x100
lea ecx, [esp + 0x288]
push ecx
lea edx, [esp + 0x70]
sar esi, 4
push edx
mov dword [esp + 0x240], esi
call fcn.00411ebf
add esp, 0x14
lea eax, [esp + 0x94]
push eax
call fcn.00402fc0
push 0x12
lea ecx, [esp + 0x280]
lea ebx, [esp + 0x9c]
mov byte [esp + 0x3c4], 9
call fcn.00403d50
test eax, eax
jne 0x4025e8
mov ecx, dword [esp + 0x94]
mov ecx, dword [ecx + 4]
mov eax, dword [esp + ecx + 0xa0]
lea ecx, [esp + ecx + 0x94]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x40260a
or eax, 4
jmp 0x40260a
push str.vector_T__too_long
call fcn.00410ef3
mov edx, dword [esp + 0x94]
mov ecx, dword [edx + 4]
mov eax, dword [esp + ecx + 0xcc]
lea ecx, [esp + ecx + 0x94]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push 0
push eax
call fcn.00408020
lea ebx, [esp + 0x94]
lea ecx, [esp + 0x1f4]
call fcn.00409230
lea ecx, [esp + 0x98]
call fcn.00403e40
xor ebx, ebx
test eax, eax
jne 0x402661
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 4]
mov eax, dword [esp + ecx + 0xa0]
lea ecx, [esp + ecx + 0x94]
or eax, 2
cmp dword [ecx + 0x38], ebx
jne 0x40265a
or eax, 4
push ebx
push eax
call fcn.00408020
push str.finishing_process....
push 0x431ba0
call fcn.00405dd0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00407de0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x4026a3
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x4026a3
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
cmp edi, ebx
je 0x4026c2
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], ebx
jne 0x4026bb
or eax, 4
push ebx
push eax
call fcn.00408020
lea ecx, [esp + 0xf4]
mov byte [esp + 0x3c0], 5
call fcn.004030f0
lea edx, [esp + 0xf4]
push edx
mov dword [esp + 0xf8], vtable.std::ios_base.0
call fcn.0041106e
add esp, 4
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x3c0], 4
call fcn.004097b0
mov eax, dword [esp + 0x64]
cmp eax, ebx
je 0x402716
push eax
call fcn.00411edf
add esp, 4
mov eax, dword [esp + 0x78]
cmp eax, ebx
je 0x402727
push eax
call fcn.00411edf
add esp, 4
mov dword [esp + 0x4c], vtable.Matrix.0
lea edi, [esp + 0x4c]
mov byte [esp + 0x3c0], 0xa
call fcn.004082d0
mov eax, dword [esp + 0x50]
cmp eax, ebx
je 0x402764
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x54]
push ecx
push edx
call fcn.004067a0
mov eax, dword [esp + 0x58]
push eax
call fcn.00411edf
add esp, 0xc
lea ecx, [esp + 0x13c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov byte [esp + 0x3c0], bl
call fcn.0040a630
cmp dword [esp + 0x274], 0x10
jb 0x40279d
mov ecx, dword [esp + 0x260]
push ecx
call fcn.00411edf
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x3b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x370]
xor ecx, esp
call fcn.00411949
mov esp, ebp
pop ebp
ret