Function at 0x407880
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49dc23
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x4b4d40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp - 0xec]
cmp dword [eax + 0x384], 0
je 0x407b83
mov ecx, dword [ebp - 0xec]
fld dword [ecx + 0x348]
fadd dword [ebp + 8]
mov edx, dword [ebp - 0xec]
fstp dword [edx + 0x348]
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x378]
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xf0], 0
fild qword [ebp - 0xf4]
mov edx, dword [ebp - 0xec]
fmul dword [edx + 0x348]
call fcn.0049cc60
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
and eax, 0x80000001
jns 0x407921
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xec]
mov ecx, dword [edx + 0x380]
sub ecx, dword [eax + 0x374]
cmp dword [ebp - 0x10], ecx
jae 0x407b83
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x10]
cmp eax, dword [edx + 0x37c]
jbe 0x407b83
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x30]
call fcn.00436ea0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc0], ecx
jmp 0x40798f
mov edx, dword [ebp - 0xc0]
add edx, 2
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x10]
add ecx, dword [eax + 0x374]
cmp dword [ebp - 0xc0], ecx
jge 0x4079fc
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xc0]
cmp eax, dword [edx + 0x380]
jae 0x4079fa
push 2
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x384]
add edx, dword [ebp - 0xc0]
push edx
lea eax, [ebp - 0xc4]
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
movsx ecx, word [ebp - 0xc4]
mov dword [ebp - 0xc8], ecx
lea edx, [ebp - 0xc8]
push edx
lea ecx, [ebp - 0x30]
call fcn.00457820
jmp 0x407980
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xcc], esp
lea eax, [ebp - 0x30]
push eax
call fcn.00407e80
mov dword [ebp - 0xf8], eax
call fcn.0041f440
add esp, 0x1c
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x14], ecx
push 1
push 3
lea ecx, [ebp - 0xbc]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
push edx
lea ecx, [ebp - 0xb4]
call dword [sym.imp.MSVCP90.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 str.Value:
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0xbc]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0x104], ecx
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x104]
call dword [sym.imp.MSVCP90.dll_protected:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Myptr_void_]
push eax
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x4a1608
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x10]
add eax, dword [edx + 0x374]
mov ecx, dword [ebp - 0xec]
mov dword [ecx + 0x37c], eax
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x14]
cmp eax, dword [edx + 0x360]
jg 0x407af2
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x360]
neg edx
cmp dword [ebp - 0x14], edx
jge 0x407b11
mov eax, dword [ebp - 0xec]
mov dword [eax + 0x364], 0
mov ecx, dword [ebp - 0xec]
mov byte [ecx + 0x32d], 0
jmp 0x407b64
mov edx, dword [ebp - 0xec]
movzx eax, byte [edx + 0x32d]
test eax, eax
jne 0x407b3d
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x364]
add edx, 1
mov eax, dword [ebp - 0xec]
mov dword [eax + 0x364], edx
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0xec]
mov eax, dword [ecx + 0x364]
cmp eax, dword [edx + 0x368]
jne 0x407b64
mov ecx, dword [ebp - 0xec]
mov byte [ecx + 0x32d], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xbc]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::vbase_dtor_void_]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.0042e2e0
mov ecx, dword [ebp - 0xec]
call fcn.00406ff0
cmp eax, 3
jne 0x407b9a
mov al, 1
jmp 0x407d15
mov ecx, dword [ebp - 0xec]
call fcn.00406ff0
cmp eax, 5
jne 0x407bb1
xor al, al
jmp 0x407d15
mov edx, dword [ebp - 0xec]
movzx eax, byte [edx + 0x32c]
test eax, eax
je 0x407ce7
mov ecx, dword [ebp - 0xec]
fld dword [ecx + 0x334]
fadd dword [ebp + 8]
mov edx, dword [ebp - 0xec]
fstp dword [edx + 0x334]
mov eax, dword [ebp - 0xec]
fld dword [eax + 0x334]
mov ecx, dword [ebp - 0xec]
fld dword [ecx + 0x338]
fcompp
fnstsw ax
test ah, 0x41
jp 0x407c79
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xec]
fld dword [eax + 0x338]
fstp dword [edx + 0x334]
mov ecx, dword [ebp - 0xec]
cmp dword [ecx + 0x350], 2
jne 0x407c44
push ecx
fldz
fstp dword [esp]
mov edx, dword [ebp - 0xec]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xec]
mov edx, dword [eax + 0x34]
call edx
jmp 0x407c6c
mov eax, dword [ebp - 0xec]
cmp dword [eax + 0x350], 4
jne 0x407c6c
push ecx
fldz
fstp dword [esp]
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xec]
mov eax, dword [edx + 0x40]
call eax
mov ecx, dword [ebp - 0xec]
mov byte [ecx + 0x32c], 0
mov edx, dword [ebp - 0xec]
push ecx
fld dword [edx + 0x344]
fstp dword [esp]
mov eax, dword [ebp - 0xec]
push ecx
fld dword [eax + 0x33c]
fstp dword [esp]
mov ecx, dword [ebp - 0xec]
push ecx
fld dword [ecx + 0x338]
fstp dword [esp]
mov edx, dword [ebp - 0xec]
push ecx
fld dword [edx + 0x334]
fstp dword [esp]
mov eax, dword [ebp - 0xec]
push ecx
fld dword [eax + 0x330]
fstp dword [esp]
call fcn.0041ee30
add esp, 0x10
fstp dword [esp]
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xec]
mov eax, dword [edx + 0x28]
call eax
mov ecx, dword [ebp - 0xec]
push ecx
fld dword [ecx + 0x340]
fstp dword [esp]
mov edx, dword [ebp - 0xec]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xec]
mov edx, dword [eax + 0x28]
call edx
mov ecx, dword [ebp - 0xec]
call fcn.0046ade0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4